Naar de inhoud

Consent Mode v2 met server-side GTM

Consent Mode vertelt Google-tags waarmee de bezoeker heeft ingestemd, zodat ze kunnen aanpassen wat ze opslaan en versturen. Met server-side GTM reist de consentstatus met elke hit mee naar je servercontainer. Google-tags daar houden er zelf rekening mee, maar andere servertags, zoals de Meta Conversions API, niet. Deze les behandelt beide helften.

Gevorderd 11 min lezen

Wat je leert

  • De vier signalen van Consent Mode v2 uitleggen en het verschil tussen basic en advanced mode.
  • Een standaardstatus voor consent instellen voordat GTM laadt, en die bijwerken als de bezoeker akkoord gaat.
  • Begrijpen hoe de consentstatus met elke hit je servercontainer bereikt.
  • Voorkomen dat servertags van andere partijen vuren als consent is geweigerd.
  • De consentstatus controleren met Tag Assistant.

Voordat je begint

  • GA4 dat via je servercontainer loopt (les 4).
  • Een consentbanner (CMP) of een plan om er een toe te voegen.

01 De vier signalen van Consent Mode v2

Consent Mode v2 gebruikt vier signalen. Elk signaal is granted of denied.

  • ad_storage: cookies en opslag voor advertenties.
  • analytics_storage: cookies en opslag voor analytics, zoals de GA4-client-ID.
  • ad_user_data: of gebruikersdata voor advertenties naar Google mag worden gestuurd.
  • ad_personalization: of data mag worden gebruikt voor gepersonaliseerde advertenties, zoals remarketing.

De laatste twee zijn in v2 toegevoegd. Google vereist ze voor advertentiefuncties bij bezoekers uit de Europese Economische Ruimte (EER), het Verenigd Koninkrijk en Zwitserland.

Je kunt Consent Mode op twee manieren gebruiken:

  • Basic: Google-tags laden helemaal niet tot de bezoeker een keuze maakt. Voordat er consent is, wordt niets verstuurd.
  • Advanced: Google-tags laden meteen met de standaardwaarde (meestal denied). Zolang consent is geweigerd, sturen ze cookieloze pings zonder identifiers, die Google gebruikt voor modellering. Na consent werken ze normaal.

02 Stel de standaard in en werk hem bij

De standaardstatus moet zijn ingesteld voordat er een tag draait. Stel je hem in code in, zet hem dan boven de GTM-snippet.

js
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',
  wait_for_update: 500
});

wait_for_update laat Google-tags maximaal zoveel milliseconden wachten op een consentupdate voordat ze data versturen. Zo kan een banner die asynchroon laadt eerst een opgeslagen keuze doorgeven. Gaat de bezoeker akkoord, dan stuurt de banner een update:

js
gtag('consent', 'update', {
  ad_storage: 'granted',
  ad_user_data: 'granted',
  ad_personalization: 'granted',
  analytics_storage: 'granted'
});

In de praktijk schrijf je deze code zelden zelf. De meeste consentplatforms (CMP's) hebben een template in de Community Template Gallery die de standaard en de update voor je instelt.

  1. 1 Ga in de webcontainer naar Tags, klik op New en kies Tag Configuration. Klik op Discover more tag types in the Community Template Gallery en zoek je CMP.
  2. 2 Stel de standaardstatus in de template in, meestal denied voor alle vier de signalen.
  3. 3 Zet de trigger op Consent Initialization - All Pages, zodat de tag voor elke andere tag draait.
  4. 4 Publiceer en test de banner in Preview.

03 Hoe consent de servercontainer bereikt

Google-tags in de webcontainer voegen de consentstatus toe aan elke hit die ze versturen. De parameter gcs bevat ad_storage en analytics_storage, en gcd bevat alle vier de signalen, inclusief hoe ze zijn ingesteld. Omdat de hit naar k7q2x.example.com gaat, komt de status samen met de hit aan bij je servercontainer.

De client GA4 leest die parameters en geeft ze door in de event data. Google-tags in de servercontainer (de GA4-tag, Google Ads-conversietracking) respecteren ze automatisch: is consent in advanced mode geweigerd, dan sturen ze een cookieloze ping door en zetten of lezen ze geen identifiers.

04 Beveilig servertags van andere partijen

Veel tags van leveranciers in de servercontainer, waaronder de eigen Conversions API Tag van Meta en tags voor TikTok of LinkedIn, controleren de consentparameters van Google niet. Ze vuren zodra hun trigger matcht, ook als de bezoeker nee heeft gezegd. Sommige templates hebben een optionele consentinstelling, maar die staat standaard uit. Voeg de consentcheck zelf aan de trigger toe, tenzij je die instelling hebt aangezet.

  1. 1 Ga in de servercontainer naar Variables en maak een nieuwe Event Data-variabele met het key path x-ga-gcs. Die bevat de gcs-waarde, bijvoorbeeld G111.
  2. 2 Lees hem als G1, dan een cijfer voor ad_storage en een voor analytics_storage, waarbij 1 granted is en 0 denied. G111 betekent beide gegeven, G100 beide geweigerd.
  3. 3 Open de trigger van de tag van de leverancier en voeg een voorwaarde toe, bijvoorbeeld de variabele matches RegEx ^G11 voor tags die ad_storage nodig hebben.
  4. 4 Test een keer met consent geweigerd en een keer met consent gegeven. De tag mag alleen in het tweede geval vuren.

Heb je ad_user_data of ad_personalization nodig, dan is het eenvoudiger om de consentstatus zelf te sturen: voeg een eventparameter zoals marketing_consent met de waarde granted of denied toe aan de GA4-eventtag in de webcontainer, lees hem in de servercontainer uit met een Event Data-variabele en gebruik hem in de trigger.

05 Controleer de consentstatus

  1. 1 Open de webcontainer in Preview in een nieuw privévenster, zodat er geen eerdere keuze is opgeslagen.
  2. 2 Selecteer in Tag Assistant het vroegste Consent-event in de Summary en open het tabblad Consent. On-page Default hoort denied te tonen voor de vier signalen (of je regionale standaardwaarden).
  3. 3 Accepteer de banner, selecteer het meest recente Consent-event en controleer of On-page Update granted toont.
  4. 4 Open in de server-Preview een verzoek van vóór en een van na het akkoord van de bezoeker en vergelijk x-ga-gcs in Event Data.
  • De standaard is ingesteld voordat er een tag vuurt.
  • Alle vier de v2-signalen zijn ingesteld in de standaard en in de update.
  • De servercontainer ontvangt de nieuwe consentstatus nadat de bezoeker akkoord is gegaan.
  • Servertags van andere partijen vuren alleen met consent.

Veelgestelde vragen

Moet ik basic of advanced Consent Mode gebruiken?

Beide modi ondersteunen conversiemodellering. Basic mode gebruikt een algemeen model. Advanced mode stuurt ook cookieloze pings, zodat Google een gedetailleerder model kan bouwen dat specifiek is voor je site. Welke je mag gebruiken, hangt af van je juridische beoordeling, niet van de servercontainer.

Kan ik met server-side GTM de consentbanner overslaan?

Nee. Tags naar een server verplaatsen verandert waar de data wordt verwerkt, niet of je consent nodig hebt om die te verzamelen. Dezelfde consentregels gelden.

Waarom ontvangt de servercontainer nog hits als consent is geweigerd?

In advanced mode blijven Google-tags cookieloze pings sturen zolang consent is geweigerd. De servercontainer ontvangt ze met de status denied, en de Google-tags daar sturen ze door zonder identifiers.

Klaar om het in de praktijk te brengen?

Rol in een paar minuten een GTM-servercontainer uit op je eigen domein. Voor het Gratis-abonnement heb je geen creditcard nodig.

Gratis account aanmaken