Beaucoup d’équipes attendent de leur CMP (Axeptio, Didomi, OneTrust, Cookiebot…) qu’elle pousse un « dataLayer de consentement » unique que tous les tag managers comprendraient. Cet objet n’existe pas. Chaque bibliothèque d’analytics ou de publicité lit le consentement par sa propre API, et certaines savent aussi lire directement la chaîne IAB TCF. La bonne question n’est pas « mon tag manager lit-il le TCF ? » mais « que lit chaque tag, et qui le renseigne ? ».
1. Ce que fait une CMP
Une CMP affiche le bandeau, enregistre le choix du visiteur et l’expose. Selon la CMP et ses réglages, elle l’expose par :
- l’API IAB TCF (
__tcfapi) et sa chaîne TC ; - sa propre API JavaScript et ses événements ;
- des appels directs aux API de consentement des éditeurs, par exemple le consent mode de Google, souvent via un template de Tag Manager.
Le TCF est une manière standardisée d’enregistrer et de partager des choix de consentement. L’utiliser ne rend pas un site conforme au RGPD à lui seul.
2. Tags Google : consent mode, ou TCF
Consent mode. La page définit une valeur par défaut avant qu’un tag Google n’envoie quoi que ce soit, puis la CMP la met à jour quand le visiteur choisit. Google le dit ainsi : « The order of the code here is vital. If your consent code is called out of order, consent defaults won’t work. »
// 1. Before any measurement command, on every page
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
// 2. When the visitor makes a choice (usually done by the CMP)
gtag('consent', 'update', {
'ad_storage': 'granted',
'ad_user_data': 'granted',
'ad_personalization': 'granted',
'analytics_storage': 'granted'
});
Une valeur par défaut « denied » est le montage voulu, pas une erreur. ad_user_data et ad_personalization ont été ajoutés avec le consent mode v2. Dans Google Tag Manager, Google recommande de laisser une CMP gérer les mises à jour ; beaucoup de CMP publient un Community Template qui renseigne à la fois la valeur par défaut et la mise à jour.
TCF. Les tags Google savent aussi lire nativement la chaîne TC. On l’active avec window['gtag_enable_tcf_support'] = true sur le site, ou avec enableAdvertiserConsentMode: true dans le TCData de la CMP. Le tag Google traduit alors les finalités TCF en consent mode :
| Finalité TCF refusée | Effet |
|---|---|
| Finalité 1 | ad_storage et ad_user_data refusés |
| Finalité 3 ou 4 | ad_personalization refusé |
| Finalité 7 | ad_user_data refusé |
| Finalité 9 ou 10 | Google signals désactivés dans GA4 (web) |
Si la CMP ne répond pas en 500 millisecondes, le tag applique les réglages de consentement par défaut.
3. Adobe : deux chemins selon la bibliothèque
AppMeasurement historique et ECID : l’Opt-In Service. Les catégories sont figées :
adobe.OptInCategories = {
"AAM": "aam",
"ANALYTICS": "aa",
"ECID": "ecid",
"TARGET": "target"
}
adobe.optIn.approve(['aa', 'ecid']);
adobe.optIn.deny(['target']);
Attention : la catégorie analytics s’appelle aa, pas analytics. Si vous passez shouldWaitForComplete = true, rien n’est appliqué tant que vous n’appelez pas adobe.optIn.complete().
Web SDK (alloy) : setConsent. Il accepte le standard propre d’Adobe (1.0 ou 2.0) ou une chaîne IAB TCF :
alloy("setConsent", {
consent: [{
"standard": "IAB TCF",
"version": "2.0",
"value": tcString, // from __tcfapi
"gdprApplies": true
}]
});
// or, with Adobe's standard 1.0
alloy("setConsent", {
consent: [{ "standard": "Adobe", "version": "1.0", "value": { "general": "in" } }]
});
Le tag manager lui-même est Adobe Experience Platform Tags (anciennement Launch). Il déploie l’une ou l’autre bibliothèque ; le chemin de consentement dépend de celle que vous utilisez.
4. Matomo : une API, deux modes
Le guide de consentement de Matomo documente sa propre API _paq. Choisissez un mode et utilisez les appels qui lui correspondent :
| Mode | Avant consentement | Donner / mémoriser | Retirer |
|---|---|---|---|
requireConsent | Aucune requête de tracking, aucun cookie | rememberConsentGiven | forgetConsentGiven |
requireCookieConsent | Requêtes envoyées, aucun cookie | rememberCookieConsentGiven | forgetCookieConsentGiven |
5. Récapitulatif
| Bibliothèque | Lit la chaîne TC ? | API de consentement |
|---|---|---|
| Tag Google (GA4, Ads, Floodlight) | Oui, une fois le support TCF activé | gtag('consent', 'default' / 'update', …) |
| Adobe AppMeasurement + ECID | Non | adobe.optIn.approve / deny (aa, ecid, target, aam) |
| Adobe Web SDK | Oui, transmise à setConsent | alloy("setConsent", …) |
| Matomo | Pas dans son guide de consentement | Appels de consentement _paq |
6. Quand il faut un script de mapping
Si votre CMP renseigne déjà le consent mode de Google (ou si vous avez activé le support TCF) et que vous utilisez le Web SDK d’Adobe avec la chaîne TC, il y a peut-être peu de choses à mapper. Pour l’Adobe historique et pour Matomo, il faut en général un petit script qui écoute la CMP et appelle la bonne API :
// cmpConsent: whatever your CMP exposes (callback, event, TCF purposes...)
function applyConsent(cmpConsent) {
if (cmpConsent.analytics) {
adobe.optIn.approve(['aa', 'ecid']);
_paq.push(['rememberConsentGiven']);
} else {
adobe.optIn.deny(['aa', 'ecid']);
_paq.push(['forgetConsentGiven']);
}
}
Vérifiez toujours ce que votre CMP envoie réellement, dans Tag Assistant pour Google et dans la console du navigateur pour les autres, avant d’écrire le moindre mapping.
7. Erreurs courantes
- Pas de consent default, ou un default posé après le tag Google. Les tags Google ne peuvent pas appliquer correctement le consentement.
- Croire que tous les tags lisent le même signal. Un template de CMP qui renseigne le consent mode Google ne fait rien pour l’Opt-In d’Adobe ni pour Matomo.
- Mauvais noms de catégories Adobe.
analyticsn’est pas une catégorie Opt-In valide ; utilisezaa. - Mélanger les modes Matomo.
requireConsentavecrememberCookieConsentGivenne fait pas ce que l’on croit. - Oublier le retrait du consentement. Google : mise à jour vers denied. Adobe Opt-In :
deny. Matomo :forgetConsentGivenouforgetCookieConsentGiven.
Sources
- Google : configurer le consent mode
- Google : support TCF dans les tags Google
- Adobe : API Opt-In Service
- Adobe Web SDK : setConsent
- Adobe : Launch devient Tags
- Matomo : consentement au tracking
Pour aller plus loin, lisez la version complète de l’article (en anglais) : Consent Signals by Tag Manager: What Google, Adobe and Matomo Actually Read.
Besoin d’aide sur ce sujet ? Consent Mode v2 et CMP.