LW IT Solutions
« Blog Overview /Digital Analytics/Tutorials / Tutorial: Odczyt żądania GA4 collect parametr po...
This post in other languages:

Tutorial: Odczyt żądania GA4 collect parametr po parametrze

Tutorial: Odczyt żądania GA4 collect parametr po parametrze
Spis treści
  1. Znalezienie żądania
  2. Parametry, które oznaczają
  3. Parametry, które opisują stronę
  4. Zdarzenie i jego parametry
  5. Dane e-commerce w jednym polu
  6. Pola zgody
  7. Źródła

Trafienie GA4 to jedno żądanie HTTP, a wszystko, czego usługa kiedykolwiek dowie się o tej chwili, stoi w jego ciągu zapytania. Sześćdziesiąt parametrów, wszystkie skrócone do dwóch albo trzech znaków, żaden objaśniony w interfejsie.

Umiejętność ich odczytania opłaca się z jednego powodu: to jedyne miejsce, w którym widać, co przeglądarka naprawdę wysłała. Każdy raport, każdy podgląd i każdy wskaźnik zgody leży za tym żądaniem – a wartość, której tu brakuje, nigdy nie została wysłana.

Żądanie GA4 collect złamane na kilka linii z parametrami pokolorowanymi według grup, obok tabela z dwuliterowymi kodami pola artykułu e-commerce
Cztery grupy obejmują niemal każdy parametr. Piąty blok, artykuł e-commerce, jest własnym formatem wewnątrz jednego pola.

Znalezienie żądania

Żądanie idzie pod /g/collect, wprost do Google albo do kontenera serwerowego, jeśli taki działa. W panelu sieci przeglądarki filtr na collect skraca listę dokładnie do tych trafień.

https://www.google-analytics.com/g/collect
  ?v=2&tid=G-AB12CD34&gtm=45je55h0v9182736&_p=1737041234567
  &cid=1234567890.1737041234&ul=de-de&sr=2560x1440&_s=2
  &sid=1737041234&sct=4&seg=1&dl=https%3A%2F%2Fshop.example%2Fkasse
  &dt=Kasse&dr=https%3A%2F%2Fwww.google.com%2F&en=purchase
  &ep.payment_type=card&epn.value=129.9&cu=EUR&_et=4312
  &pr1=idSKU-42~nmStuhl~caMoebel~pr64.95~qt2&gcs=G111

Dwie praktyczne uwagi o tym, gdzie się chowa. Małe trafienia jadą jako GET i parametry stoją wtedy w adresie; większe przechodzą na POST, a wtedy adres niesie tylko część, a reszta siedzi w ciele żądania. I kilka zdarzeń da się spakować w jeden POST, po jednym na linię – ciało z trzema liniami to trzy trafienia, a nie jedno.

Żądanie, które w ogóle się nie pojawia, samo jest wynikiem, a przyczyny bywają trzy: brak zgody i tag się wstrzymuje, blokada reklam usunęła skrypt albo tag nigdy nie zadziałał. Te trzy rozdziela debuger tagów, a nie ten widok.

Parametry, które oznaczają

Pierwsza grupa odpowiada, kto wysyła i do której usługi. Te parametry stoją na każdym trafieniu i rzadko się zmieniają.

Parametr Znaczenie
v=2 Wersja protokołu – 2 to GA4, 1 było Universal Analytics
tid Identyfikator pomiaru usługi docelowej
cid Identyfikator klienta, wartość z ciasteczka _ga bez przedrostka
sid Identyfikator sesji – sekunda epoki, w której sesja się zaczęła
sct Liczba sesji tego klienta
seg 1, gdy sesja liczy się jako angażująca, wcześniej 0
_p Liczba losowa na każde wczytanie strony, wiąże trafienia jednej strony
_s Licznik w obrębie wczytania strony – pierwsze trafienie to 1

Dwa z nich są pożyteczniejsze, niż wyglądają. Identyfikator sesji jest znacznikiem czasu i mówi dokładnie, kiedy sesja się zaczęła – sesja startująca wciąż od nowa widać tutaj wcześniej niż w jakimkolwiek raporcie. A _s uwidacznia luki: strona, której trafienia skaczą z 1 na 3, po drodze jedno zgubiła.

Parametry, które opisują stronę

Druga grupa to kontekst i tam powstaje najwięcej błędnych wartości, bo te parametry tag może nadpisać.

dl to adres strony i przychodzi zakodowany procentowo; z niego powstaje ścieżka strony i każdy parametr zapytania, który GA4 później wykazuje. dr to odsyłacz i przy wejściu bezpośrednim pozostaje pusty. dt to tytuł dokumentu, wzięty w chwili zadziałania – dlatego aplikacja jednostronicowa działająca przed zmianą tytułu melduje tytuł poprzedniej strony.

ul to język przeglądarki, a sr rozdzielczość ekranu. Oba pochodzą z przeglądarki i są dwoma polami najczęściej zdradzającymi odwiedzającego automatycznego: rozdzielczość 800×600 wraz z angielskim ustawieniem języka w niemieckim sklepie to wzorzec, a nie osoba.

Jedno warto sprawdzać tutaj, a nie w raporcie: czy dl niesie parametry, które w analityce nie mają czego szukać. Wszystko za znakiem zapytania trafia do wymiaru strony, a formularz wpisujący adres pocztowy do adresu URL wysyła go najpierw tutaj.

Zdarzenie i jego parametry

Trzecia grupa to to, co faktycznie się stało, i trzyma się prostej zasady nazewniczej.

en=purchase              nazwa zdarzenia
ep.payment_type=card     parametr zdarzenia, tekst
epn.value=129.9          parametr zdarzenia, liczba
up.plan=premium          właściwość użytkownika, tekst
upn.credits=40           właściwość użytkownika, liczba
_et=4312                 czas zaangażowania w milisekundach od ostatniego trafienia
cu=EUR                   waluta

Różnica między ep. a epn. kosztuje najwięcej czasu, gdy jest postawiona źle. Liczba wysłana jako tekst ląduje w wymiarze tekstowym, nie daje się sumować i nie da się jej później zamienić w miarę – a nic nie zgłasza błędu, bo parametr tekstowy o zawartości 129.9 jest całkowicie poprawny.

Czas zaangażowania jest naliczany na trafienie, a nie na sesję: każde żądanie niesie milisekundy od poprzedniego. Strona wysyłająca tu stale 0 nie jest oglądana – albo coś zeruje licznik.

Dane e-commerce w jednym polu

Artykuły nie dostają po własnym parametrze. Pakowane są w pr1, pr2 i dalej, po jednym polu na artykuł, z dwuliterowymi kodami i tyldą jako rozdzielnikiem.

pr1=idSKU-42~nmStuhl~caMoebel~pr64.95~qt2~brNordholz~vaEiche
Kod Pole GA4 Kod Pole GA4
id item_id pr price
nm item_name qt quantity
br item_brand ds discount
ca item_category cp coupon
c2 … c5 item_category2 … 5 ln item_list_name
va item_variant lp index

Trzy rzeczy stają się sprawdzalne, gdy tylko to jest czytelne. Czy każdy artykuł niesie id – artykuł bez niego zostaje po cichu odrzucony. Czy pr jest czystą liczbą: cena przychodząca jako 64,95 z przecinkiem albo ze znakiem waluty nie jest liczbą, a przychód pozostaje pusty. Oraz czy suma ceny razy ilość zgadza się z epn.value, bo oba wysyłane są niezależnie od siebie, a rozbieżność między nimi nie jest widoczna w żadnym raporcie.

Liczba artykułów ma górną granicę, którą łatwo osiągnąć. Żądanie ma ograniczenie długości, a koszyk z dwustoma pozycjami je przekracza – GA4 przechodzi wtedy na POST, a powyżej tego skraca. Zakup, którego lista artykułów jest w raportach krótsza niż w sklepie, to niemal zawsze właśnie to.

Pola zgody

Ostatnia grupa jest krótka i rozstrzyga więcej niż cała reszta razem.

gcs=G111    ad_storage udzielone, analytics_storage udzielone
gcs=G100    oba odmówione
gcs=G101    ad_storage odmówione, analytics_storage udzielone
gcd=13t3t3t3t5   ustawienia domyślne sprzed decyzji

Dwie cyfry za G1 to pamięć reklamowa i pamięć analityczna w tej kolejności, 1 dla udzielonej i 0 dla odmówionej. Trafienie z G100 jest pingiem bez ciasteczka: liczy się do modelowania, ale nie zapisuje identyfikatora, a identyfikator klienta w nim powstaje na każde żądanie od nowa, zamiast być przechowywany.

Polem do zestawienia jest gcd, zapisujące, jak brzmiały ustawienia domyślne. Kontener, którego ustawienia domyślne przychodzą jako udzielone, choć baner nie został jeszcze rozstrzygnięty, to błędna konfiguracja ujawniająca się wyłącznie tutaj – raporty wyglądają zwyczajnie, bo dane przecież napływają.

Ostatnie sprawdzenie trwa dziesięć sekund i kończy całą klasę sporów: przeładować stronę z odmówioną zgodą i poszukać żądania. Jeśli wychodzi trafienie z gcs=G100, tryb zgody działa zgodnie z zamysłem. Jeśli nie wychodzi nic, tag jest blokowany w całości – to inny układ z innymi raportami, a warto wiedzieć, który z nich zachodzi.

Lukas Wojcik

Lukas Wojcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

Napisanie komentarza

Adres e-mail nie jest publikowany. Pola obowiązkowe oznaczono gwiazdką.

ALL ARTICLES & CATEGORIES

CCTV

Śledź tę kategorię przez RSS

Cloud & AI

Śledź tę kategorię przez RSS

Data Privacy

Wszystkie artykuły w tej kategorii (12) Śledź tę kategorię przez RSS

Digital Analytics

Wszystkie artykuły w tej kategorii (49) Śledź tę kategorię przez RSS

Digital Marketing

Wszystkie artykuły w tej kategorii (29) Śledź tę kategorię przez RSS

IT & Networks

Wszystkie artykuły w tej kategorii (16) Śledź tę kategorię przez RSS

Music Production

Śledź tę kategorię przez RSS

Raspberry Pi

Śledź tę kategorię przez RSS

Smart Home

Wszystkie artykuły w tej kategorii (18) Śledź tę kategorię przez RSS

Tworzenie stron internetowych

Śledź tę kategorię przez RSS

Wtyczki i triki WordPress

Śledź tę kategorię przez RSS