GA4 Consent Mode v2: Dekodowanie parametru gcd (Analiza żądań sieciowych)
Część 3 z 4 serii Jak poprawnie okablować zgodę
GA4 Consent Mode v2: Dekodowanie parametru gcd (Analiza żądań sieciowych)
W nowoczesnych architekturach analityki internetowej weryfikacja zgodności z przepisami o prywatności wymaga znacznie głębszej analizy niż tylko sprawdzanie obecności banera cookie. Standardowy parametr gcs w żądaniach sieciowych Google Analytics 4 (GA4) dostarcza jedynie podstawowej informacji (np. g110 lub g111), nie ujawniając rzeczywistego mechanizmu stanów zgód. Cała złożoność Google Consent Mode v2 jest zakodowana w kryptograficznym parametrze gcd (np. 11r1r1r1r5).
Poniższa analiza techniczna wyjaśnia logikę bitową ciągu gcd, przedstawia metody debugowania sygnałów w Server-Side Google Tag Manager (ssGTM) oraz pokazuje, w jaki sposób identyfikować błędy typu race condition między platformami CMP (np. Usercentrics) a pierwszym wyświetleniem strony.
1. Struktura parametru gcd
W przeciwieństwie do parametru gcs, który informuje wyłącznie o ogólnej zgodzie na pamięć reklamową lub analityczną, parametr gcd precyzyjnie określa pełny cykl życia sygnału. Ujawnia on, czy dany status został ustawiony jako domyślny (default), zaktualizowany przez akcję użytkownika (update), czy też pozostał nieskonfigurowany.
Typowy ciąg parametru gcd ma następującą strukturę: 11<ad_storage>1<analytics_storage>1<ad_user_data>1<ad_personalization>5
| Kod literowy | Stan zgody (Consent State) | Znaczenie techniczne |
|---|---|---|
p | Odrzucono (Domyślnie) | Brak jawnej konfiguracji default; obowiązuje domyślna odmowa. |
q / r | Odrzucono (Domyślnie) | Jawnie skonfigurowany stan domyślny jako odmowa (denied). |
t | Wyrażono zgodę (Domyślnie) | Jawnie skonfigurowany stan domyślny jako zgoda (granted). |
u | Odrzucono (Aktualizacja) | Zmiana statusu na odmowę po interakcji z banerem CMP. |
v | Wyrażono zgodę (Aktualizacja) | Zmiana statusu na zgodę po wcześniejszej domyślnej odmowie. |
l / m / n | Zgoda / Odmowa | Warianty specyficzne dla szablonów CMP lub rozwiązań Tag Gateway. |
Przykładowo, wartość gcd=11r1r1r1r5 oznacza restrykcyjny stan domyślny, w którym wszystkie cztery parametry (ad_storage, analytics_storage, ad_user_data, ad_personalization) mają domyślnie status odmowny (r). Z kolei wartość gcd=11v1v1v1v5 potwierdza, że nastąpiło zdarzenie aktualizacji i wszystkie stany zostały pomyślnie zmienione na zgodę (v).
2. Wykrywanie błędów Race Condition
Częstym błędem architektonicznym jest wyścig (race condition) pomiędzy ładowaniem skryptu CMP (np. Usercentrics) a uruchomieniem pierwszego tagu konfiguracyjnego GA4. Jeśli powracający użytkownik posiada zapisaną zgodę, jednak pierwsze żądanie sieciowe zawiera kody r zamiast v, oznacza to, że tag śledzący wysłał dane, zanim platforma CMP zdążyła przekazać zaktualizowany stan do DataLayer.
- Objaw: Pierwszy hit pageview zawiera
gcd=11r1r1r1r5(Default Denied), podczas gdy kolejne zdarzenia mają już kodgcd=11v1v1v1v5. - Przyczyna: Uruchomienie tagu GA4 następuje na standardowym wyzwalaczu All Pages lub Consent Initialization bez oczekiwania na asynchroniczną inicjalizację CMP.
- Rozwiązanie: Konfiguracja tagów analitycznych w oparciu o dedykowane zdarzenia CMP (np.
consent_status) lub zastosowanie parametruwait_for_updatez limitem 500 ms w kodzie domyślnym.
3. Debugowanie w Server-Side GTM
W środowisku Server-Side Google Tag Manager (ssGTM) przychodzące żądanie HTTP GA4 stanowi podstawowy nośnik danych dla tagów vendorów zewnętrznych, w tym Meta Conversions API (CAPI) czy Google Ads. Analiza parametru gcd w trybie podglądu ssGTM jest kluczowa dla zapobiegania wysyłce niedozwolonych danych.
// Przykład: Logika zmiennej ssGTM weryfikująca stan ad_user_data
const gcd = getRequestQueryParameter("gcd");
if (gcd && gcd.charAt(7) === "v") {
return true; // ad_user_data posiada status granted via update
}
return false;
Dzięki wdrożeniu reguł wyzwalających opartych na zdekodowanym stanie gcd, architektura danych zachowuje pełną zgodność z RODO oraz Aktem o rynkach cyfrowych (DMA), gwarantując blokadę pakietów marketingowych przy braku zgody użytkownika.
Jak poprawnie okablować zgodę
- Google Consent Mode v2: Wdrożenie przez GTM oraz natywnie (Vanilla JS)
- Basic a Advanced Consent Mode: Architektura sygnałów (pings)
- GA4 Consent Mode v2: Dekodowanie parametru gcd (Analiza żądań sieciowych)
- Architektura Prywatności: Jak przekazać Consent State z Client GTM do Server-Side GTM (Usercentrics, Meta Pixel & CAPI)