Google Consent Mode v2 et GTM
Principe : refus par défaut
Dès que le chargeur Agreely s'exécute, il installe Consent Mode v2 en refus par défaut de façon synchrone, avant que le module de la bannière soit téléchargé et avant que GTM charge la moindre balise :
// ce que le chargeur installe immédiatement (aucune action requise de votre part)
gtag('consent', 'default', {
ad_storage: 'denied',
analytics_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
functionality_storage: 'denied',
security_storage: 'granted',
});
Le signal security_storage: 'granted' couvre le témoin agreely_consent
lui-même, classé strictement nécessaire (art. 14 : le témoin de consentement
est nécessaire au fonctionnement du mécanisme).
Ordre de chargement
Le tag Agreely doit se trouver avant le tag GTM dans votre <head> :
<head>
<!-- 1. Agreely en premier - installe le refus par défaut -->
<script async
src="https://cdn.agreely.ca/e/v1/loader.js"
data-agreely="agr_pub_VOTRE_CLE"></script>
<!-- 2. GTM ensuite - Google Tag Manager -->
<script async src="https://www.googletagmanager.com/gtm.js?id=GTM-XXXXX"></script>
<!-- ... reste du head ... -->
</head>
Si GTM se charge avant Agreely, les balises s'exécutent sans signal de consentement et l'application du zéro-clic n'est pas garantie.
Correspondance des signaux
Lorsque le visiteur prend une décision, la bannière envoie le signal de mise à
jour gtag('consent', 'update', ...) avec la correspondance suivante :
| Catégorie Agreely | Signaux Consent Mode v2 mis à jour |
|---|---|
| Marketing | ad_storage, ad_user_data, ad_personalization |
| Analytique | analytics_storage |
| Fonctionnel | functionality_storage |
| Strictement nécessaire | (pas de signal - toujours accordé) |
Les catégories dont le visiteur n'a pas accordé l'autorisation restent à
denied jusqu'à une mise à jour. Un retrait du consentement repasse tous les
signaux à denied (sauf security_storage).
Mode Consent Mode sans GTM
Si vous utilisez gtag.js directement (sans GTM), le flux est identique :
Agreely installe le default, votre code amont peut appeler gtag('config', ...)
et l'événement agrConsent sur window vous signale chaque changement de
décision si vous en avez besoin :
window.addEventListener('agrConsent', (e) => {
console.log(e.detail); // { action, decisions, consentId }
});
Vérifier que le signal par défaut s'applique
Ouvrez votre navigateur en navigation privée (aucun témoin préexistant), accédez à votre site, et dans la console DevTools :
// avant toute interaction avec la bannière :
window.google_tag_data?.ics?.entries ?? 'pas encore chargé'
Tous les signaux non essentiels doivent être à denied. Si vous voyez
granted, le tag GTM se charge probablement avant le tag Agreely.