~/www cat poradnik-google-consent-mode-v2.md
Google Consent Mode v2 – czym jest i jak go wdrożyć przez GTM, gtag.js i WordPress
Google Consent Mode v2 krok po kroku: cztery sygnały zgody, tryb podstawowy i zaawansowany, konfiguracja w GTM i gtag.js oraz jak sprawdzić parametry gcs i gcd.

~ xad tldr poradnik-google-consent-mo…
- Consent Mode to mechanizm, który przekazuje tagom Google decyzję użytkownika z banera cookies — sam w sobie nie jest banerem ani nie zbiera zgody.
- Wersja v2 dodała do ad_storage i analytics_storage dwa nowe sygnały: ad_user_data i ad_personalization. Bez nich Google Ads w EOG nie zbuduje list remarketingowych.
- Tryb podstawowy blokuje tagi do czasu zgody, tryb zaawansowany wysyła bez zgody anonimowe pingi i pozwala na modelowanie konwersji.
- Domyślny stan zgody dla użytkowników z UE musi być „denied”, a aktualizacja do „granted” następuje dopiero po kliknięciu w banerze.
- Poprawność sprawdzisz w Tag Assistant (zakładka Consent) i w parametrach gcs oraz gcd w zapytaniach do Google Analytics.
$ tree --spis-tresci
Google Consent Mode v2 to mechanizm, który przekazuje tagom Google (Analytics 4, Google Ads, Floodlight) informację o tym, na co użytkownik zgodził się w banerze cookies. Tagi zmieniają wtedy swoje zachowanie: bez zgody nie zapisują plików cookie i nie wysyłają danych do celów reklamowych. Wersja v2 dodała dwa nowe sygnały — ad_user_data i ad_personalization — i od marca 2024 r. Google wymaga ich dla ruchu z Europejskiego Obszaru Gospodarczego.
Ważne: Consent Mode nie jest banerem cookies i sam nie zbiera zgody. Potrzebujesz platformy do zarządzania zgodą (CMP), która wyświetli baner, zapisze decyzję i przekaże ją do Consent Mode. Poniżej opisuję, jak to połączyć w Google Tag Managerze, w czystym gtag.js i w WordPressie oraz jak sprawdzić, czy wszystko działa.
Jak działa Consent Mode: cztery sygnały zgody
Consent Mode operuje na typach zgody, z których każdy ma stan granted (udzielona) lub denied (odmówiona). Google wykorzystuje cztery z nich:
| Sygnał | Za co odpowiada | Wersja |
|---|---|---|
ad_storage | Zapisywanie plików cookie związanych z reklamami | v1 |
analytics_storage | Zapisywanie plików cookie analitycznych (np. _ga) | v1 |
ad_user_data | Wysyłanie do Google danych użytkownika w celach reklamowych | v2 |
ad_personalization | Reklamy spersonalizowane i remarketing | v2 |
Istnieją też typy pomocnicze (functionality_storage, personalization_storage, security_storage), ale tagi Google ich nie odczytują — możesz ich używać do sterowania własnymi skryptami.
Cały mechanizm ma dwa kroki:
- Stan domyślny (
consent default) — ustawiany przy ładowaniu strony, zanim uruchomi się jakikolwiek tag Google. Dla użytkowników z UE wszystkie sygnały muszą tu mieć wartośćdenied. - Aktualizacja (
consent update) — wysyłana przez CMP po kliknięciu w banerze lub przy kolejnej wizycie, gdy zgoda została zapisana wcześniej.
Dlaczego Consent Mode v2 jest potrzebny
Podstawą prawną jest RODO oraz przepisy o plikach cookie — w Polsce od listopada 2024 r. zawarte w ustawie Prawo komunikacji elektronicznej, która zastąpiła w tym zakresie Prawo telekomunikacyjne. Wymagają one zgody przed zapisaniem na urządzeniu użytkownika informacji, które nie są niezbędne do działania serwisu.
Consent Mode v2 to z kolei wymóg Google, wynikający z unijnego aktu o rynkach cyfrowych (DMA) i polityki zgody użytkowników z UE. Jeśli reklamujesz się w Google Ads i nie przekazujesz sygnałów v2 dla ruchu z EOG:
- nie zbudujesz ani nie zasilisz list remarketingowych dla tych użytkowników,
- nie skorzystasz w pełni z pomiaru i modelowania konwersji,
- część funkcji, takich jak listy klientów (Customer Match), będzie ograniczona.
Sam Consent Mode nie chroni przed karą od UODO. Jeśli baner jest źle zaprojektowany (np. brak przycisku „Odrzuć” na pierwszej warstwie) albo tagi ładują się przed zgodą, problem prawny pozostaje.
Tryb podstawowy a zaawansowany
To najważniejsza decyzja przy wdrożeniu.
| Tryb podstawowy (basic) | Tryb zaawansowany (advanced) | |
|---|---|---|
| Ładowanie tagów Google przed zgodą | Nie — są blokowane do decyzji | Tak, ze stanem denied |
| Dane wysyłane bez zgody | Żadne | Anonimowe pingi bez plików cookie |
| Modelowanie konwersji i zachowań | Ogólny model Google Ads | Model dopasowany do Twojej strony |
| Ryzyko prawne | Niższe | Wyższe (dane trafiają do Google przed zgodą) |
W trybie zaawansowanym pingi bez zgody zawierają m.in. informację o zdarzeniu, znacznik czasu, adres URL i dane przeglądarki, ale nie identyfikatory z plików cookie. Google wykorzystuje je do szacowania utraconych konwersji. W GA4 modelowanie zachowań włącza się dopiero przy odpowiednim wolumenie: co najmniej 1000 zdarzeń dziennie z analytics_storage = denied przez 7 dni oraz co najmniej 1000 użytkowników dziennie wyrażających zgodę przez minimum 7 z ostatnich 28 dni.
Ważne: Część prawników i organów ochrony danych uważa wysyłanie jakichkolwiek danych do Google przed zgodą za ryzykowne. Jeśli prowadzisz mały serwis i nie spełnisz progów modelowania GA4, tryb zaawansowany niewiele Ci da, a podstawowy jest bezpieczniejszy.
Wybór CMP i baner cookies
Platformy do zarządzania zgodą z integracją Consent Mode v2 to m.in. Cookiebot, CookieYes, Usercentrics, OneTrust, Complianz czy CookieScript. Przy wyborze sprawdź:
- Czy CMP jest na liście platform certyfikowanych przez Google. Dla wydawców korzystających z AdSense, Ad Managera lub AdMob w EOG i Wielkiej Brytanii certyfikowany CMP zgodny z IAB TCF jest obowiązkowy.
- Czy ma gotowy szablon w Galerii szablonów społeczności GTM lub wtyczkę do Twojego CMS-a.
- Czy pozwala ustawić przycisk „Odrzuć wszystkie” na pierwszej warstwie banera i zapisuje historię zgód.
- Czy skanuje stronę i automatycznie kategoryzuje pliki cookie.
Decyzja użytkownika jest zwykle zapisywana w pliku cookie lub w Local Storage, dzięki czemu przy kolejnej wizycie CMP od razu wysyła consent update.
Wdrożenie Consent Mode v2 w Google Tag Manager
GTM to najwygodniejsza droga, zwłaszcza jeśli masz już tam GA4 i tagi Google Ads.
- W GTM przejdź do Administracja → Ustawienia kontenera i zaznacz Włącz omówienie zgody (Enable consent overview), jeśli opcja nie jest aktywna.
- Kliknij Tagi → Nowy → Konfiguracja tagu → Odkryj więcej typów tagów w Galerii szablonów społeczności i wyszukaj szablon swojego CMP (np. „Cookiebot CMP”, „CookieYes CMP”).
- W szablonie podaj identyfikator z panelu CMP i ustaw domyślne stany zgody na
denieddla regionu EOG. Większość szablonów ma do tego gotowe pola. - Jako regułę uruchamiania wybierz Inicjowanie zgody – wszystkie strony (Consent Initialization – All Pages). Ten wyzwalacz uruchamia się przed wszystkimi innymi, więc stan domyślny będzie ustawiony, zanim zadziała GA4.
- Otwórz widok Tagi i kliknij ikonę tarczy (omówienie zgody). Tagi Google (GA4, Google Ads, Floodlight) mają wbudowane sprawdzanie zgody. Dla tagów innych firm (Meta Pixel, Hotjar, TikTok) ustaw w Ustawienia zaawansowane → Ustawienia zgody opcję Wymagaj dodatkowej zgody, np.
ad_storagelubanalytics_storage. - Opublikuj kontener dopiero po testach w trybie podglądu.
Przy tagach firm trzecich bez wbudowanej obsługi zgody możesz alternatywnie użyć zdarzeń z warstwy danych (dataLayer), które CMP wysyła po kliknięciu w banerze, i na ich podstawie tworzyć reguły.
Wdrożenie przez gtag.js (bez Tag Managera)
Jeśli tagi Google są wklejone bezpośrednio w kod strony, stan domyślny musisz ustawić przed załadowaniem biblioteki gtag.js. Kolejność ma znaczenie.
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// stan domyślny – przed jakimkolwiek tagiem Google
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'wait_for_update': 500
});
</script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
Parametr wait_for_update daje CMP 500 ms na odczytanie zapisanej wcześniej zgody, zanim tagi wyślą pierwsze dane. Gdy użytkownik zaakceptuje cookies, CMP (albo Twój kod) wywołuje aktualizację:
gtag('consent', 'update', {
'ad_storage': 'granted',
'ad_user_data': 'granted',
'ad_personalization': 'granted',
'analytics_storage': 'granted'
});
Jeśli masz ruch spoza Europy i chcesz tam domyślnie przyznawać zgodę, możesz ustawić kilka poleceń default z parametrem region (kody krajów ISO 3166). Bardziej szczegółowa reguła wygrywa. Dodatkowo opcje ads_data_redaction (usuwanie identyfikatorów kliknięć przy braku zgody) i url_passthrough (przekazywanie gclid w adresach URL) pomagają zachować część danych o kampaniach.
Consent Mode v2 w WordPressie i sklepach
W WordPressie masz dwie popularne drogi:
- Wtyczka CMP z integracją Consent Mode — np. Complianz, CookieYes lub Cookiebot. Po wpisaniu identyfikatora i włączeniu opcji Google Consent Mode wtyczka sama ustawia stan domyślny i aktualizacje.
- Site Kit by Google — w ustawieniach Site Kit znajdziesz przełącznik Consent Mode. Wymaga dodatkowej wtyczki WP Consent API i zgodnej z nią wtyczki do banera.
Pilnuj, aby tagi Google nie były wstawiane podwójnie (np. przez motyw, wtyczkę SEO i GTM jednocześnie). Wtedy część z nich może się uruchomić przed ustawieniem stanu domyślnego. W sklepach internetowych na WooCommerce, Shoperze czy Shopify sprawdź dodatkowo integracje marketingowe platformy — mają własne ustawienia zgód. Jak dbać o widoczność sklepu w Google, opisujemy w poradniku SEO dla sklepu internetowego.
Jak sprawdzić, czy Consent Mode działa
Testuj w oknie prywatnym, żeby nie wpływała na wynik zgoda zapisana wcześniej.
Tag Assistant
- Otwórz tagassistant.google.com i podaj adres strony (lub uruchom Podgląd w GTM).
- Na liście zdarzeń wybierz pierwsze zdarzenie i przejdź do zakładki Consent. Kolumna „On-page Default” powinna pokazywać
Denieddla wszystkich czterech sygnałów. - Kliknij „Akceptuj” w banerze i sprawdź kolejne zdarzenie — w kolumnie „On-page Update” powinno być
Granted. - Sprawdź, czy tagi firm trzecich nie uruchomiły się przed zgodą.
Parametry gcs i gcd
W narzędziach deweloperskich (F12 → Network) przefiltruj zapytania po collect. W adresie zapytania do Google Analytics znajdziesz parametr gcs w formacie G1 + stan ad_storage + stan analytics_storage:
| Wartość gcs | Znaczenie |
|---|---|
G100 | Brak zgody na reklamy i analitykę |
G101 | Zgoda tylko na analitykę |
G110 | Zgoda tylko na reklamy |
G111 | Pełna zgoda |
Parametr gcd koduje stan wszystkich czterech sygnałów w wersji v2 i pozwala sprawdzić, czy ad_user_data oraz ad_personalization w ogóle są przesyłane. Jeśli gcd nie występuje, Twoje wdrożenie najpewniej nadal działa w wersji v1.
Uwaga: Jeśli po wejściu na stronę, jeszcze przed kliknięciem w banerze, widzisz
gcs=G111albo w zakładce Application pojawiają się pliki_gai_gcl_au, tagi uruchamiają się z domyślną zgodą. To najczęstszy i najpoważniejszy błąd — popraw kolejność ładowania skryptów.
Status wdrożenia zobaczysz też w panelach Google: w Google Ads na stronie podsumowania konwersji (diagnostyka trybu uzyskiwania zgody), a w GA4 w ustawieniach zgody w sekcji Administracja.
Najczęstsze błędy przy wdrożeniu
- Brak sygnałów v2 — CMP lub szablon jest nieaktualny i wysyła tylko
ad_storageorazanalytics_storage. Zaktualizuj szablon w GTM lub wtyczkę. - Stan domyślny ustawiony za późno — tag CMP ma regułę „All Pages” zamiast „Consent Initialization”, albo kod
consent defaultjest pod skryptemgtag.js. - Domyślne
granteddla wszystkich krajów — w UE niezgodne z prawem. Domyślnegrantedmożesz ustawić tylko regionalnie, poza EOG, jeśli przepisy danego kraju na to pozwalają. - Baner bez realnego wyboru — Consent Mode poprawnie przekaże odmowę, ale jeśli przycisk „Odrzuć” jest ukryty, problem leży w samym banerze.
- Brak testu po zmianach — każda aktualizacja motywu, wtyczki czy kontenera GTM może zmienić kolejność skryptów. Raz na kwartał przejdź test z Tag Assistantem.
Dobrze wdrożony Consent Mode v2 nie zwiększy liczby zgód, ale sprawi, że dane w GA4 i Google Ads będą zgodne z decyzjami użytkowników, a kampanie w EOG nie stracą dostępu do remarketingu.
~ man faq
Najczęściej zadawane pytania
Co to jest Google Consent Mode?
To interfejs Google, przez który strona przekazuje tagom Google Analytics i Google Ads informację, na co użytkownik wyraził zgodę w banerze cookies. Tagi dostosowują wtedy swoje działanie, np. nie zapisują plików cookie reklamowych.
Czym różni się Consent Mode v2 od v1?
Wersja v2 dodaje dwa sygnały: ad_user_data (zgoda na wysyłanie danych użytkownika do Google w celach reklamowych) i ad_personalization (zgoda na reklamy spersonalizowane i remarketing). Wersja v1 miała tylko ad_storage i analytics_storage.
Czy Consent Mode v2 jest obowiązkowy?
Prawnie obowiązkowa jest zgoda na cookies, a nie Consent Mode. Google wymaga jednak przekazywania sygnałów zgody v2 dla ruchu z Europejskiego Obszaru Gospodarczego, jeśli chcesz korzystać z remarketingu, list odbiorców i pełnego pomiaru konwersji w Google Ads.
Tryb podstawowy czy zaawansowany Consent Mode – co wybrać?
Tryb podstawowy jest ostrożniejszy prawnie, bo do zgody nic nie trafia do Google. Zaawansowany daje lepsze dane dzięki modelowaniu, ale wysyła anonimowe pingi przed zgodą. Wybór warto skonsultować z osobą odpowiedzialną za ochronę danych.
Jak sprawdzić, czy Consent Mode działa?
Uruchom podgląd w Google Tag Assistant i sprawdź zakładkę Consent: przed kliknięciem w banerze stan powinien być denied, po akceptacji granted. W narzędziach deweloperskich przeglądarki sprawdź parametr gcs w zapytaniach collect — G100 oznacza brak zgody, G111 pełną zgodę.
Ten artykuł jest częścią tematu
$ whoami
Założyciel i redaktor XAD.pl. Pisze o sieciach, bezpieczeństwie IT, administracji systemami Windows i Linux oraz o sprzęcie, który sprawia ludziom problemy na co dzień.


