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_timestampz 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_timestampto 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