Cookiebot maakt het makkelijk om consent mode v2 in te richten. Er zijn echter een aantal belangrijke zaken waar je rekening mee moet houden. In dit artikel zal ik aangeven hoe je dit het beste kunt inrichten met hulp van Google Tag Manager.

Hoe werkt Consent Mode

Ik zal in dit artikel niet al te diep ingaan op hoe consent mode precies werkt en hoe je dit kunt instellen maar vooral bespreken hoe dit gedaan kan worden met hulp van cookiebot. Voor gedetailleerde informatie over Consent Mode wil ik wijzen naar een artikel over het inrichten van consent mode met GTM (Kop, 2024) die ik eerder over dit onderwerp heb geschreven.

In grote lijnen werkt Consent Mode als volgt: Stel dat een bezoeker voor het eerst een website bezoekt waar Consent Mode is geïmplementeerd via een cookie-plugin. Op dat moment heeft de bezoeker nog geen toestemming gegeven voor het plaatsen van cookies of tracking-scripts. Wanneer Consent Mode is geïmplementeerd, zouden alle instellingen standaard op ‘geweigerd’ moeten staan.

Afbeelding 1: Consent mode bij laden van de pagina

Zodra er een keus in de cookiemelding is gedaan zou hier een update moeten volgen en kunnen op basis van die keuzes bepaalde scripts wel of niet afgevuurd worden.

Zodra de bezoeker een keuze heeft gemaakt in de cookiemelding, moet er een update die de state van cookieconsent updatet. Op basis van deze keuzes kunnen bepaalde tags wel of niet worden geactiveerd.

Er zijn de volgende keuzes:

  • ad_storage: dit is voor marketing cookies voor advertenties en remarketing
  • ad_user_data: persoonsgegevens worden met Google gedeeld
  • ad_personalization: advertenties worden gepersonaliseerd
  • analytics_storage: dit is voor geanonimiseerde analytics platforms
  • functionality_storage: Dit zijn functionele cookies om bijvoorbeeld instellingen op je website te onthouden.
  • personalization_storage: dit staat personalisatie van gerelateerde content zoals video’s toe
  • security_storage: dit staat cookies toe gerelateerd aan beveiliging, authenticatie en fraude preventie

Tabel 1. Google. (n.d.-a) Google (n.d.) over toestemmingsinstellingen.

Vooral de laatste drie vormen nauwelijks privacy bezwaren en het uitschakelen van cookies met betrekking tot beveiliging en functionaliteit zou de werking van de website kunnen verstoren. Ik zie ook weinig reden om deze te blokkeren. Maar het is altijd mogelijk om wat met die keus te kunnen doen.

Wat belangrijk om te weten is dat Google Analytics niet alleen wordt gebruikt voor het verzamelen van puur analytische data, maar ook voor Google Ads en het verzamelen van gegevens voor remarketinglijsten en gepersonaliseerde advertenties. Deze cookies zijn dus niet uitsluitend voor analytics_storage. Veel functionaliteiten binnen Analytics werken niet correct als er geen toestemming is gegeven voor ad_storage. Dit omvat onder andere het verkeersrapport op basis van standaardkanaalgroepen, toewijzing aan marketingkanalen en conversietoewijzing.

Hoe werkt cookiebot in GTM

Cookiebot plaatst in eerste instantie een cookiebanner aan de voorkant van de website. Echter, achter de schermen maakt Cookiebot gebruik van de Consent API van Google, waarin de toestemmingsstatus wordt opgeslagen die ervoor zorgt dat Consent Mode functioneert.

Je moet echter rekening houden met de volgorde en timing van het afvuren van tags in GTM. Dit gebeurt namelijk asynchroon, zodat het de laadsnelheid van je website niet beïnvloedt. Als je bijvoorbeeld tags in GTM hebt die afvuren op basis van het event ‘Alle paginaweergaven’, zul je vaak merken dat de toestemming op dat moment nog niet is bijgewerkt en dat tags worden geblokkeerd. Echter, Cookiebot vuurt vervolgens het ‘cookie_consent_update’-event af.

Ik zal het nog een keer benadrukken. Let op de volgorde van de tags.

Afbeelding 2. Google Tag Manager consent initialisatie

Een veelvoorkomend probleem is dat de configuratietag van GA4 bijvoorbeeld wordt geblokkeerd, of dat het ‘page_view’-event wordt afgevuurd terwijl consent mode pas een paar miliseconden later de consent state update. In dat geval zal GTM data zonder cookie-informatie versturen naar Analytics, waardoor Analytics niet weet wie de klik heeft gegenereerd. Als er vervolgens andere gebeurtenissen worden afgevuurd voordat er een ‘page_view’-event plaatsvindt, zal dit resulteren in ‘Unassigned’-verkeer in
GA4.

Bij advertenties zoals FB Ads zal het missen van het page_view
event ertoe resulteren dat conversies niet toegewezen worden aan de campagnes.

Hoe richten we GTM in zodat de tags werken met cookiebot

Er zijn de volgende situaties:

  • Pagina laadt en bezoeker heeft nog geen consent gegeven
  • Bezoeker klikt op de cookiebanner en maakt een keus
  • Bezoeker komt op de volgende pagina en er is reeds een keus gemaakt

Consent mode heeft tevens twee mogelijkheden. De basis en de geavanceerde implementatie. De verschillen hebben alleen invloed op Google Tags. De verschillen tussen de twee zijn dat we bij de basis implementatie pas tags afvuren als er toestemming is en bij de geavanceerde sturen we altijd data naar Google maar dan met cookieless informatie.  

Ik zal in dit artikel de basis implementatie uitleggen. Voor meer details over de geavanceerde implementatie lees meer over de geavanceerde implementatie van Consent Mode of in de documentatie van Google hoe ze omgaan met data modelering voor Google Ads van bezoekers die geen toestemming hebben gegeven.

Event tags

Er zijn twee soorten tags

  • Tags die afvuren bij het laden van de pagina
  • Tags die afvuren bij bepaalde gebeurtenissen die niet resulteren in een nieuwe pagina

Pagina weergave

We kunnen tags die worden geactiveerd bij het laden van een pagina (zoals ‘alle paginaweergaven’) koppelen aan het ‘cookie_consent_update’-event door eerst naar Triggers te gaan en daar een trigger van het type ‘event’ aan te maken. Vervolgens vullen we ‘cookie_consent_update’ in als de naam van deze trigger. Deze triggers kunnen we dan gebruiken in plaats van de trigger voor ‘alle paginaweergaven’. Voor tags die alleen op specifieke pagina’s moeten worden geactiveerd, maken we aparte tags die alleen op die pagina’s werken.

Vervolgens stel je onderaan in de tag de consent instellingen in. Ga hiervoor naar de geavanceerde instellingen en dan onderaan de optie voor Consent instellen. Hier vul je de vereiste toestemmingskeuze in voor Consent Mode. Als er geen toestemming is voor die specifieke tag, zal de tag niet worden geactiveerd.

Afbeelding 3. Consent instellingen in tags in Google Tag Manager

Gebeurtenissen

Voor tags die reageren op specifieke gebeurtenissen, zoals het klikken op knoppen, het toevoegen van items aan winkelwagentjes of het indienen van formulieren, vereist dit een iets andere aanpak. Aangezien deze gebeurtenissen pas plaatsvinden nadat de pagina al geladen is, is het voldoende om alleen de instellingen voor toestemming onderaan in de tag aan te passen. Hierdoor wordt ervoor gezorgd dat de tag alleen wordt geactiveerd als er toestemming is gegeven voor die specifieke gebeurtenis.

Sommige gebeurtenissen, zoals e-commerce-events zoals ‘view_item’, ‘begin_checkout’ en ‘purchase’, vinden plaats bij het laden van de pagina. Dit kan een uitdaging vormen omdat deze gebeurtenissen vaak eerder plaatsvinden dan dat Cookiebot het ‘cookie_consent_update’-event heeft afgevuurd, waar het ‘page_view’-event aan is gekoppeld. Dit zal resulteren in ‘unassigned’ verkeer in Google Analytics.

Hier zijn een aantal oplossingen voor, maar een van de eenvoudigste is het gebruik van de triggergroep. Een triggergroep in GTM vuurt af wanneer een vooraf ingesteld aantal triggers is geactiveerd. De voorwaarde is dat je voor al die gebeurtenissen eerst een trigger hebt ingesteld. Met behulp van een triggergroep kun je ervoor zorgen dat tags pas worden geactiveerd nadat alle vereiste toestemmingsgebeurtenissen hebben plaatsgevonden.

Afbeelding 4. Triggergroup in Google Tag Manager

Ik kan dit het best uitleggen met een voorbeeld: Het ‘view_item’-event wordt gebruikt bij het tonen van productdetailpagina’s in webshops. Dit event komt in GTM binnen op het zelfde de pagina wordt geladen en zal dus voor het ‘cookie_consent_update’-event plaatsvinden wat voor unassigned verkeer gaat zorgen. We kunnen de trigger van deze tag veranderen van een ‘view_item’-event in een trigger group die afvuurt als zowel het ‘cookie_consent_update’ als het ‘view_item’-event zijn afgevuurd in GTM.

Daarna kun je deze trigger koppelen aan de bijbehorende tag en ook hier de toestemmingsinstellingen controleren. Zo waarborg je dat de tag alleen wordt afgevuurd als er toestemming is gegeven én het ‘view_item’-event heeft plaatsgevonden.

Valkuilen

De triggergroep-oplossing heeft echter enkele nadelen. Het wacht tot alle triggers in de groep zijn geactiveerd en vuurt dan slechts één keer een ‘gtm.triggerGroup’-event af. Dit gebeurt dus maar één keer per paginaweergave ook al wordt het initiële event meerdere keren per pagina afgevuurd.

Als voorbeeld: wat ik voorheen vaak deed bij webshops met ecommerce-tracking, was het maken van een tag met een trigger die meerdere gebeurtenissen in dezelfde tag combineerde. Hierbij liet ik dan dynamisch de gebeurtenisnaam {{Event}} invullen in de tag. Echter, met de overstap naar gtm.triggerGroup werkt dit niet meer zoals voorheen. Dit soort tags, waarin meerdere gebeurtenissen worden samengevoegd, zullen niet meer functioneren. Je zult nu aparte triggergroepen en verschillende tags moeten maken voor elke gebeurtenis, waarbij de gebeurtenisnaam afzonderlijk wordt ingevuld.

Hoewel er andere oplossingen zijn, is dit toch wel de meest eenvoudige aanpak die voorkomt dat tags niet afgevuurd worden als er wel toestemming is of wordt gegeven.

Referenties

About consent mode modeling – Google Ads Help. (z.d.). https://support.google.com/google-ads/answer/10548233?sjid=8091499308591729982-EU

Consent mode reference – Google Ads Help. (z.d.). https://support.google.com/google-ads/answer/13802165?sjid=8091499308591729982-EU

Google Consent Mode v2 instellen. (2024, 23 februari). https://carlokop.nl/blog/instellingen-voor-google-consent-mode