Consent Mode v2 w Google Tag Managerze krok po kroku: wdrożenie na WordPressie

16 września, 2026

Consent Mode v2 wdrożenie na WordPressie sprowadza się do trzech rzeczy: domyślny stan zgód musi wystrzelić przed jakimkolwiek tagiem Google, platforma zgód musi aktualizować sygnały po kliknięciu użytkownika, a wynik trzeba sprawdzić w Tag Assistancie zamiast wierzyć wtyczce. Od marca 2024 roku Google wymaga dwóch nowych sygnałów (ad_user_data i ad_personalization) dla ruchu z Europejskiego Obszaru Gospodarczego, inaczej Google Ads przestaje zasilać listy remarketingowe i nie modeluje konwersji. Ten tekst rozwija jeden wątek z przewodnika o pomiarze bez cookies w 2026 roku: samą procedurę wdrożenia w Google Tag Managerze, krok po kroku.

W skrócie:

  • Wersja v2 dodaje parametry ad_user_data i ad_personalization do znanych z v1 ad_storage i analytics_storage.
  • Domyślne zgody (default) muszą ładować się w tagu z wyzwalaczem Inicjalizacja zgody, przed kontenerem GTM lub w jego pierwszej kolejce.
  • Tryb zaawansowany wysyła pingi bez cookies także po odmowie; tryb podstawowy blokuje tagi całkowicie do momentu zgody.
  • Weryfikacja odbywa się w zakładce Consent w Tag Assistancie oraz w ustawieniach zgód GA4 i w Menedżerze danych Google Ads.
  • Najczęstszy błąd: wtyczka ustawia zgody, ale skrypt GTM wstawiony przez motyw ładuje się wcześniej i pierwsze zdarzenia lecą bez sygnału.

Co zmienia wersja v2 względem poprzedniej

Pierwsza wersja Consent Mode z 2020 roku obsługiwała dwa sygnały: analytics_storage (cookies analityczne) i ad_storage (cookies reklamowe). Wersja v2, ogłoszona w listopadzie 2023 roku, dodaje dwa kolejne: ad_user_data, czyli zgodę na przesyłanie danych użytkownika do Google w celach reklamowych, oraz ad_personalization, czyli zgodę na personalizację reklam i remarketing.

Zmiana wynika z Digital Markets Act, który uznał Google za tzw. strażnika dostępu. Od 6 marca 2024 roku konta Google Ads bez tych sygnałów dla ruchu z EOG tracą dostęp do list odbiorców i do modelowania konwersji. Dane w GA4 nadal spływają, ale bez pełnych sygnałów raporty odbiorców i import konwersji do Ads są niekompletne.

ParametrWersjaZa co odpowiadaSkutek odmowy
analytics_storagev1Cookies GA4 (_ga, _ga_*)Brak identyfikatora klienta, pingi bez cookies w trybie zaawansowanym
ad_storagev1Cookies reklamowe (_gcl_*)Brak atrybucji kliknięć Ads po stronie przeglądarki
ad_user_datav2Przesyłanie danych użytkownika do Google AdsKonwersje rozszerzone i dopasowanie klientów nie działają
ad_personalizationv2Remarketing i personalizacja reklamUżytkownik nie trafia na listy odbiorców

Wybór platformy zgód i integracja z GTM

Platforma zgód (CMP) musi być na liście partnerów certyfikowanych przez Google, bo od 2024 roku Google Ads sprawdza także pochodzenie sygnału. Na WordPressie w praktyce wybór ogranicza się do kilku rozwiązań: Cookiebot, Complianz, CookieYes, Real Cookie Banner, iubenda i Usercentrics. Każde z nich ma gotowy szablon w galerii szablonów GTM (Community Template Gallery), co upraszcza konfigurację do jednego tagu.

Zasada jest jedna: CMP powinien być jedynym źródłem komend consent. Jeśli wtyczka WordPress wstawia własny skrypt gtag z komendą default, a równolegle w GTM działa szablon tej samej platformy, dwa źródła zaczynają się przepisywać i Tag Assistant pokazuje sprzeczne stany. Wybierzcie jedną ścieżkę: albo szablon w GTM, albo skrypt wtyczki na stronie, nigdy obie.

  1. W GTM dodajcie tag z galerii szablonów (np. Cookiebot CMP) i wpiszcie identyfikator domeny z panelu platformy.
  2. Wyzwalacz ustawcie na Inicjalizacja zgody: wszystkie strony (Consent Initialization). Ten wyzwalacz odpala się przed każdym innym w kontenerze.
  3. W ustawieniach kontenera włączcie Przegląd zgód (Admin, Ustawienia kontenera, Enable consent overview), aby widzieć, które tagi mają wbudowane sprawdzanie zgód.
  4. Wyłączcie w wtyczce WordPress automatyczne wstawianie skryptu gtag, jeśli szablon GTM przejmuje tę rolę.

Jeśli pomiar ma iść przez własny serwer, platforma zgód działa tak samo po stronie przeglądarki, a sygnały consent są przenoszone w parametrach żądania. Szczegóły konfiguracji kontenera serwerowego opisuje osobny tekst o tagowaniu server-side w GA4.

Ustawienia domyślne i aktualizacja po decyzji użytkownika

Komenda default określa stan zgód, zanim użytkownik cokolwiek kliknie. Dla ruchu z EOG wszystkie cztery parametry powinny startować jako denied; dla pozostałych regionów można ustawić granted przez parametr region. Warto dodać wait_for_update z wartością 500 ms, aby tagi Google poczekały na odczyt zapisanej wcześniej decyzji z cookie platformy.

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied',
  'wait_for_update': 500
});

Komenda update wysyła nowy stan po kliknięciu w banerze i przy każdym kolejnym wejściu, gdy decyzja jest już zapisana. Certyfikowane platformy robią to same. Przy własnym rozwiązaniu trzeba dopisać wywołanie update w zdarzeniu akceptacji oraz osobne dla częściowej zgody (np. analityka tak, reklamy nie). Pełną specyfikację parametrów publikuje dokumentacja Google Tag Platform.

Do wyboru są dwa tryby. Tryb podstawowy blokuje tagi Google do momentu zgody, więc po odmowie GA4 nie dostaje nic. Tryb zaawansowany ładuje tagi od razu, ale przy odmowie wysyła anonimowe pingi bez cookies, na których GA4 buduje modelowanie behawioralne. Modelowanie uruchamia się dopiero po spełnieniu progów: co najmniej 1 000 zdarzeń dziennie z odmową i 1 000 użytkowników dziennie ze zgodą przez 7 z ostatnich 28 dni.

Kolejność ładowania skryptów

Na WordPressie właśnie tu psuje się większość wdrożeń. Motyw albo wtyczka SEO wstawia kod GTM w sekcji head, a wtyczka zgód dodaje swój skrypt przez wp_head z niższym priorytetem. Efekt: kontener startuje, tag GA4 z wyzwalaczem Wyświetlenie strony wystrzela, a komenda default dociera pół sekundy później. Pierwsze zdarzenie page_view leci bez sygnału zgody i w Tag Assistancie widać status Not set.

Poprawna kolejność wygląda tak:

  1. Skrypt platformy zgód lub komenda default (inline, jak najwyżej w head).
  2. Fragment kodu GTM (gtm.js).
  3. W kontenerze: tag CMP na wyzwalaczu Inicjalizacja zgody.
  4. Tagi GA4, Google Ads, Floodlight na wyzwalaczach Wyświetlenie strony lub Inicjalizacja (Initialization), nigdy na Inicjalizacji zgody.

Weryfikacja w podglądzie GTM i w Tag Assistant

Po włączeniu podglądu w GTM otwórzcie Tag Assistant i przejdźcie do zakładki Consent. Poprawne wdrożenie pokazuje dwa wiersze: On-page Default ze wszystkimi parametrami w stanie denied oraz, po kliknięciu w banerze, On-page Update ze zmienionymi wartościami. Jeśli w pierwszym wierszu widzicie Not set lub jeśli linia Default pojawia się po tagu GA4 na osi zdarzeń, kolejność skryptów jest zła.

Dodatkowo sprawdźcie w zakładce Tags, czy tag GA4 ma pole Consent status i czy przy odmowie w trybie podstawowym pozostaje w stanie Not fired. W trybie zaawansowanym tag odpala się, ale w parametrach żądania do collect pojawia się gcs=G100 (obie zgody odmówione) zamiast gcs=G111. Parametr gcd koduje z kolei stan czterech sygnałów v2 i to on decyduje o tym, czy Google Ads uznaje wdrożenie za kompletne.

Sprawdzenie sygnałów po stronie GA4 i Google Ads

W GA4 wejdźcie w Administracja, Zbieranie i modyfikacja danych, Zbieranie danych, sekcja Ustawienia zgód. Po 24–48 godzinach od wdrożenia status obu grup sygnałów powinien zmienić się na aktywny. Jeśli widnieje informacja o braku sygnałów, dane wciąż płyną bez parametrów consent.

W Google Ads sprawdźcie Narzędzia, Menedżer danych, diagnostyka tagu Google, gdzie konto pokazuje odsetek ruchu z EOG, który dotarł z pełnymi sygnałami v2. Druga kontrola to kolumna stanu w podsumowaniu konwersji: wpis „brak zgody” przy konwersjach oznacza, że tag konwersji odpala się przed update. Różnice między liczbą konwersji w GA4 i w Ads po wdrożeniu są normalne; ich źródła rozkładamy w analizie, dlaczego GA4 pokazuje mniej konwersji niż Google Ads.

Najczęstsze błędy wdrożeniowe

BłądObjawNaprawa
GTM ładuje się przed komendą defaultPierwszy page_view z gcs pustym lub Not setPrzenieść skrypt zgód wyżej w head albo wstawić GTM przez platformę
Dwa źródła komend consentSprzeczne stany Default w Tag AssistantWyłączyć skrypt gtag wtyczki lub usunąć szablon z GTM
Brak ad_user_data i ad_personalizationAds zgłasza niekompletne sygnały, listy odbiorców pustoszejąZaktualizować wtyczkę zgód do wersji obsługującej v2
Tagi Ads na wyzwalaczu Inicjalizacja zgodyKonwersje bez statusu zgodyZostawić na tym wyzwalaczu wyłącznie tag CMP
Region granted dla całego świataUżytkownicy z EOG mają cookies przed kliknięciemUstawić default denied globalnie i wyjątki przez region
Wtyczka cache buforuje baner ze stanem zgodyNowi użytkownicy widzą zaakceptowany stanWykluczyć skrypt CMP z minifikacji i opóźniania JS

Osobną kategorią jest zgodność prawna: baner, który technicznie wysyła sygnały, ale nie daje równie łatwej opcji odmowy, nie spełnia wymogów RODO niezależnie od poprawności w GTM. Granice zbierania danych o użytkownikach w polskim porządku prawnym omawiamy w tekście o scrapowaniu danych do SEO a prawie.

FAQ: najczęstsze pytania

Czy Consent Mode v2 jest obowiązkowy dla każdej strony na WordPressie?

Obowiązek dotyczy stron, które korzystają z Google Ads lub GA4 i przyjmują ruch z Europejskiego Obszaru Gospodarczego. Bez sygnałów ad_user_data i ad_personalization Google Ads od marca 2024 roku nie buduje list odbiorców i nie modeluje konwersji dla tego ruchu.

Czym różni się tryb podstawowy od zaawansowanego?

Tryb podstawowy blokuje ładowanie tagów Google do momentu zgody, więc po odmowie GA4 nie otrzymuje żadnych danych. Tryb zaawansowany ładuje tagi od razu i przy odmowie wysyła anonimowe pingi bez cookies, które GA4 wykorzystuje do modelowania behawioralnego.

Po jakim czasie GA4 pokaże aktywne sygnały zgody?

Sekcja Ustawienia zgód w GA4 aktualizuje status w ciągu 24–48 godzin od pierwszych trafień z parametrami consent. Modelowanie behawioralne wymaga dodatkowo spełnienia progów wolumenu przez 7 z ostatnich 28 dni, więc w raportach pojawia się zwykle po dwóch do czterech tygodniach.

Czy wtyczka zgód wystarczy, czy trzeba konfigurować GTM ręcznie?

Certyfikowane wtyczki (Cookiebot, Complianz, CookieYes, Real Cookie Banner) obsługują komendy default i update samodzielnie. Ręczna praca w GTM sprowadza się do dodania tagu z szablonu na wyzwalaczu Inicjalizacja zgody i upewnienia się, że żaden inny skrypt nie wysyła komend consent.

Co oznaczają parametry gcs i gcd w żądaniach do Google?

Parametr gcs koduje stan dwóch sygnałów v1: G100 oznacza odmowę obu, G111 zgodę na oba, a G101 lub G110 zgodę częściową. Parametr gcd koduje stan wszystkich czterech sygnałów wraz z informacją, czy pochodzą z komendy default czy update. Google Ads odczytuje kompletność wdrożenia v2 właśnie z gcd.

Co dalej

Po potwierdzeniu poprawnych sygnałów w Tag Assistancie warto wrócić do szerszego kontekstu: modelowanie konwersji i tagowanie po stronie serwera opisujemy w przewodniku o pomiarze bez cookies w 2026 roku. Dopiero z działającym Consent Mode ma sens porównywanie liczb między GA4 i Google Ads, bo bez niego różnice wynikają z braku danych, a nie z metodologii atrybucji.