Dlaczego BigQuery często pokazuje więcej użytkowników powracających niż interfejs GA4?

Jeśli kiedykolwiek porównałeś liczbę Returning Users w interfejsie GA4 z wynikami policzonymi samodzielnie w BigQuery, prawdopodobnie zauważyłeś coś niepokojącego:
BigQuery niemal zawsze pokazuje więcej użytkowników powracających niż GA4 UI.

To nie jest błąd Google.
To różnica w logice liczenia, poziomie agregacjidostępie do danych użytkownika.

Poniżej krok po kroku wyjaśniam, skąd biorą się te rozbieżności.

1. GA4 UI liczy użytkowników powracających na poziomie użytkownika

Interfejs GA4 działa w bardzo konkretny sposób:

  • użytkownik może zostać uznany za „powracającego” tylko raz w danym okresie raportowania,
  • niezależnie od tego, ile razy wrócił na stronę.

Przykład:
Użytkownik wraca na stronę 5 razy w październiku.

GA4 UI raportuje:

  • Returning Users = 1

Dlaczego?
Bo GA4 skupia się na unikalnych użytkownikach, a nie na:

  • liczbie sesji,
  • liczbie dni powrotu,
  • liczbie „momentów powrotu”.

2. BigQuery bardzo łatwo nadlicza użytkowników powracających

BigQuery nie ma wbudowanej definicji użytkownika powracającego.
Pokazuje surowe zdarzenia. Cała logika musi zostać napisana w SQL.

I tu pojawia się problem.

Bardzo wiele zapytań (nieświadomie) stosuje logikę sesyjną lub dzienną, np.:

  • sprawdzanie, czy event_date > first_interaction_date,
  • liczenie użytkownika jako powracającego dla każdego dnia aktywności.

Efekt?

Ten sam użytkownik wraca 5 razy → BigQuery liczy:

  • Returning Users = 5

Podczas gdy faktycznie:

  • Returning Users = 1

3. GA4 automatycznie deduplikuje użytkowników, BigQuery nie

Różnica architektoniczna jest kluczowa:

GA4 UI:

  • deduplikuje dane na poziomie użytkownika,
  • identyfikuje tylko „pierwszy powrót”,
  • korzysta z wewnętrznego grafu tożsamości Google.

BigQuery:

  • pokazuje dane na poziomie zdarzeń,
  • każda linia = jedno zdarzenie,
  • nie deduplikuje użytkowników automatycznie.

Jeśli w SQL-u jawnie nie usuniesz duplikatów użytkowników, wynik będzie zawyżony.

4. Wielodniowa aktywność użytkownika zawyża wyniki w BigQuery

Typowy scenariusz:

  • użytkownik wraca przez 3 różne dni w tygodniu.

GA4 UI:

  • Returning User = 1

BigQuery (naiwna logika):

  • Returning Users = 3

Dlaczego?
Bo zapytanie liczy użytkownika osobno dla każdego dnia, a nie jako jedną osobę w całym okresie.

5. GA4 UI korzysta z łączenia tożsamości, BigQuery – nie

GA4 UI ma dostęp do mechanizmów, których BigQuery nie posiada, m.in.:

  • łączenia użytkownika między urządzeniami,
  • grafu tożsamości Google,
  • korekt wynikających z Consent Mode i modelowania danych.

BigQuery:

  • nie scala użytkowników między urządzeniami,
  • nie ma dostępu do grafu Google,
  • widzi tylko to, co faktycznie zostało wyeksportowane.

Skutek:

  • inne daty pierwszej wizyty,
  • błędna klasyfikacja nowych i powracających użytkowników,
  • zawyżone liczby powrotów.

6. GA4 widzi całe życie użytkownika, BigQuery tylko fragment historii

To bardzo częsty, a często pomijany problem.

Jeśli:

  • eksport BigQuery został uruchomiony np. od kwietnia,
  • użytkownik pierwszy raz odwiedził stronę w styczniu,

to:

  • GA4 wie, że użytkownik jest powracający,
  • BigQuery uznaje go za nowego przy pierwszym zdarzeniu w kwietniu,
  • a każda kolejna wizyta liczy się jako kolejny „powrót”.

Efekt końcowy:

  • sztucznie zawyżona liczba returning users w BigQuery.

Podsumowanie: gdzie leży prawda?

GA4 UI:

  • liczy użytkowników powracających na poziomie użytkownika,
  • każdy użytkownik liczony jest tylko raz w danym okresie,
  • korzysta z zaawansowanych mechanizmów identyfikacji.

BigQuery:

  • pokazuje surowe dane zdarzeń,
  • bardzo łatwo nadlicza użytkowników,
  • wymaga precyzyjnej deduplikacji w SQL.

Jeśli BigQuery pokazuje więcej użytkowników powracających niż GA4 UI, to w większości przypadków:

  • nie jest to błąd danych,
  • tylko błąd logiki zapytania.

Kluczowa lekcja:
BigQuery nie „myśli” za Ciebie.
Jeśli nie powiesz mu dokładnie jak liczyć użytkowników, policzy ich za dużo.

Podobne wpisy