Consent Mode v2 technicky: default, update, page_view a správné pořadí v GTM
Consent Mode v2 není cookie lišta. Je to vrstva signálů, která Google tagům říká, jak se mají chovat podle souhlasu uživatele.
Krátká odpověď
Consent Mode v2 není cookie lišta. Je to vrstva signálů, která Google tagům říká, jak se mají chovat podle souhlasu uživatele. Správné nastavení stojí na dvou krocích: nejdřív nastavit výchozí stav souhlasu před jakýmkoliv měřením a potom ho aktualizovat hned ve chvíli, kdy uživatel klikne na lištu.
Nejčastější technická chyba je špatné pořadí. Consent default musí existovat dřív, než tagy začnou číst consent state. Pokud uživatel na první stránce interaguje s cookie lištou, dobrá praxe je poslat consent update na téže stránce a teprve potom odeslat první plnohodnotný page_view nebo konverzní událost. Když page_view odejde před consent update, často si dobrovolně zhoršujete data o zdroji, kampani, klik ID a první interakci.
Zároveň platí, že Google tagy a ne-Google tagy se nechovají stejně. GA4, Google Ads, Floodlight, Conversion Linker a Google tag mají built-in consent checks. Meta Pixel, TikTok, LinkedIn Insight Tag, Hotjar nebo jiné nástroje je potřeba v GTM řídit přes dodatečné consent checks, případně vlastní pravidla.
Co přesně Consent Mode v2 řeší
Consent Mode v2 řeší dvě věci: ukládání a používání dat. Nestačí tedy jen říct, jestli se smí uložit reklamní nebo analytická cookie. U reklamních systémů se musí řešit i to, zda smíte posílat uživatelská data do Googlu pro reklamní účely a zda se data mohou používat pro personalizaci.
To je důvod, proč Consent Mode v2 pracuje s více typy souhlasu. Dva původní signály ad_storage a analytics_storage doplnily hlavně ad_user_data a ad_personalization. U webů v EHP je to zásadní pro měření i reklamní funkcionality Google Ads.
Default vs update: rozdíl, který rozhoduje o kvalitě dat
Default je výchozí stav souhlasu. Musí se nastavit co nejdřív, ideálně na Consent Initialization v GTM nebo přímo v kódu před Google tagem. Default říká: dokud uživatel nerozhodne, chovej se takto.
Update je změna stavu po interakci uživatele. Uživatel klikne na „Přijmout vše“, „Odmítnout vše“ nebo uloží vlastní preference. V tu chvíli musí implementace okamžitě poslat update. Ne až na další stránce. Ne až po reloadu. Ne až při dalším eventu. Update má být zaznamenán na stránce, kde rozhodnutí vzniklo.
Consent Mode sám neukládá rozhodnutí uživatele. Cookie lišta nebo CMP musí rozhodnutí uložit do cookie, localStorage, serverové session nebo jiného úložiště. Na dalších stránkách pak implementace toto rozhodnutí přečte a pošle správný consent state hned na začátku.
Doporučené pořadí v GTM
V GTM je pořadí důležitější než samotná existence cookie lišty. Web může mít drahou CMP platformu a přesto měřit špatně, pokud CMP tag běží pozdě, pokud blokuje celý GTM, nebo pokud se page_view odešle dřív, než tagy znají consent state.
Bezpečný technický rámec vypadá takto:
- Consent Initialization - All Pages: spustit CMP tag nebo consent default tag. Tady se nastavují výchozí hodnoty souhlasu a případně se přečte již uložená volba.
- Consent update z uložené volby: pokud uživatel rozhodl dříve, update musí proběhnout hned na začátku nové stránky.
- Initialization / All Pages: teprve poté se spouští Google tag, GA4 konfigurace nebo další měření podle zvoleného režimu.
- Interakce s lištou: při kliknutí se pošle consent update a ideálně vlastní event typu consent_ready nebo cookie_consent_update.
- Page_view a další eventy: posílají se až ve chvíli, kdy už je jasný consent state nebo kdy jste vědomě zvolili advanced režim s cookieless pingy.
Jak řešit první page_view
První page_view je nejcitlivější událost celého měření. Obsahuje vstupní URL, zdroj návštěvy, referrer a často i reklamní identifikátor z URL. Když ho odešlete špatně, můžete poškodit atribuci celé návštěvy.
Existují tři rozumné scénáře. První je strict/basic režim: Google tagy se před rozhodnutím nespustí a první page_view pošlete až po udělení souhlasu. Pokud uživatel odmítne, žádný analytický ani reklamní page_view neposíláte. To je čisté, ale ztratíte část měření.
Druhý je advanced režim: Google tagy se načtou s default denied a posílají omezené cookieless signály. Po souhlasu se stav aktualizuje a další události mohou nést plná data. Tento režim může zlepšit modelování, ale musíte vědět, co právně a technicky děláte.
Třetí je praktický hybrid pro weby s jasnou modální lištou na první stránce: nastavíte default hned, automatický page_view vypnete nebo odložíte, uživatel musí zvolit přijmout/odmítnout a po update odešlete explicitní page_view podle výsledného souhlasu. Pokud uživatel neinteraguje a přejde dál, musíte mít dopředu rozhodnutou politiku: buď poslat denied/cookieless signál, nebo měření neodeslat.
// Příklad principu v gtag.js. V GTM je lepší použít consent APIs v template.
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'wait_for_update': 500
});
// Po kliknutí na lištu:
gtag('consent', 'update', {
'ad_storage': 'granted',
'ad_user_data': 'granted',
'ad_personalization': 'granted',
'analytics_storage': 'granted'
});
// Teprve potom explicitně odešlete page_view, pokud jste ho předtím vypnuli/odložili.wait_for_update není řešení pomalé lišty
Parametr wait_for_update umí dát CMP krátký čas na to, aby doběhla a poslala update. Není to ale náhrada za dobře udělanou lištu. Nemá držet uživatele tři sekundy a nemá maskovat to, že CMP script je těžký, pomalý nebo načítaný pozdě.
V praxi dává smysl jen krátké čekání, typicky v řádu stovek milisekund. Pokud CMP nedokáže nastavit default a přečíst uložený souhlas rychle, problém je v architektuře, ne v hodnotě wait_for_update.
URL passthrough a ads_data_redaction
URL passthrough pomáhá v situaci, kdy je storage denied a reklamní nebo analytické identifikátory se nemohou uložit do cookies. Google pak může některé informace přenášet mezi stránkami přes URL parametry, například gclid, dclid, gclsrc, _gl nebo wbraid. Není to univerzální záchrana. Funguje pouze za podmínek daných Googlem a musíte ověřit, že web tyto parametry nemaže, přesměrování je zachovává a analytika je z URL nezapočítává jako jiné stránky.
ads_data_redaction je opačný bezpečnostní mechanismus. Pokud je ad_storage denied, můžete nastavit další redakci reklamních dat. Google pak při určitých požadavcích rediguje reklamní click identifikátory. To ale neznamená, že se parametry automaticky smažou z adresního řádku prohlížeče. Znamená to, že se omezí, co se posílá v network requestech Google tagů.
Google tagy vs Meta, TikTok, LinkedIn a další
Velká chyba je myslet si, že když GTM ukazuje Consent Mode, automaticky se tím řídí všechny nástroje. Consent Mode je nativní hlavně pro Google ekosystém. Google tagy umí podle consent state upravit své chování. Ne-Google tagy je potřeba buď blokovat, nebo spouštět jen s dodatečnou podmínkou souhlasu.
Prakticky to znamená: GA4 a Google Ads tag můžete při advanced režimu nechat pracovat s built-in consent checks. Meta Pixel, TikTok Pixel, LinkedIn Insight Tag, Hotjar, Clarity nebo jiné skripty by měly mít v GTM explicitní consent requirement. Typicky analytics_storage pro analytické nástroje a ad_storage pro reklamní pixely. V některých případech budete chtít vlastní consent typy, například marketing_storage nebo embeds_storage, aby bylo jasné, co přesně povolujete.
Nejčastější technické chyby
- CMP nebo consent default běží na All Pages místo Consent Initialization. Consent se nastaví pozdě a tagy ho čtou dřív, než existuje.
- Blokuje se celý GTM. Tím se často zablokuje i tag, který má consent nastavit. Výsledkem je slepá implementace, ne privacy-safe měření.
- Page_view odejde automaticky před kliknutím na lištu. Uživatel pak sice dá souhlas, ale první page_view už proběhl ve špatném stavu.
- Update se pošle až po reloadu nebo na další stránce. Google může přijít o data původní stránky, vstupního zdroje nebo session_start.
- Marketingové pixely zůstávají mimo GTM. Consent v GTM je neovlivní, protože jsou natvrdo v kódu webu.
- Neexistuje možnost změnit rozhodnutí. Technicky i právně problematické; uživatel musí mít možnost preference znovu otevřít.
- Consent Overview není zapnutý. Nikdo rychle nevidí, které tagy jsou chráněné a které běží bez kontroly.
FAQ
Časté otázky
Další článek
Cookie lišta CMP měření kampaní
Cookie lišta, CMP a ztráta dat: 20+ chyb, které ničí měření kampaní
Cookie lišta není jen právní prvek v rohu webu. Je to první technický filtr mezi uživatelem, analytikou a reklamními systémy.
Hledáte někoho, kdo to vezme za vás?
Nejste si jistí, jestli Consent Mode jen „nějak běží“, nebo skutečně chrání tagy a drží data? Uděláme technický audit GTM, cookie lišty, pořadí tagů a prvního page_view. Výstupem bude konkrétní seznam oprav, ne obecný report.