Google Consent Mode v2 w 2026 — co naprawdę musisz zrobić
Dwa nowe sygnały (ad_user_data, ad_personalization), tryb Basic vs Advanced i deadline w EOG — wyjaśnione po ludzku, z działającym snippetem.
Od marca 2024 r. Google wymaga, żeby każda strona korzystająca z Google Ads albo Google Analytics 4 w EOG wysyłała sygnały Consent Mode v2. Strony, które tego nie zrobiły, tracą modeled conversions, raportowanie audiencji i — docelowo — możliwość reklamowania się do mieszkańców EOG. Jeśli odłożyłeś migrację, czas wyszedł.
Ten artykuł tłumaczy, czym właściwie jest Consent Mode v2, czym różnią się tryby Basic i Advanced i jaką minimalną implementację trzeba zrobić, żeby się trzymać litery prawa i zaleceń Google.
Co Consent Mode robi pod spodem
Consent Mode to mały protokół między Twoją stroną a tagami Google. Zanim odpali jakikolwiek tag, mówisz Google, na co użytkownik wyraził zgodę, wywołując gtag('consent', 'default', …). Po decyzji w bannerze wywołujesz gtag('consent', 'update', …). Tagi Google czytają te sygnały i się dostosowują — np. GA4 zamiast pełnych hitów wysyła „cookieless pings” gdy zgoda na analytics jest odmówiona.
Wersja v2 wprowadza dwa nowe parametry, których nie było w v1:
ad_user_data— czy wolno wysyłać dane na poziomie użytkownika do Google na potrzeby reklam.ad_personalization— czy użytkownik może być dodany do remarketingowych audiencji.
Razem z sygnałami z v1 (ad_storage, analytics_storage, functionality_storage, personalization_storage, security_storage) dają siedem wartości, które musisz zadeklarować.
Tryb Basic kontra Advanced
Oba tryby są legalne. Wybierasz na podstawie tego, jak agresywnie chcesz odzyskiwać konwersje przez modelowanie.
| Aspekt | Basic | Advanced |
|---|---|---|
| Kiedy ładują się tagi | Dopiero po zgodzie | Zawsze — ale do momentu zgody bez cookies |
| Modeled conversions | Niższe (model używa danych ogólnych) | Wyższe (model uczy się z Twojego ruchu denied) |
| Trudność wdrożenia | Niższa | Trochę więcej (Google ładuje się przed zgodą) |
| Konserwatywni IOD-owie | Często wolą | Czasem oprotestowują |
Jak nie masz silnego zdania — zacznij od Basic. Zawsze możesz przejść na Advanced później, a różnica w modeled conversions zaczyna mieć znaczenie dopiero powyżej ~10 tys. eventów miesięcznie.
Minimalny zgodny snippet
To trzeba wykonać przed jakimkolwiek innym tagiem Google:
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('consent', 'default', {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
analytics_storage: 'denied',
functionality_storage:'granted',
personalization_storage:'denied',
security_storage: 'granted',
wait_for_update: 500
});
</script>Po zaakceptowaniu marketingu w bannerze:
gtag('consent', 'update', {
ad_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted',
analytics_storage: 'granted'
});Pięć błędów, które widzę najczęściej
- Brakuje bloku default. Jeśli
gtag('consent', 'default', …)nie zostanie wywołane przedgtm.js, Google w ogóle nie potraktuje Twojej strony jako Consent Mode. - Banner aktualizuje tylko
analytics_storageiad_storage. To wersja v1. v2 wymaga teżad_user_dataiad_personalization, inaczej Twoje audiencje remarketingowe nie zapełnią się. - Pre-zaznaczone „akceptuję wszystko”. Regulatorzy w EOG traktują to jako brak zgody. Domyślnie denied; user musi wyrazić zgodę aktywnym kliknięciem.
- Pozostawione tagi Universal Analytics. UA jest wyłączone. Jeśli wciąż widzisz ciasteczka
__utma, masz duplikujące lub stare tagi. - Brak szablonu CMP w GTM. Jeśli używasz Google Tag Manager, zainstaluj szablon CMP (np. CookieGuard) tak, żeby wszystkie Twoje tagi czytały stan zgody automatycznie. Ręczne podpinanie 30 tagów jest pewną drogą do błędu.
Jak CookieGuard to ogarnia
CookieGuard wysyła default consent w momencie, gdy loader skryptu zaczyna działać — więc nawet tagi, które ładują się przed naszym UI, widzą stan denied. Gdy użytkownik podejmie decyzję, mapujemy Twoje kategorie na siedem sygnałów Consent Mode przez konfigurowalną tablicę. Domyślne mapowanie:
- kategoria
marketing→ad_storage,ad_user_data,ad_personalization - kategoria
analytics→analytics_storage - kategoria
preferences→personalization_storage necessary→functionality_storage,security_storage(zawsze granted)
Każde z tych mapowań jest konfigurowalne, jeśli Twoja taksonomia kategorii jest inna. Snippet do wklejenia ma dwie linie.