Jak poprawnie obliczać Active Users w GA4 BigQuery

W GA4 pojęcie Active Users wydaje się proste – dopóki nie spróbujesz policzyć go samodzielnie w BigQuery. Wtedy bardzo szybko okazuje się, że większość zapytań SQL liczy aktywnych użytkowników błędnie albo w sposób uproszczony, który przestaje działać przy większych zbiorach danych.

Ten artykuł pokazuje:

  • jak najczęściej liczy się Active Users (i dlaczego to nie jest idealne),
  • jakie są ograniczenia pola is_active_user,
  • oraz jak wygląda najbardziej zbliżona do GA4 logika obliczeń w BigQuery.

Najprostszy sposób: is_active_user = true

Active Users w GA4 BigQuery można policzyć jako:

liczbę unikalnych użytkowników, którzy w danym okresie wyzwolili co najmniej jedno zdarzenie oznaczone jako aktywne (is_active_user = true)

To pole jest dostępne bezpośrednio w tabelach eksportu GA4 do BigQuery.

Podstawowa logika

  • filtrujesz zakres dat,
  • liczysz unikalne user_pseudo_id,
  • sprawdzasz, czy is_active_user = true.

To podejście:

  • jest szybkie,
  • jest łatwe do wdrożenia,
  • sprawdza się jako high-level snapshot.

Ograniczenia liczenia Active Users przez is_active_user

1. is_active_user działa na poziomie dnia

Pole is_active_user jest ustawiane per dzień, a nie:

  • per sesję,
  • per zdarzenie,
  • per poziom zaangażowania.

Oznacza to, że:

  • nie rozróżnia intensywności aktywności,
  • nie nadaje się do analizy krótszych przedziałów czasowych,
  • nie daje kontroli nad definicją „aktywności”.

2. Ryzyko przeszacowania aktywnych użytkowników

Jeśli użytkownik:

  • zostanie oznaczony jako aktywny,
  • to wszystkie jego zdarzenia tego dnia mają is_active_user = true.

W praktyce:

  • użytkownik z minimalną interakcją
  • i użytkownik z bardzo dużym zaangażowaniem
    są traktowani identycznie.

3. Agregacja bez kontekstu sesji i zdarzeń

To podejście:

  • agreguje dane bezpośrednio z poziomu eventów,
  • nie daje pośredniego etapu kontroli (sesje, typy zdarzeń),
  • ogranicza możliwość budowania własnych definicji aktywności.

4. To metoda „dla początkujących”

Liczenie Active Users przez is_active_user:

  • jest dobre dla małych datasetów,
  • sprawdza się przy szybkich raportach,
  • ale nie skaluje się analitycznie.

Warto też pamiętać:

pole is_active_user istnieje dopiero od lipca 2023
i nie występuje w starszych danych.

Bardziej poprawna logika obliczania Active Users

Oficjalna definicja Active Users w GA4 mówi, że użytkownik jest aktywny, jeśli w danym okresie:

  • wygenerował engaged session,
  • lub był nowym użytkownikiem,
  • lub wyzwolił zdarzenie z parametrem engagement_time_msec.

Dalsza część query:

Dlatego najlepsze podejście w BigQuery to połączenie trzech metod i ich deduplikacja.

Metoda 1: nowi użytkownicy w dniu pierwszej interakcji

Użytkownik jest aktywny, jeśli:

  • jego pierwsze zdarzenie danego dnia
  • przypada na dzień pierwszej interakcji (user_first_touch_timestamp).

To identyfikuje nowych użytkowników jako aktywnych.

Metoda 2: użytkownicy z session_engaged = 1

Użytkownik jest aktywny, jeśli:

  • miał co najmniej jedną sesję oznaczoną jako engaged.

To pokrywa:

  • czas trwania,
  • konwersje,
  • wielokrotne odsłony.

Metoda 3: użytkownicy z engagement_time_msec > 0

Użytkownik jest aktywny, jeśli:

  • wygenerował jakiekolwiek zdarzenie z czasem zaangażowania.

To ważne, ponieważ:

  • engagement_time_msec działa na poziomie eventu,
  • a nie sesji,
  • i może istnieć nawet wtedy, gdy session_engaged = 0.

Dedupikacja – kluczowy krok

Każda z metod identyfikuje aktywność z innej perspektywy.

Dlatego:

  • łączysz listy użytkowników (UNION DISTINCT),
  • liczysz unikalne user_pseudo_id,
  • unikasz wielokrotnego liczenia tej samej osoby.

To dokładnie odpowiada temu, co robi GA4 wewnętrznie.

Dlaczego różnice między zapytaniami rosną wraz z danymi?

Na małych zbiorach danych:

  • oba podejścia mogą dawać podobne wyniki.

Przy dużej skali:

  • miliony zdarzeń dziennie,
  • złożone ścieżki użytkowników,

różnice:

  • stają się coraz większe,
  • a uproszczona logika zaczyna zawyżać lub zaniżać metryki.

Dlaczego zrozumienie logiki jest ważniejsze niż SQL

Gotowe zapytania SQL:

  • nie skalują się do wszystkich przypadków,
  • nie uwzględniają specyfiki biznesu,
  • nie odpowiadają na wszystkie pytania analityczne.

Jeśli rozumiesz:

  • jak GA4 definiuje Active Users,
  • dlaczego łączy różne sygnały aktywności,

możesz:

  • testować różne definicje,
  • łączyć Active Users z innymi wymiarami,
  • budować własne modele analityczne.

SQL można wygenerować automatycznie.
Logiki – nie.

Podobne wpisy