Hoe stel je een cookiebanner in via Google Tag Manager in combinatie met Server-Side Tagging?

Tobias Pennings
Aug 2, 2024

Online privacy is een hot topic. Met Google Consent Mode v2 en de AVG-regelgeving beginnen steeds meer sites over te stappen op een functionerende cookiebanner. Sites moeten transparant zijn over hun dataverzameling en ervoor zorgen dat ze voldoen aan de geldende privacywetgeving. Daarvoor gebruik je als site een Consent Management Platform (CMP). Maar een functionerende cookiebanner kan ook zorgen voor complicaties met je tracking setup. Er zijn nu extra onderdelen die roet in het eten kunnen gooien voor je tracking setup, zo ook voor je Server-Side Tagging setup. In dit blogartikel duiken we dieper in op de theorie achter het instellen van een CMP via Google Tag Manager (GTM) in combinatie met Server Side Tagging.

Consent Management Platform

Waarom heb je een Consent Management Platform nodig?

Een CMP stelt gebruikers in staat om controle te houden over hun persoonlijke gegevens. Door middel van een cookiebanner kunnen gebruikers hun voorkeuren aangeven voor verschillende soorten cookies, zoals analytische, functionele en marketingcookies. Dit is niet alleen belangrijk voor transparantie, maar ook voor het voldoen aan wet- en regelgeving zoals de AVG (Algemene Verordening Gegevensbescherming).

Hoe stel je een cookiebanner in?

Een cookiebanner is hetgeen wat een bezoeker op een website te zien krijgt. Het is een eenvoudige tool die de websitebezoekers informeert over het gebruik van cookies en hen vraagt om ze bepaalde cookies willen accepteren. Een cookiebanner is technisch gezien de frontend van je CMP. Een bezoeker moet via de cookiebanner cookies kunnen weigeren. Daarnaast moet de bezoeker de keuze krijgen tussen verschillende cookie-categorieën zoals marketingcookies, analytische cookies en functionele cookies. Uitleg over de wettelijke eisen vind je bij de Autoriteit Consument en Markt (ACM).

Daarnaast is er één belangrijk aspect van de cookiebanner die vaak over het hoofd wordt gezien omdat dit gedeelte geen vereiste is. Cookiebanners zijn vaak te makkelijk te negeren. Bezoekers kunnen alle functies van de site gebruiken en kunnen op verschillende pagina's browsen terwijl ze hun toestemming dus nog niet gegeven hebben. Je tracking setup wordt tegengehouden totdat deze toestemming gegeven is, dus het is van groot belang dat iemand deze toestemming op de eerste pagina van de eerste sessie geeft zodat de UTM-parameters en de referrer onder andere afgelezen kunnen worden.

Verschil tussen een negeerbare en onnegeerbare cookiebanner

Let wel op dat je bij het aanpassen van je cookiebanner geen nudging gebruikt. Nudging is het beïnvloeden van de keuzemogelijkheid. Het veranderen van de omgeving van de keuzemogelijkheid om onbewust je sitebezoekers richting een (voor jouw gewenste) uitkomst te geleiden is niet geoorloofd. Wanneer je de 'alle cookies accepteren' knop felgroen maakt en de 'alle cookies accepteren' vrijwel dezelfde kleur geeft als de achtergrond en ook de tekst vrijwel onleesbaar maakt, doe je aan nudging. Zie hieronder een voorbeeld van een cookiebanner die aan nudging doet. Ziet jouw cookiebanner er op deze manier uit, dan wordt het tijd om na te denken over een nieuwe opmaak.

Cookiebanner die aan nudging doet

Lees het volgende artikel van de Autoriteit Persoonsgegevens over de opmaak van je cookiebanner.

De rol van Google Tag Manager

Een tag management systeem is tegenwoordig een onmisbare tool als je nauwkeurig je site-bezoekers wilt tracken via Server-Side Tagging. Met een tag management systeem zoals Google Tag Manager ben je zelf verantwoordelijk voor het beheren van je tags en scripts zonder onderdelen aan de sitecode aan te hoeven passen of kennis van HTML te hebben. Dit vereenvoudigt het doorvoeren van veranderingen en zorgt voor een betere organisatie en controle van je tracking setup.

In de context van een Consent Management Platform speelt Google Tag Manager een cruciale rol. Via GTM beheer je je tracking setup en zal je zelf in moeten stellen wat er wel en niet van je tracking setup geactiveerd mag worden op basis van de toestemming van je bezoekers. Als een sitebezoeker marketingcookies weigert maar wel analytische cookies toestaat, mag je dus wel de tags laten activeren voor analytische platformen zoals Hotjar of Google Analytics 4 maar niet voor marketing platformen zoals Meta Ads of LinkedIn Ads. Het instellen van deze instellingen, de consent overview instellingen binnen Google Tag Manager, is simpel, maar het correct blijven meten van je bezoekers met deze nieuwe consent instellingen is een moeilijkere puzzel.

Voor sommige CMP's is het mogelijk om deze in te laden vanuit Google Tag Manager. Dit is mogelijk onder andere voor Cookiebot en Cookiecode. In Google Tag Manager is er namelijk één pageload-trigger specifiek bedoelt voor het inladen van een CMP en cookiebanner. Dat is de 'Consent Initialization' / 'Initisaliseren van toestemming geven' trigger. Deze stap in het laden is de allereerste stap van iedere pagina en is specifiek gereserveerd om een CMP of cookiebanner in te laden zodat er nog geen enkele andere tag afgevuurd kan worden zo lang er geen toestemming door een bezoeker gegeven is.

De vijf verschillende pageload triggers

Welke stappen worden er gezet bij een pageload?

1. Initialiseren van toestemming geven -> om een CMP in te laden

2. Initialisatie -> voordat de pagina begint met laden

3. Paginaweergave -> wanneer de browser begint met het laden van de pagina

4. DOM klaar -> wanneer de HTML klaar is met laden

5. Venster geladen -> wanneer alle scripts en afbeeldingen geladen zijn

GTM Consent Overview instellingen

Wanneer je je CMP in laat laden op de allereerste stap van een pagina die geladen wordt, zal je dus in moeten stellen dat alle andere tags (gedeeltelijk) tegengehouden moeten worden zo lang er nog geen consent gegeven is. Dit doe je binnen Google Tag Manager gemakkelijk met de Consent Overview instellingen (Toestemmingsoverzicht in het Nederlands).

Via deze instellingen kan je per verschillende tag aangeven welke gegeven consent er nodig is van de bezoeker om die tag af te laten vuren. De verschillende consent types waarop je dit aan kan geven zijn:

- ad_storage

- analytics_storage

- functionality_storage

- personalization_storage

- security_storage

Naast bovenstaande additionele consent die een tag nodig heeft om af te kunnen vuren, maakt Google Tag Manager ook gebruik van Built-In Consent Checks. Die staan standaard voor alle Google tags ingesteld zoals de Google Tag, GA4 Event Tags, Conversion Linker, Google Ads Conversion Tracking Tags. Deze ingebouwde toestemmingscontroles houden in dat de tags van Google toestemmingsbewust zijn. Deze tags hebben ingebouwde controles voor analytics_storage, ad_storage, ad_user_data en ad_personalization.

Built-In Consent Checks

Volg deze stappen om de Consent Overview instellingen toe te passen in jouw Google Tag Manager web container.

Waarom je unassigned traffic in GA4 stijgt na het instellen van de Consent Overview instellingen

Wanneer iemand voor de eerste keer ooit op je site terecht komt, heeft diegene nog geen consent gegeven. Onder andere de Google Tag en de page_view event tags zullen naar alle waarschijnlijkheid al geactiveerd worden op het moment dat de pagina laadt. Omdat er nog geen consent op die eerste pagina gegeven is, worden deze tags niet (volledig) geactiveerd. In onderstaande visualisatie kan je zien waarom het unassigned stijgt wanneer je een cookiebanner ingesteld hebt, maar de triggers niet allemaal hierop aangepast hebt. De referrer en de UTM-parameters van de eerste pagina worden namelijk niet geregistreerd, en op de tweede pagina ben je die informatie kwijt.

Bezoekers worden als twee bezoekers gezien door je tracking setup als je je triggers niet op basis van de consent update aanpast

Dankzij de Built-In Consent Checks kan Google voor hun eigen Google Tag en GA4 event tags, zoals de page_view gebeurtenis, wel een cookieloze ping naar Google Analytics 4 sturen. Deze cookieloze pings zijn een geanonimiseerde en niet-identificeerbare Google Analytics-gebeurtenis. Cookieloze pings, als onderdeel van reguliere HTTP/browsercommunicatie, kunnen alleen de volgende bezoeker-identificerende informatie bevatten: user-agent, schermresolutie, IP-adres. Hierdoor kan GA4 via hun gedragsmodulering alsnog een goede schatting maken hoeveel gebruikers er op je site geweest zijn, welke stappen ze uitgevoerd hebben en waar al je bezoekers waarschijnlijk vandaan gekomen zijn.

Maar als je zekerheid wilt over je bezoekers en waar ze vandaan komen, zal je ervoor moeten zorgen dat de Google Tag en de GA4 page_view gebeurtenistag op die eerste pagina van de eerste sessie afgevuurd worden nadat de toestemming van de bezoeker gegeven is.

Je triggers aanpassen op basis van de consent interactie

Er zijn twee manieren om je triggers in je tracking setup aan te passen op basis van de consent interactie (het accepteren of weigeren van de cookies via de cookiebanner). Dit verschilt per cookiebanner en Consent Management Platform. Hieronder zullen er twee verschillende manieren uitgelegd worden hoe je dit op kan lossen.

- Alle tags pas afvuren na de consent update op iedere pagina

- Alle benodigde tags na de cookiebanner interactie nogmaals afvuren

Triggers instellen op consent_update

Bij het CMP Cookiebot vind er op iedere pagina een DataLayer event plaats genaamd "cookie_consent_update", ook op de eerste pagina van de eerste sessie pas na het aangeven van de consent door de bezoeker. Dus als je alle triggers zou laten wachten tot dit DataLayer event of tot na dit DataLayer event, zou je altijd de benodigde user- en marketinginfo op kunnen halen en door mogen sturen mits de cookies geaccepteerd worden.

Volg deze stappen om je triggers binnen de GTM web container in te stellen voor Cookiebot:

1. Maak een Custom Event trigger aan met de naam cookie_consent_update.

2. Vervang de triggers van alle tags die op iedere pageload plaats moeten vinden met deze trigger. Dat zijn de tags zoals de Google Tag, de page_view event tag en de Conversion Linker.

2a. Zorg ervoor dat de Google Tag prioriteit heeft ten opzichte van alle andere tags. Dat doe je door in de tag configuratie onder 'more settings' de Tag Firing Priority op 1000 te zetten.

3. Vervang de triggers van alle tags die ook tijdens een pageload plaats kunnen vinden, bijvoorbeeld alle triggers op basis van bedankpagina's of op basis van DataLayer events zoals view_item of purchase.

3a. Voor bedankpagina's kan je de trigger configuratie aanpassen naar de DataLayer event 'cookie_consent_update' op een specifieke Page URL.

3b. Voor andere DataLayer events kan je een Trigger Group gebruiken. In een Trigger Group kan je twee verschillende triggers toevoegen zodat de trigger pas geactiveerd kan worden als beide triggers plaatsgevonden hebben.

Extra trigger aanmaken op cookiebanner interactie

Bij een aantal CMPs zoals Cookiecode vind er na de cookiebanner interactie eenmalig een DataLayer event plaats. Dus je zou aan alle tags die op een standaard pageload triggeren een extra trigger toe kunnen voegen zodat deze tags alleen op de eerste pagina van de eerste sessie twee keer geactiveerd worden.

Volg deze stappen om je triggers binnen de GTM web container in te stellen voor Cookiecode:

1. Maak een nieuwe trigger aan voor een Custom Event. Geef deze de volgende naam: "cookiecode.consent_all|cookiecode.consent_update". Zorg ervoor dat je 'Use regex matching' aan hebt staan.

2. Zorg er voor dat onderstaande opties aangevinkt zijn binnen je Cookiecode tag.

3. Voeg deze nieuwe consent update trigger toe aan de Google Tag, page_view event tags en alle andere tags die op een pageload triggeren.

3a. Zorg ervoor dat deze tags die je een extra trigger geeft niet op 'once per page' ingesteld staan, maar op 'once per event'.

3b. Geef je Google Tag de Tag firing priority van 1000.

Checken hoe je voor je eigen cookiebanner dit instelt

Bij alle andere CMPs zal je zelf moeten checken hoe je je triggers in zal moeten stellen zodat de bezoekers op de eerste pagina van de eerste sessie goed getrackt worden. Alleen hoe kom je erachter hoe je deze triggers in moet stellen en aan moet passen?

Custom Cookiebanner waarbij er iedere pagina een DataLayer event plaatsvind

1. Open je site in de GTM preview mode en zorg ervoor dat je je cookies verwijdert.

2. Accepteer alle cookies en check in GTM wat er allemaal gebeurt nadat je dit gedaan hebt

2a. Zo zou je het volgende kunnen zien:

3. In deze situatie van zou je dus deze trigger in kunnen stellen:

Custom Cookiebanner waarbij je een extra trigger op basis van de cookiebanner interactie toevoegt

1. Open je site in de GTM preview mode en zorg ervoor dat je je cookies verwijdert.

2. Accepteer alle cookies en check in GTM wat er allemaal gebeurt nadat je dit gedaan hebt

2a. Zo zou je het volgende kunnen zien:

3. In deze situatie zou je de volgende trigger aan alle tags op pageload triggers toe kunnen voegen:

Deze trigger group bestaat uit de volgende 2 triggers:

Er wordt gebruik gemaakt van een trigger group om er zeker van te zijn dat deze trigger nooit plaats kan vinden op basis van een DataLayer event zonder dat er ook op die pagina geklikt is op de cookiebanner button.

Conclusie

Het instellen van een CMP in combinatie met Google Tag Manager en Server-Side Tagging kan een uitdagende taak zijn, maar het is essentieel voor het waarborgen van de privacy van je bezoekers en het verzamelen van data over de oorsprong van jouw sitebezoekers. Als je merkt dat je op dit punt vastloopt of gewoon er zeker van wilt zijn dat alles correct is ingesteld, aarzel dan niet om contact met ons op te nemen. Wij zijn het makkelijkste bereikbaar via support@adpage.io.