GA4 vs Universal Analytics — co musisz wiedzieć jako analityk
Spis treści
Universal Analytics przestało zbierać dane w lipcu 2023, ale wciąż regularnie widzę ten sam problem: analitycy próbują czytać GA4 przez okulary UA i się dziwią, że liczby "nie zgadzają się" albo że coś, co kiedyś było oczywiste, teraz nie działa tak samo. Prawda jest taka, że GA4 to nie jest "UA z nowym interfejsem" — to zupełnie inny model danych, inna filozofia zbierania eventów i inna logika raportowania. Jeśli robisz audyt trackingu albo tłumaczysz stakeholderom, dlaczego liczba sesji spadła o 20%, musisz rozumieć te różnice u podstaw, a nie na poziomie UI.
Model danych: sesje kontra eventy
W UA wszystko kręciło się wokół sesji jako jednostki centralnej — pageview, event, transakcja, to wszystko były "hity" przypisane do konkretnej sesji z jasno zdefiniowanym początkiem i końcem (30 minut nieaktywności, północ, zmiana kampanii).
GA4 odwraca tę hierarchię: absolutnie wszystko jest eventem, łącznie z samą sesją. session_start to zwykły event z parametrem session_id, page_view to event, purchase to event. Sesje są w GA4 wyliczane wtórnie na podstawie tych eventów, nie są jednostką pierwotną.
To ma konkretne konsekwencje praktyczne:
- Bounce rate zniknął (a właściwie wrócił niedawno, ale liczony inaczej) — GA4 domyślnie mówi o "engagement rate" (sesje trwające >10s, z conversion eventem lub ≥2 page_view). To zupełnie inna definicja niż UA bounce rate, więc porównywanie tych dwóch liczb rok do roku nie ma sensu.
- Liczba sesji będzie inna dla tego samego ruchu, bo GA4 liczy nową sesję przy zmianie UTM w trakcie tej samej wizyty inaczej niż UA, i nie zamyka sesji o północy.
E-commerce tracking zmienił się od podstaw
To jest sekcja, gdzie widzę najwięcej błędów w audytach. UA miało Enhanced Ecommerce jako osobną warstwę (ecommerce.js / analytics.js plugin) z eventami typu add, detail, purchase wysyłanymi przez ec: parametry. GA4 ma to wbudowane jako standardowe, rekomendowane eventy z konkretną strukturą items[]:
// GA4 recommended ecommerce event przez GTM / gtag
gtag('event', 'add_to_cart', {
currency: 'PLN',
value: 149.99,
items: [{
item_id: 'SKU_12345',
item_name: 'Sukienka midi',
item_category: 'Sukienki',
price: 149.99,
quantity: 1
}]
});Najczęstsze problemy, które widzę w audytach GA4 e-commerce:
- brak
currencyw evenciepurchase— GA4 wtedy w ogóle nie liczy przychodu do raportów - zduplikowany
transaction_idprzy odświeżeniu strony potwierdzenia — GA4 sam nie deduplikuje tak agresywnie jak UA kiedyś - niespójne
item_idmiędzyview_itemapurchase— psuje to raporty ścieżki zakupowej i attribution
Atrybucja i raportowanie: inny model domyślny
UA domyślnie liczyło konwersje modelem "last non-direct click". GA4 domyślnie używa data-driven attribution (DDA) — modelu opartego na uczeniu maszynowym, który rozkłada zasługę konwersji między wszystkie touchpointy w ścieżce, a nie tylko ostatni.
To oznacza, że te same dane surowe dadzą różne liczby konwersji per kanał w UA i w GA4 — i to nie jest błąd w trackingu, to różnica w modelu. Do tego domyślne channel groupings (Default Channel Group) różnią się między systemami — GA4 ma bardziej granularne kategorie (np. rozdziela "Paid Social" i "Organic Social" inaczej niż UA). Jeśli robisz raport porównawczy rok do roku przez migrację, koniecznie zaznacz to stakeholderom z wyprzedzeniem, inaczej dostaniesz pytania "dlaczego kanał X nagle ma o 30% mniej konwersji".
Dane historyczne: czego nie przeniesiesz
UA nie eksportowało się automatycznie donikąd — po deadline'ie dane w UI zniknęły (chyba że ktoś wcześniej zrobił eksport do BigQuery albo pobrał raporty ręcznie). GA4 ma wbudowaną integrację z BigQuery Export, ale trzeba ją włączyć świadomie:
- darmowy tier GA4 w UI ma retencję danych 2 lub 14 miesięcy (do ustawienia w Admin → Data Settings → Data Retention) — to nie jest to samo co "dane są przechowywane wiecznie"
- BigQuery Export, jeśli włączony, trzyma surowe dane eventów bezterminowo (w Twoim projekcie GCP, płacisz za storage/query)
- jeśli robisz projekt migracyjny i ktoś pyta "a możemy porównać do danych z UA sprzed 2 lat" — odpowiedź brzmi: tylko jeśli macie wcześniejszy eksport, bo UA data jest już nieodwracalnie niedostępna w UI
Praktyczna rekomendacja: jeśli configurujesz nowy projekt GA4 (albo audytujesz istniejący), pierwsza rzecz do sprawdzenia to czy BigQuery Export jest włączony i czy leci na streaming (nie tylko daily export) — potem można robić dowolne SQL-owe analizy bezpośrednio na surowych danych.
-- Szybki check w BigQuery: eventy purchase bez waluty (sygnał błędu trackingu)
SELECT
event_date,
COUNT(*) AS purchase_events,
COUNTIF(
(SELECT value.string_value FROM UNNEST(event_params)
WHERE key = 'currency') IS NULL
) AS missing_currency
FROM `project.analytics_XXXXXXXXX.events_*`
WHERE event_name = 'purchase'
AND _TABLE_SUFFIX BETWEEN '20260601' AND '20260630'
GROUP BY event_date
ORDER BY event_date;Praktyczna checklista audytu przy migracji lub weryfikacji GA4
- [ ] Sprawdź, czy wszystkie kluczowe eventy e-commerce (
view_item,add_to_cart,begin_checkout,purchase) mają komplet parametrów, szczególniecurrencyivalue - [ ] Zweryfikuj
item_idspójne na całej ścieżce zakupowej - [ ] Ustaw retencję danych na maksimum (14 miesięcy) od razu przy starcie projektu
- [ ] Włącz BigQuery Export (streaming) zanim będzie potrzebny do analizy historycznej
- [ ] Zdefiniuj konwersje (Key Events) na nowo — nic nie przenosi się automatycznie z UA
- [ ] Odbuduj audiences do remarketingu w Google Ads — stare listy z UA nie migrują się same
- [ ] Uprzedź stakeholderów, że porównania rok-do-roku przez punkt migracji będą miały metodologiczny szum, nie tylko biznesowy
TL;DR
- GA4 to inny model danych niż UA — wszystko jest eventem, sesje są wtórne, nie pierwotne
- E-commerce tracking wymaga struktury
items[]i pełnych parametrów (currency,value, spójnyitem_id) — brakcurrencywpurchasecicho psuje raporty przychodu - Domyślny model atrybucji to data-driven attribution, nie last non-direct click — liczby konwersji per kanał będą się różnić od UA nie przez błąd, tylko przez metodologię
- Dane historyczne z UA nie migrują się automatycznie — jeśli nie było wcześniejszego eksportu, są nieodwracalnie stracone w UI
- Włącz BigQuery Export od razu i traktuj go jako podstawowe źródło do głębszych analiz SQL, a nie tylko backup
Masz podobny problem w swoim GA4?
Sprawdzę Twoją konfigurację w ramach audytu GA4. Pierwsza rozmowa jest bezpłatna.
Umów konsultacjęWięcej artykułów o data analytics:
Wróć do bloga