Comment implémenter le Google Consent Mode en conformité avec la CNIL ?

Dans cet article, vous comprendrez le consent mode de Google, et vous apprendrez à le paramétrer pour être en conformité avec la CNIL.

Comment implémenter le Google Consent Mode en conformité avec la CNIL ?
Photo by amirali mirhashemian / Unsplash

31 mars 2021, c'est la fin du "délai raisonnable" accordé par la CNIL pour mettre en conformité les sites web et applications mobiles avec les nouvelles règles en matière de cookies.
Si comme moi, vous avez implémenté une CMP (Consent Management Platform) vers la fin du délai réglementaire, alors vous avez probablement pu voir votre trafic diminuer de ~20 à 60% entre le mois de mars et le mois d'avril.

Utilisateurs suivis par Google Analytics
Farewell, dear tracked users 🤯 - Source Google Analytics GitGuardian

La RGPD et les consignes de la CNIL ont affecté les performances d'acquisition des annonceurs

La raison ? Les utilisateurs peuvent maintenant choisir leurs préférences de navigation, et donc choisir de ne pas être suivis par Google Analytics.

Mais qui dit moins d'utilisateurs suivis, dit par conséquent moins de conversions suivies.
Et si comme moi vous êtes amenés à acquérir du trafic via Google Ads, vous aurez alors moins de signaux d'optimisation pour les algorithmes de Google...
... donc moins de performances sur votre compte...
... donc moins de revenus publicitaires pour Google.

Baisse de performance liée à l'absence de tracking
Une part des utilisateurs refusant les cookies implique une baisse de performances média

La publicité représentant 98% des revenus d'Alphabet, Google va-t-il laisser faire de simples régulateurs européens voulant assurer la protection de la vie privée des utilisateurs ? Bien sûr que non !

Google introduit alors fin 2020 le Consent Mode, avec pour objectif de garantir la collecte de données importantes permettant de mesurer l’efficacité de vos campagnes publicitaires, même si vos utilisateurs n’ont pas donné leur consentement aux cookies.

Comment ? Le Consent Mode permet d'envoyer un ping de données à Google Ads, Google Analytics, ou Floodlight en communiquant le statut de l'utilisateur grâce à des variables qui sont envoyées via l'API gtag() :

  • ad_storage = 'denied' ou 'granted'
  • analytics_storage = 'denied' ou 'granted'

La vision à terme est d'améliorer la modélisation des conversions dans Google Ads. La modélisation étant un élément essentiel de l'offre de Google post-fin des cookies, initialement prévue en 2022 et repoussée à 2023.

Attention ! Le consent mode ne remplace absolument pas votre Consent Management Platform. Ces outils, nécessaires pour collecter les préférences utilisateurs en matière de cookie, sont complémentaires et vont plutôt être des déclencheurs pour modifier la valeur de ad_storage et d'analytics_storage. Il y a par exemple:

Paramètre de consentementComportement de la baliseImpact sur les rapports Google Analytics et sur les fonctionnalités
ad_storage = deniedLes cookies publicitaires ou 3rd party ne sont pas envoyés, mais les cookie analytics 1st party ne sont pas affectés❌ Google signals (remarketing, données demographiques...)
✅ L'export de conversion de GA vers Google Ads n'est pas affecté par ad_storage
analytics_storage = deniedDes pings sans cookies sont envoyés vers Google Analytics.Pour l'instant, GA n'acumule pas de données pour les users sans consentement. Par contre, il y a une modélisation des conversions pour les conversions exportées vers Google Ads.
A long terme, Google prendra en compte les ping sans cookie dans Google Analytics pour modéliser des rapports de sessions et de user plus proches de la réalité.

En résumé, vous verrez plus de conversions dans Google Ads, ce qui alimentera correctement vos stratégies d'enchères, et améliorera vos performances en acquisition. Pour rappel, en dessous de 15 conversions par mois et par groupe de campagnes, les algorithmes de smart bidding ne tournent pas de manière optimale.

Par contre, vous ne verrez (pour l'instant) pas plus de sessions ni de conversions Google Analytics, qui ne sont donc pas modélisées suite à cette implémentation.

Il est malheureusement impossible de distinguer les conversions provenant de la modélisation par rapport aux "vraies" conversions qui sont directement trackées. Ce choix de la part de Google a été fait en cohérence avec les choix passés. En effet, certaines conversions cross-device, ainsi que des conversions Safari (bloquées par ITP) ont déjà une part de modélisation, tout comme avec le consent mode, qui ne sont pas distinguées.

Jusque-là, c'était le pitch de Google. Toutefois, sachez que l'accueil est loin d'avoir fait l'unanimité, pour plusieurs raisons :

  • C'est une bêta, ce qui signifie que la solution peut être amenée à changer si les résultats ne sont pas au rendez-vous
  • Impossible de savoir dans Google Ads quelles sont les conversions issues de la modélisation.
  • L'intégration avec Google Tag Manager n'est pas évidente ; par ailleurs en termes d'architecture, utiliser l'API gtag() plutôt que le dataLayer pour transmettre le statut de consentement est un choix discutable.
En effet, utiliser le dataLayer permettrait de facilement le récupérer les préférences de l'utilisateur. Facebook ou d'autres plateformes publicitaires ou templates personnalisés pourraient aussi utiliser ce statut, mais le stocker dans gtag() le rend inutilisable. Par ailleurs, cela rend la recette de la mise en place du Consent Mode assez difficile.

Alors, faut-il implémenter le Google Consent Mode ou pas ?
On conseille de regarder 2 critères :

  • Y a-t-il moins de 15 conversions par mois et par campagne ? Si oui, le Consent Mode permettra de se rapprocher de ce chiffre et ainsi améliorer le smart bidding de vos campagnes.
  • Google représente-t-il une forte part de votre mix publicitaire ? Si ce n'est pas un canal prioritaire pour vous, ce n'est pas la peine d'investir du temps dans la mise en place du Consent Mode, sachant que la solution est peu adoptée et va assez rapidement évoluer.
Consent mode decision matrix
Critères de décision pour le Consent Mode

On propose dans ce guide une implémentation à 100% avec Google Tag Manager. L'avantage : pas besoin de modifier le code d'intégration de votre CMP, ce qui peut nécessiter plusieurs tickets à des développeurs si vous gérez plusieurs sites ou sous-domaines. Mais il peut y avoir des problèmes d'ordonnancement des tags avec cette méthode.

Prérequis :

  • avoir déjà paramétré la CMP pour collecter le consentement utilisateur
  • avoir défini des déclencheurs dans GTM sur des customs events qui correspondent aux différents statuts du consentement tel que collecté par la CMP.
La plupart des CMP vous feront paramétrer des déclencheurs dans GTM, par exemple pour vous permettre de déclencher les balises d'analytics dès que l'utilisateur a donné son consentement aux outils d'analytics.
Lien entre la pop-up de collecte de cookie et déclencheur GTM
La pop-up de collecte de préférence utilisateur se traduit par un ou plusieurs custom events qui peuvent être utilisés par un déclencheur GTM

Initialisation de l'absence de consentement utilisateur

Capture d'écran GTM
Balise personnalisée se déclenchant à l'initialisation du consentement

Créez un nouveau tag dans GTM et utilisez le Custom Template de Simo Ahava, sur le Consent Mode, avec Consent Command = Default, qui se chargera d'affecter les valeurs suivantes :

ad_storage = denied
analytics_storage = denied

Google a sorti en même temps que le Consent Mode un nouveau déclencheur de l'initialisation du consentement, qui permet de s'assurer que le statut de base du consentement se déclenchera avant n'importe quel autre tag.

Concrètement, on vient donc de définir par défaut pour tous les utilisateurs l'absence de consentement.

Mise à jour de l'état du consentement.

Dans cette partie, nous allons mettre à jour le statut du consentement dès que l'utilisateur accepte les cookies. On va donc créer un nouveau tag pour mettre à jour les valeurs :

ad_storage = granted
analytics_storage = granted
  • Configuration de la balise : utilisez à nouveau le template de Simo Ahava, avec Consent Command = Update, et mettez à jour les attributs ad_storage et analytics_storage
  • Déclencheur : mettez le déclencheur correspondant au custom event envoyé par votre CMP lorsque l'utilisateur donne son consentement.
Vous avez ici la possibilité d'affiner pour ne mettre à jour que l'attribut ad_storage, que analytics_storage, ou les deux.
Template de tag Consent Mode de Simo Ahava
Consent mode update tag, pour mettre à jour les attributs lors du consentement

Modification des balises Google Analytics, Google Ads, et Conversion Linker

Dans chacune de ces balises, sélectionnez "No additional consent required" dans "Consent settings".
Vous pouvez également changer les règles de déclenchement : plus besoin d'attendre le consentement utilisateur, vous pouvez maintenant déclencher ces balises sur toutes les pages sans enfreindre la RGPD ! En effet, le "Built-In Consent Checks" s'occupera de choisir le type de ping à envoyer, à partir de la valeur des variables ad_storage et analytics_storage.

Balise conversion linker mise à jour
La balise conversion linker peut se déclencher sur toutes les pages, à condition de vérifier ad_storage = granted

Dirigez-vous maintenant vers le mode preview de GTM. On vous conseille de supprimer les cookies de votre site avant - j'utilise pour cela l'extension Cookie Editor.

  • Attendez avant de donner votre consentement, et rendez-vous dans le mode développeur : Option + ⌘ + J (sur macOS), ou Shift + CTRL + J (sur Windows ou Linux)
  • Allez dans l'onglet Network, tapez "collect" pour filtrer sur les tags Google Analytics, et cliquez sur un tag.
  • Cherchez le paramètre gcs. Il peut prendre plusieurs valeurs. S'il vaut G100, alors Google va envoyer un ping anonymisé. S'il vaut G111, G110 ou G101, alors Google envoie un ping qui nécessite le consentement. À ce stade, vous devriez donc voir "gcs: G100".
Le fameux paramètre gcs, indiquant le statut du consentement

Acceptez ensuite les cookies, et vérifiez que le tag Google Analytics se déclenche à nouveau, avec une autre valeur pour gcs.

Vous pouvez également taper gcs directement dans le Network pour vérifier la valeur de ce paramètre, ou également regarder dans le datalayer.


Vous avez maintenant un Consent Mode fonctionnel ! J'espère que ce guide vous aura été utile, mais surtout qu'il ne le sera bientôt plus... En effet, Google travaille d'une part sur plus de transparence sur la manière dont la modélisation fonctionne, et d'autre part sur une meilleure intégration du Consent Mode avec les CDP.  

Dites-moi ce que vous en pensez sur Twitter ou LinkedIn.