Modelowane listy odbiorców nie zawierają konkretnych osób, tylko prawdopodobieństwa. Wyjaśniam, jak powstają, gdzie ich szukać w panelu i jak czytać ich raporty.
Pojęcie z tytułu brzmi jak nazwa funkcji, a jest po prostu opisem sytuacji, w której większość analityków spędza zaskakująco dużo czasu. Coś w konfiguracji się zmienia, wykres konwersji w GA4 pęka na dwie części i od tego dnia porównanie „rok do roku” albo „miesiąc do miesiąca” przestaje mieć sens.
Odzyskiwanie spójności to praca nad tym, żeby dane z okresu przed zmianą i po zmianie znów dawały się zestawić — przy pomocy tego, co zostało zapisane, a nie przez życzenie, by GA4 przeliczyło przeszłość. Bo tego drugiego zwykle nie zrobi.
W tym tekście rozdzielam trzy rzeczy: skąd biorą się rozjazdy, co GA4 potrafi uzupełnić wstecz, a co trzeba odtworzyć samodzielnie z danych historycznych.
Spójność danych o konwersjach opiera się na czterech elementach, które muszą być takie same w porównywanych okresach.
Pierwszy to definicja zdarzenia: czy „zakup” oznacza to samo w styczniu i w listopadzie, czy w międzyczasie ktoś przesunął moment wysyłki zdarzenia z potwierdzenia zamówienia na kliknięcie przycisku płatności. Drugi to zakres zbieranych danych, na który wpływa baner zgód, wtyczki blokujące i to, jaki procent użytkowników w ogóle daje się policzyć.
Trzeci element to model atrybucji i okno konwersji. Zmiana modelu przenosi konwersje między kanałami, nie zmieniając ich sumy — a to wystarczy, żeby raport kanałowy wyglądał na katastrofę. Czwarty to podstawa czasowa: czy zdarzenie liczy się w dniu, w którym nastąpiło, czy w dniu kliknięcia, które je poprzedziło.
Zanim zacznę cokolwiek naprawiać, sprawdzam, który z tych czterech elementów się przesunął. W połowie przypadków okazuje się, że dane wcale nie zniknęły — po prostu policzono je według innej reguły i wystarczy raport zestawić inaczej.
Najczęstsze pytanie w tej okolicy brzmi: dlaczego w Google Ads widzę sto konwersji, a w GA4 osiemdziesiąt. Prawidłowa odpowiedź to zwykle „bo tak ma być”, ale warto wiedzieć dlaczego.
Google Ads przypisuje konwersję do dnia kliknięcia, więc konwersja z wtorku po kliknięciu z piątku pojawi się w piątkowym wierszu raportu. GA4 raportuje ją w dniu, w którym się wydarzyła. Przy dłuższym procesie decyzyjnym to samo w sobie tworzy różnicę na poziomie kilkunastu procent w krótkich okresach.
Do tego dochodzi zakres: konto reklamowe zna również konwersje po wyświetleniu w niektórych typach kampanii oraz konwersje wgrane z zewnątrz, a GA4 widzi tylko to, co zdarzyło się na stronie i zostało wysłane z przeglądarki albo serwera. Modele przypisania też są różne, więc podział na źródła nie będzie identyczny nawet przy identycznej sumie.
Praktyczny wniosek: te dwa systemy nie służą do wzajemnej kontroli co do jednego zdarzenia. GA4 jest dobrym narzędziem do analizy zachowania i porównań w czasie, konto reklamowe do rozliczania kampanii. Wymuszanie zgodności do liczby całkowitej jest pracą bez końca.
Tu kończą się złudzenia i zaczyna właściwa robota. Kilka ograniczeń, które trzeba znać, bo determinują cały plan.
Ta ostatnia rzecz zasługuje na jedno zdanie więcej, bo bywa odkrywana za późno. Ustawienie przechowywania danych na najkrótszą opcję sprawia, że raporty eksploracyjne nie sięgną wstecz — a domyślne ustawienie wcale nie jest tym najdłuższym możliwym.
Osobne źródło pozornej niespójności to modelowanie. Od czasu, gdy tryb uzyskiwania zgody w wersji drugiej stał się w Europie warunkiem korzystania z pełnej funkcjonalności narzędzi reklamowych Google, część danych w raportach nie jest zmierzona bezpośrednio, a oszacowana.
Ma to dwie konsekwencje analityczne. Pierwsza: dzień wdrożenia nowego banera albo zmiany konfiguracji zgód jest naturalną granicą porównywalności, którą trzeba w raportach zaznaczyć. Druga: modelowanie działa dopiero po przekroczeniu progów ruchu, więc mniejsze serwisy mogą go nie dostać wcale albo dostawać nieregularnie — i wtedy różnice między miesiącami wynikają z dostępności modelu, nie ze zmiany zachowania użytkowników.
Do tego dochodzą progi prywatności, które ukrywają dane w wierszach o małej liczbie użytkowników. Suma w raporcie ogólnym potrafi się wtedy nie zgadzać ze sumą pozycji w rozbiciu, co bywa mylnie diagnozowane jako błąd wdrożenia.
GA4 pozwala wgrywać dane z zewnątrz i to jest pierwsza rzecz, po którą sięga większość osób szukających sposobu na uzupełnienie historii. Warto od razu wiedzieć, gdzie leży granica.
Import danych o użytkownikach albo o produktach służy wzbogaceniu istniejących zdarzeń dodatkowymi atrybutami — to działa i bywa bardzo przydatne. Import zdarzeń pochodzących z systemów zewnętrznych oraz wysyłka zdarzeń bezpośrednio do usługi mają natomiast ograniczenie czasowe: zdarzenie ze zbyt odległą datą nie zostanie przyjęte, dokumentacja mówi o oknie liczonym w godzinach, nie w tygodniach.
Innymi słowy: to narzędzie do domykania danych bieżących, na przykład sprzedaży telefonicznej z ostatnich dwóch dni. Nie jest to narzędzie do rekonstrukcji zerwanego kwartału. Kto planuje odbudowę historii na tej podstawie, straci tydzień, żeby dowiedzieć się tego samego.
Realne odzyskanie spójności odbywa się poza interfejsem GA4 i wymaga jednej rzeczy podjętej z wyprzedzeniem: eksportu surowych zdarzeń do hurtowni danych.
Jeśli eksport działał, masz dostęp do zdarzeń w postaci pojedynczych wierszy razem z parametrami. Wtedy zmiana definicji konwersji w interfejsie przestaje być problemem — możesz przeliczyć całą historię według nowej definicji, bo pracujesz na materiale źródłowym, a nie na gotowym raporcie. Tak samo można ujednolicić podstawę czasową albo policzyć konwersje w modelu, którego GA4 nie oferuje w raportach.
Drugim materiałem historycznym jest Twoja własna baza sprzedaży. Ona nie zależy od zgód, wtyczek ani przeglądarek, więc stanowi najlepszą serię odniesienia. Zestawienie miesięcznej liczby zamówień z bazy z liczbą zdarzeń w GA4 daje współczynnik pokrycia, który pozwala ocenić, czy spadek w analityce był spadkiem sprzedaży, czy spadkiem mierzalności.
Eksportu nie da się włączyć wstecz — od momentu połączenia zbiera dane bieżące. To argument, żeby uruchomić go dziś, nawet jeśli nikt nie ma jeszcze czasu z tego korzystać.
Na koniec rzecz najprostsza i najczęściej pomijana. GA4 nie ma wbudowanego mechanizmu adnotacji, jaki znaliśmy z poprzedniej wersji Analytics, więc informacja o tym, co i kiedy zmieniono, musi żyć gdzieś obok.
Prowadzę zwykły arkusz z czterema kolumnami: data i godzina, co zostało zmienione, kto zmienił, jaki skutek w danych jest oczekiwany. Wpisuję tam wdrożenia tagów, zmiany banera zgód, przebudowy koszyka, zmiany definicji zdarzeń kluczowych, migracje szablonów i modyfikacje ustawień atrybucji.
Ten arkusz jest wart więcej niż większość narzędzi wymienionych wyżej. Kiedy pół roku później ktoś zapyta, dlaczego marzec wygląda inaczej niż luty, odpowiedź zajmuje minutę zamiast dwóch dni. A bez tego cała reszta pracy nad spójnością jest zgadywaniem, w którym momencie przestaliśmy mierzyć to samo.
Używamy plików cookies, aby ułatwić Ci nawigację oraz wykonywanie określonych funkcji. Szczegółowe informacje o wszystkich plikach cookies znajdziesz w każdej kategorii zgody poniżej.
Pliki cookies oznaczone jako "Niezbędne" są przechowywane w Twojej przeglądarce, ponieważ są one kluczowe dla zapewnienia podstawowych funkcji strony.
Używamy również plików cookies firm trzecich, które pomagają nam analizować, w jaki sposób korzystasz z tej strony, zapamiętują Twoje preferencje oraz dostarczają treści i reklamy odpowiednie dla Ciebie. Te pliki cookies będą przechowywane w Twojej przeglądarce tylko za Twoją uprzednią zgodą.
Możesz zdecydować, czy chcesz włączyć lub wyłączyć niektóre bądź wszystkie te pliki cookies, jednak wyłączenie niektórych z nich może wpłynąć na Twoje doświadczenia podczas przeglądania strony.
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __cf_bm | 13 minutes | Cloudflare bot management — distinguishes humans from bots. |
| rc::* | Persistent | Google reCAPTCHA — localStorage holding anti-bot challenge state. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| wpEmojiSettingsSupports | Session | WordPress — sessionStorage flag caching whether the browser can render emoji (feature detection). |
| ytidb* | Persistent | YouTube — IndexedDB storing playback/search state for embedded videos. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| _ga_* | 400 days | Google Analytics 4 — persists session state per property. |
| _ga | 400 days | Google Analytics — distinguishes unique users via a client id. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| NID | 183 days | Google — stores preferences for personalized ads. |
| fr | 90 days | Meta — encrypted Facebook id and browser id for ads. |
| _gcl_au | 90 days | Google AdSense/Ads — experiments with advertising efficiency (conversion linker). |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __Secure-YNID | 180 days | |
| YSC | Session | |
| __Secure-ROLLOUT_TOKEN | 180 days | |
| VISITOR_INFO1_LIVE | 180 days | |
| VISITOR_PRIVACY_METADATA | 180 days | |
| datr | 400 days | |
| sb | 400 days | |
| wd | 7 days |