LW IT Solutions
« Blog Overview /Digital Marketing / Jak przekazać zgody z Client GTM do...
This post in other languages:

Jak przekazać zgody z Client GTM do Server-Side GTM

Część 4 z 4 serii Jak poprawnie okablować zgodę

Jak przekazać zgody z Client GTM do Server-Side GTM
Spis treści
  1. 1. Logika: Jak działa ten „most”?
  2. 2. Konfiguracja w Client GTM (Przeglądarka)
  3. 3. Konfiguracja w Server-Side GTM (Serwer)
  4. 4. Weryfikacja wdrożenia
  5. Podsumowanie
  6. Źródła

Wdrażanie analityki po stronie serwera (Server-Side GTM) to potężny krok w stronę niezawodności danych. Środowisko serwerowe ma jednak jedną fundamentalną „wadę” architektoniczną: nie ma bezpośredniego dostępu do przeglądarki użytkownika, jego plików cookie, ani banera zgód (CMP).

Jeśli użytkownik odrzuci śledzenie w banerze Usercentrics, serwer sam z siebie się o tym nie dowie. Gdy trafią do niego dane bez statusu zgody, Meta Conversions API (CAPI) wyśle payload do Facebooka, łamiąc tym samym RODO i przepisy DMA.

Jako analitycy musimy zbudować „most”, który przetransportuje decyzję o zgodzie (Consent State) z przeglądarki (Client GTM) prosto do kontenera serwerowego (Server GTM). Oto techniczny przewodnik, jak to zrobić krok po kroku na przykładzie Usercentrics, Meta Pixela oraz Meta CAPI.

1. Logika: Jak działa ten „most”?

Zamiast polegać wyłącznie na wbudowanym Google Consent Mode (który czasem bywa trudny do zdebugowania po stronie serwera przy tagach non-Google), użyjemy najpewniejszej metody – jawnego przekazania decyzji użytkownika jako Parametru Zdarzenia (Event Parameter) w tagu transportowym (np. GA4).

  • Zgoda: Usercentrics zapisuje wybór.
  • Client GTM: Blokujemy klasycznego Meta Pixela, jeśli brak zgody. Następnie chwytamy status zgody i dołączamy go jako parametr do tagu wysyłającego dane na nasz serwer (ssGTM).
  • Server GTM: Odbieramy parametr jako Event Data. Budujemy Trigger, który warunkuje odpalenie Meta CAPI tylko wtedy, gdy parametr zgody ma wartość true.
Stan zgody wędruje z Client GTM przez tag transportowy do Server GTM, gdzie trigger blokujący przepuszcza tag Meta CAPI
Kontener serwerowy nie ma dostępu do CMP, dlatego stan zgody musi podróżować w żądaniu. Trigger blokujący ocenia dokładnie ten parametr, zanim tag CAPI może zadziałać.

2. Konfiguracja w Client GTM (Przeglądarka)

Zaczynamy od kontenera przeglądarkowego. Zakładam, że masz już wdrożony tag Usercentrics CMP, który wypycha zdarzenia do DataLayer.

Krok A: Zmienna sprawdzająca zgodę

Usercentrics domyślnie posiada własne zmienne lub pozwala na sprawdzenie statusu danej usługi (tzw. Data Processing Service).

  1. Utworzyć Zmienną (Variable) typu Data Layer Variable.
  2. Wprowadzić nazwę klucza, pod którym Usercentrics trzyma zgodę dla Meta. (W oficjalnym szablonie Usercentrics jest to często zmienna dostarczana przez ich DataLayer, np. stworzona z użyciem niestandardowego kodu JS sprawdzającego obiekt Usercentrics). Na potrzeby poradnika nazwijmy tę zmienną: {{UC - Meta Consent}}. Zmienna ta powinna zwracać wartość true lub false.

Krok B: Zabezpieczenie Meta Pixela (Client-Side)

Meta Pixel operujący w przeglądarce musi respektować decyzję użytkownika.

  1. Otworzyć tag Meta Pixel.
  2. Przejść do sekcji Wyzwalanie (Triggers).
  3. Utworzyć nowy Trigger typu Niestandardowe zdarzenie (Custom Event).
  4. Ustawić nazwę zdarzenia na consent_status (lub inne zdarzenie, na którym odpala się pageview po załadowaniu Usercentrics).
  5. Zaznaczyć „Niektóre zdarzenia niestandardowe” i dodać warunek: {{UC - Meta Consent}} równa się true.
  6. (Opcjonalnie) Przy Google Consent Mode v2 w sekcji Advanced Settings > Consent Settings tagu Meta Pixel można dodatkowo wymagać zgód ad_storage oraz ad_user_data.

Krok C: Przekazanie zgody do serwera (Tag Transportowy)

Najczęściej dane do ssGTM przesyła się za pomocą tagu GA4. Musimy „doczepić” naszą zgodę do tego requestu.

  1. Otworzyć główny tag transportowy (np. Google Tag lub GA4 Configuration/Event), który ma ustawiony Routing na własny serwer (np. sgtm.twojadomena.pl).
  2. Przejść do sekcji Event Parameters (Parametry Zdarzenia).
  3. Dodać nowy parametr o nazwie meta_consent_state.
  4. Jako wartość przypisać naszą zmienną: {{UC - Meta Consent}}.
  5. Zapisać i opublikować Client GTM. Od teraz każdy request lecący na serwer niesie w sobie flagę mówiącą, czy użytkownik zezwolił na tracking Meta.

3. Konfiguracja w Server-Side GTM (Serwer)

Przechodzimy do kontenera serwerowego. Tutaj musimy odebrać przesyłany parametr i użyć go do zablokowania tagu Meta CAPI.

Krok A: Odebranie parametru (Event Data Variable)

  1. W kontenerze ssGTM przejść do zakładki Variables (Zmienne).
  2. Utworzyć nową Zmienną typu Event Data (Dane Zdarzenia).
  3. W polu Key Path (Ścieżka klucza) wpisać dokładnie tę samą nazwę, która została wysłana z Client GTM: meta_consent_state.
  4. Zapisać zmienną jako {{EventData - Meta Consent}}.

Krok B: Budowa Triggera blokującego dla Meta CAPI

Nie chcemy, aby tag Meta CAPI odpalał się za każdym razem. Musi zostać wysterowany przez naszą zmienną.

  1. Przejść do zakładki Triggers (Wyzwalacze).
  2. Utworzyć nowy Trigger typu Custom Event (Niestandardowe zdarzenie).
  3. Jako nazwę zdarzenia wpisać .* i zaznaczyć opcję Use regex matching (aby odpalać to dla każdego eventu e-commerce) LUB wpisać konkretne zdarzenie, np. page_view.
  4. Zaznacz opcję odpylania dla Some Custom Events (Niektóre zdarzenia).
  5. Dodać bezwzględny warunek: {{EventData - Meta Consent}} równa się true.
  6. Aby wymagać także konkretnego klienta (Client Name), dodać warunek: Client Name równa się GA4.
  7. Zapisać Trigger jako Trigger - Meta CAPI - Consent Granted.

Krok C: Podpięcie Triggera do Tagu Meta CAPI

  1. Otworzyć tag Meta Conversions API w ssGTM.
  2. W sekcji Wyzwalanie usunąć domyślny wyzwalacz (np. „All Events”).
  3. Dodać nowo utworzony wyzwalacz: Trigger - Meta CAPI - Consent Granted.
  4. Zapisać tag i uruchomić tryb Preview, aby przetestować wdrożenie.

4. Weryfikacja wdrożenia

Aby mieć 100% pewności, że prawo pozostaje nienaruszone, warto wykonać poniższy test:

  • Wejdź na swoją stronę w trybie Incognito. W banerze Usercentrics odrzuć wszystkie zgody.
  • Sprawdzić w Debuggerze Client GTM, czy Meta Pixel powstrzymał się od odpalenia (Trigger powinien pokazać krzyżyk przy warunku {{UC - Meta Consent}} == true).
  • Sprawdzić request wysyłany do ssGTM. W podglądzie zdarzenia w Server GTM parametr meta_consent_state przyjmie wartość false.
  • Tag Meta CAPI na serwerze nie powinien się odpalić. Środowisko jest wtedy szczelne i w pełni legalne.

Podsumowanie

Przekazywanie statusu zgody pomiędzy przeglądarką a serwerem to podstawa dzisiejszej inżynierii danych. Jawne definiowanie parametru meta_consent_state w tagu transportowym daje pełną kontrolę i przejrzystość nad tym, co i kiedy trafia do zewnętrznych vendorów. To gwarancja, że architektura jest nie tylko technicznie bezbłędna, ale również w pełni zgodna z polityką prywatności Usercentrics, RODO oraz przepisami DMA.

Jak poprawnie okablować zgodę

  1. Jak wdrożyć Google Consent Mode v2
  2. Jak działają pingi bez cookies w Google Consent Mode
  3. GA4 Consent Mode v2: Dekodowanie parametru gcd (Analiza żądań sieciowych)
  4. Jak przekazać zgody z Client GTM do Server-Side GTM
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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

ALL ARTICLES & CATEGORIES

CCTV

Śledź tę kategorię przez RSS

Data Privacy

Śledź tę kategorię przez RSS

Digital Analytics

Śledź tę kategorię przez RSS

Digital Marketing

Śledź tę kategorię przez RSS

IT & Networks

Śledź tę kategorię przez RSS

Raspberry Pi

Śledź tę kategorię przez RSS

Smart Home

Śledź tę kategorię przez RSS

Tworzenie stron internetowych

Śledź tę kategorię przez RSS

Wordpress Hacks

Śledź tę kategorię przez RSS