Naar de hoofdinhoud

Google Analytics 4 en CMP: stuur gebruikers­toestemming naar de webwinkel widget

De webwinkel widget (Umbrella Widget) maakt het mogelijk om tracking uit te voeren met Google Analytics 4.

Meer dan 2 maanden geleden bijgewerkt

Om te voldoen aan de Europese privacywetgeving is het essentieel om toestemming van de gebruiker te verkrijgen.

We bieden een eenvoudige manier om de reeds verzamelde toestemmingen op je website door te geven, zodat je je huidige Consent Management Provider (CMP) naadloos kunt integreren.

Commando: sendConsent

Het commando sendConsent wordt gebruikt om de toestemmingsgegevens van de gebruiker vanuit je cookiebanner naar de webwinkel widget te sturen.

Dit commando moet worden aangeroepen zodra de gebruiker zijn toestemming heeft gegeven of geweigerd.

Het accepteert verschillende opties (argumenten) die de verschillende typen toestemming specificeren.

Argumenten

Het sendConsent-commando accepteert de volgende (optionele) argumenten:

ad_storage? : ConsentString;
ad_user_data? : ConsentString;
ad_personalization? : ConsentString;
analytics_storage? : ConsentString;

ConsentString Type

De ConsentString-type geeft de toestemmingsstatus van de gebruiker weer en heeft de volgende waarden:

granted – toestemming verleend
denied – toestemming geweigerd

Standaard staat elke toestemmingsoptie op denied.


Implementatie

Algemene implementatie

Hieronder staat een algemeen voorbeeld van hoe je het sendConsent-commando kunt implementeren met een aangepaste functie die de gebruikers­toestemming doorstuurt.

// Function to send user consent to the UW
function sendUserConsent(consentData) {
// Call the BNDL method with the sendConsent command and user consent
status
DatHuis('sendConsent', consentData);
}

// Example of calling the function with custom consent data
const consentData = {
ad_storage: 'granted',
ad_user_data: 'denied',
ad_personalization: 'granted',
analytics_storage: 'granted'
};

sendUserConsent(consentData);

Voorbeeld met Cookiebot

Als je Cookiebot (of een andere Consent Management Platform) gebruikt, kun je het sendConsent-commando binnen je systeem gebruiken om de toestemmingsstatus door te geven.

Het proces is als volgt:

  1. Laad eerst de Cookiebot-script (of je CMP).

  2. Laad daarna de BNDL Umbrella Widget-script.

  3. Plaats vervolgens een script dat de toestemmingsstatus doorstuurt naar de widget.

  4. Daarin wordt de toestemmingsstatus bepaald door wat de gebruiker heeft toegestaan in Cookiebot.

    Bijvoorbeeld:

    Marketing = ad_storage, ad_user_data, ad_personalization
    Statistieken = analytics_storage

  5. Het script controleert of de dhuw (webwinkel widget) geladen is en stuurt dan de toestemmingsstatus door met het commando sendConsent.

  6. Daarnaast worden er twee gebeurtenissen opgevangen:

    CookiebotOnAccept: om toestemming door te sturen wanneer de gebruiker akkoord gaat.

    CookiebotOnDecline: om de toestemmingsstatus op “geweigerd” te zetten wanneer de gebruiker weigert.

  7. Als Cookiebot al een antwoord heeft (de gebruiker heeft eerder een keuze gemaakt), wordt de toestemmingsstatus direct doorgestuurd.

Hier volgt een voorbeeld van hoe je het sendConsent-commando kunt implementeren binnen je systeem,met behulp van de Cookiebot-banner (of een andere tool die je gebruikt om toestemming van gebruikers te verkrijgen):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Consent HTML Example</title>
</head>
<body>
<!-- Cookiebot (other CMP) goes first -->
<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" datacbid="
your-id" type="text/javascript"></script>
<!-- BNDL Umbrella Widget scrip -->
<script>
(function(d,a,t,h,u,i,s){d["DatHuisObject"]=u;d[u]=d[u]||function()
{(d[u].q=d[u].q||[]).push(arguments)};d[u].l=1*new
Date;se=a.createElement(t);fs=a.getElementsByTagName(t)
[0];se["async"]=1;se.src=h;fs.parentNode.insertBefore(se,fs)})
(window,document,"script","https://btstrp.dathuis.nl/assets/widget.js","dhuw
");
dhuw('init', { accountId: 'your-account-id' });
</script>
<!-- Send consent script always goes after the CMP script -->
<script type="text/javascript">
console.info('sendUserConsent loaded');

function sendUserConsent() {
// Define a mapping from Cookiebot
var userConsent = {
ad_storage: Cookiebot.consent.marketing ? 'granted' : 'denied',
ad_user_data: Cookiebot.consent.marketing ? 'granted' :
'denied',
ad_personalization: Cookiebot.consent.marketing ? 'granted' :
'denied',
analytics_storage: Cookiebot.consent.statistics ? 'granted' :
'denied'
};
if (typeof dhuw !== 'undefined') {
// Call the BNDL `dhuw` method with the sendConsent command
and user consent status
dhuw('sendConsent', userConsent);
}
}

// Add event listener for when Cookiebot consent is updated
window.addEventListener('CookiebotOnAccept', sendUserConsent);

function withdrawConsent() {
var withdrawnConsent = {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
analytics_storage: 'denied'
};
if (typeof dhuw !== 'undefined') {
dhuw('sendConsent', withdrawnConsent);
}
}

// Handle user withdrawing consent
window.addEventListener('CookiebotOnDecline', withdrawConsent);

// Send consent immediately if it has already been obtained
if (Cookiebot.hasResponse) {
sendUserConsent();
}
</script>
</body>
</html>

Implementatie via Google Tag Manager

Als je scripts via Google Tag Manager (GTM) invoegt:

Stap 1: Voeg het “Consent Listener”-script toe als een Custom HTML Tag.

Voeg nog geen triggers toe.

Het script:

<script type="text/javascript">
console.info('sendUserConsent loaded');

function sendUserConsent() {
// Define a mapping from Cookiebot
var userConsent = {
ad_storage: Cookiebot.consent.marketing ? 'granted' : 'denied',
ad_user_data: Cookiebot.consent.marketing ? 'granted' :
'denied',
ad_personalization: Cookiebot.consent.marketing ? 'granted' :
'denied',
analytics_storage: Cookiebot.consent.statistics ? 'granted' :
'denied'
};

if (typeof dhuw !== 'undefined') {
// Call the BNDL `dhuw` method with the sendConsent command
and user consent status
dhuw('sendConsent', userConsent);
}
}

// Add event listener for when Cookiebot consent is updated
window.addEventListener('CookiebotOnAccept', sendUserConsent);

function withdrawConsent() {
var withdrawnConsent = {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
analytics_storage: 'denied'
};

if (typeof dhuw !== 'undefined') {
dhuw('sendConsent', withdrawnConsent);
}
}

// Handle user withdrawing consent
window.addEventListener('CookiebotOnDecline', withdrawConsent);

// Send consent immediately if it has already been obtained
if (Cookiebot.hasResponse) {
sendUserConsent();
}
</script>

Voeg nog geen triggers toe.

Stap 2: Stel in de cookiebot tag in dat het script pas wordt geactiveerd nadat de Cookiebot-tag is geladen (via Geavanceerde instellingen → Tagreeks).

Standaardwaarden

Als er geen toestemmingsstatus is opgegeven voor een bepaalde optie, wordt deze standaard ingesteld op denied.

Het is belangrijk om de toestemmingsstatus expliciet te specificeren voor elke optie, om te voldoen aan de voorkeuren van de gebruiker.

Verwerking van toestemming in de webwinkel widget

Binnen de webwinkel widget worden de toestemmingsopties die via sendConsent worden doorgegeven, opgeslagen en doorgestuurd naar de opgegeven Google Analytics 4 ID.

Als er geen toestemmingsgegevens worden doorgegeven, blijven alle opties standaard op denied staan.

Samenvatting

Door de functie sendUserConsent op je webpagina te integreren, kun je effectief de toestemmingsstatus van gebruikers vanuit je cookiebanner doorgeven aan de webwinkel widget.

Hiermee zorg je ervoor dat alle analyses en dataverwerking binnen de widget volledig voldoen aan de privacyvoorkeuren van de gebruiker.

Voor meer informatie over installatie en integratie van de Umbrella Widget kun je terecht bij:

Was dit een antwoord op uw vraag?