Jak wyciągnąć dane Użytkownika (User Properties) w GA4 BigQuery

User Properties w GA4 to jeden z najbardziej niedocenianych, a jednocześnie najpotężniejszych mechanizmów opisu użytkownika.

Pozwalają przechowywać informacje, które nie zmieniają się z eventu na event, ale opisują samego użytkownika – jego status, cechy lub kontekst biznesowy.

W tym artykule pokażę:

  • czym dokładnie są User Properties,
  • jak są zapisywane w BigQuery,
  • jak je poprawnie wyciągnąć z tabel events_*,
  • i dlaczego zrozumienie logiki jest ważniejsze niż sam SQL.

Czym są User Properties w GA4?

User Properties w GA4 to wymiary o zakresie użytkownika (user scope).

Oznacza to, że:

  • wartość jest przypisana do użytkownika, a nie do pojedynczego zdarzenia,
  • jest obliczana i zapisywana raz dla użytkownika,
  • może być dołączana do wielu eventów tego samego użytkownika.

Przykłady User Properties:

  • status subskrypcji (np. free, paid),
  • typ użytkownika (np. new, returning, vip),
  • niestandardowy client ID,
  • poziom członkostwa,
  • preferowany język lub segment biznesowy.

Technicznie rzecz biorąc:
User Property = wymiar GA4 o zakresie użytkownika.

Gdzie User Properties znajdują się w BigQuery?

W eksporcie GA4 do BigQuery dane o User Properties nie są płaskimi kolumnami.
Są zapisane jako zagnieżdżona struktura (nested + repeated).

Każdy event może zawierać tablicę:

  • user_properties

Każdy element tej tablicy składa się z:

  • key → nazwa User Property,
  • value → wartość User Property (w jednym z kilku typów).

Jakie typy wartości może mieć User Property?

W BigQuery wartość User Property może trafić do jednego z poniższych pól:

  • user_properties.value.string_value
  • user_properties.value.int_value
  • user_properties.value.float_value
  • user_properties.value.double_value
  • user_properties.value.set_timestamp_micros

To, które pole będzie użyte, zależy od tego:

  • jak wysyłasz dane z GTM,
  • czy przekazujesz je jako tekst, liczbę czy timestamp.

Najczęściej (i rekomendowanie) wysyła się User Properties jako string.

Ważne: User Properties nie istnieją domyślnie

GA4 nie zbiera User Properties automatycznie.
Jeśli ich nie skonfigurujesz, w BigQuery po prostu ich nie będzie.

Aby móc je analizować, musisz:

  • samodzielnie je wysłać (np. przez Google Tag Manager),
  • zadbać o spójność nazwy i typu danych.

Jak wyciągnąć User Properties w GA4 BigQuery – logika krok po kroku

Krok 1: Skonfiguruj User Property w Google Tag Managerze

Przykład:

  • wysyłasz niestandardowy client_id jako User Property,
  • nadajesz mu nazwę np. client_id_custom.

Krok 2: Zidentyfikuj event, który wysyła User Property

User Properties są wysyłane razem z eventami.
Musisz wiedzieć:

  • przez jaki event są przesyłane,
  • np. get_user_data, page_view lub inny custom event.

Krok 4: Sprawdź typ wartości

Jeżeli:

  • wysyłasz wartość jako tekst → używasz string_value,
  • wysyłasz liczbę → int_value,
  • wysyłasz timestamp → set_timestamp_micros.

To kluczowe, bo od tego zależy poprawność zapytania.

Przykładowe zapytanie SQL – ekstrakcja User Properties

Pamiętaj, aby podstawić własny identyfikator tabeli oraz własną nazwę User Property.

-- Ekstrakcja danych User Properties z GA4 BigQuery

SELECT
  NULLIF(event_name, '') AS event_name,
  NULLIF(
    (SELECT key FROM UNNEST(user_properties)),
    ''
  ) AS user_property_name,
  NULLIF(
    (SELECT value.string_value FROM UNNEST(user_properties)),
    ''
  ) AS user_property_value
FROM
  `<Your table ID>`
WHERE
  _TABLE_SUFFIX BETWEEN
    FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 2 DAY))
    AND
    FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
ORDER BY
  event_name;

Co robi to zapytanie?

  • rozwija tablicę user_properties,
  • wyciąga nazwę właściwości (key),
  • wyciąga jej wartość (string_value),
  • pokazuje, przy jakim evencie dana właściwość została wysłana.

To idealny punkt wyjścia do:

  • walidacji poprawności wdrożenia,
  • dalszych agregacji,
  • łączenia User Properties z innymi wymiarami.

Podobne wpisy