Jak policzyć użytkowników “Pierwszy Raz” w GA4 za pomocą BigQuery

Jednym z częstszych pytań w analityce GA4 jest: jak dokładnie policzyć użytkowników, którzy odwiedzili stronę po raz pierwszy. Interfejs GA4 daje pewne odpowiedzi, ale jeśli zależy Ci na pełnej kontroli nad logiką liczenia – BigQuery jest najlepszym rozwiązaniem.

W tym artykule pokazuję prostą i poprawną metodę liczenia First Time Users w GA4, opartą na polu user_first_touch_timestamp.

Czym jest user_first_touch_timestamp w GA4?

Pole user_first_touch_timestamp informuje o momencie pierwszej interakcji użytkownika z Twoją stroną lub aplikacją. To właśnie ten moment definiuje, czy użytkownik jest „nowy”.

Najważniejsze cechy tego pola:

  • jest mierzone w mikrosekundach (microseconds),
  • używa strefy czasowej UTC,
  • nie zmienia się w kolejnych zdarzeniach tego samego użytkownika,
  • w przeciwieństwie do event_timestamp, które jest inne dla każdego eventu,
  • występuje na poziomie użytkownika, a nie pojedynczego zdarzenia.

Dzięki temu user_first_touch_timestamp jest najlepszym i najbardziej wiarygodnym źródłem do identyfikowania użytkowników „pierwszy raz”.

Logika liczenia First Time Users w BigQuery

Aby poprawnie policzyć użytkowników, którzy pojawili się po raz pierwszy, należy:

  • zliczyć unikalne user_pseudo_id,
  • przypisać je do dnia pozyskania (Acquisition Day),
  • upewnić się, że user_first_touch_timestamp:
    • nie jest pusty,
    • mieści się w analizowanym zakresie dat.

Kluczowa zasada:

Użytkownik jest liczony jako „first time user” w dniu, w którym nastąpił jego pierwszy kontakt z witryną.

Przykładowe zapytanie SQL – First Time Users według dnia pozyskania

Poniższe zapytanie oblicza liczbę użytkowników „pierwszy raz” dla każdego dnia w październiku 2024 roku.

Uwaga: pamiętaj, aby podstawić własny identyfikator tabeli (table ID).

-- Obliczanie liczby First Time Users według dnia pozyskania

SELECT
  FORMAT_TIMESTAMP('%b %d, %Y', TIMESTAMP_MICROS(user_first_touch_timestamp)) AS acquisition_day,
  COUNT(DISTINCT user_pseudo_id) AS first_time_users
FROM
  `<Your table ID>`
WHERE
  _TABLE_SUFFIX BETWEEN '20241001' AND '20241031'
  AND user_first_touch_timestamp IS NOT NULL
  AND TIMESTAMP_MICROS(user_first_touch_timestamp)
      BETWEEN TIMESTAMP('2024-10-01') AND TIMESTAMP('2024-10-31')
GROUP BY
  acquisition_day
ORDER BY
  acquisition_day ASC;

Co dokładnie robi to zapytanie?

Zapytanie wykonuje kilka kluczowych kroków:

  • konwertuje user_first_touch_timestamp z mikrosekund na czytelną datę,
  • przypisuje użytkownika do konkretnego dnia pozyskania,
  • liczy unikalnych użytkowników (user_pseudo_id),
  • odrzuca wiersze, w których brakuje informacji o pierwszym kontakcie,
  • filtruje dane tylko do wybranego zakresu dat.

Efektem jest dokładna liczba nowych użytkowników, niezależna od:

  • liczby sesji,
  • liczby eventów,
  • późniejszych wizyt tego samego użytkownika.

Dlaczego ta metoda jest lepsza niż raporty GA4 UI?

Raporty w interfejsie GA4:

  • korzystają z agregacji,
  • mogą stosować modelowanie,
  • bywają zależne od ustawień sesji i consent mode.

BigQuery daje Ci:

  • pełną kontrolę nad definicją „nowego użytkownika”,
  • możliwość analizy w dowolnym zakresie czasu,
  • łatwe łączenie z innymi wymiarami (kampania, źródło, kraj, urządzenie),
  • spójność i powtarzalność wyników.

Podsumowanie

  • user_first_touch_timestamp to najlepsze źródło do liczenia First Time Users,
  • pole jest stałe dla użytkownika i idealne do analiz kohortowych,
  • BigQuery pozwala liczyć nowych użytkowników precyzyjniej niż GA4 UI,
  • kluczem jest zrozumienie logiki, a nie sam kod SQL

Podobne wpisy