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 (sans async : doit s'exécuter de façon synchrone) -->
<script
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, et à chaque décision du visiteur, il pousse un
gtag('consent', 'update', ...) selon la correspondance ci-dessus. Votre code
amont peut appeler gtag('config', ...) comme d'habitude ; c'est la mise à jour
Consent Mode qui conditionne vos balises.
Réagir à un changement de consentement
Il n'y a aucun événement DOM personnalisé à écouter. La bannière ne diffuse
pas d'événement agrConsent (ni équivalent). Pour exécuter votre propre code
lorsque le consentement change, utilisez l'une de ces surfaces réelles :
- Google Consent Mode : le chargeur pousse
gtag('consent', 'update', ...)à chaque décision, de sorte que les balises conditionnées par Consent Mode réagissent automatiquement. - L'API
window.agreelyCookies: ses méthodes (open(),acceptAll(),refuseAll(),withdraw()) permettent de piloter la bannière, et vous pouvez lire la décision courante dans le témoinagreely_consentaprès un changement. - Le témoin
agreely_consent: relisez-le (côté client ou serveur) pour connaître la décision courante du visiteur, par catégorie.
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.