Implémenter le consent mode

💡 Le consent mode, en voilà un sujet compliqué… Dans cet article nous allons tenter d’éclaircir le sujet de son implémentation, le tout de manière efficace avec celle de la CMP et de votre dataLayer.

👨‍💻 Comme on aime l’open source, quelques ressources supplémentaires :

Les snippets de code sont disponibles sur notre répertoire GitHub fraichement ouvert.

starfox-snippets/axeptio_consentMode.html at main · Starfox-Analytics/starfox-snippets : Extraits de code utiles concernant des implémentations tracking - starfox-snippets/axeptio_consentMode.html at main · Starfox-Analytics/starfox-snippets

📔 Restez attentifs à nos prochaines publications !

  • Comment parler à un développeur peut nous aider à être plus efficace sur un plan de marquage
  • Comment gérer des tags média sur plusieurs sites et plusieurs langues dans une seule variable GTM…

Qu’est-ce que le consent mode

Il s’agit de l’équivalent des solutions Analytics exemptées de consentement mais à la sauce Google.

L’idée reste la même : si un utilisateur refuse la bannière cookie, on envoie une donnée anonymisée (ie non liée à un cookie) :

  • Dans le cadre des solutions exemptées, il s’agit de pings qui sont directement intégrés dans les interfaces sans possibilité de retracer le parcours utilisateur. Par exemple vous pourrez voir toutes vos sources d’arrivée mais là les pages successives vues par un utilisateur donné.
  • Dans le cadre du consent mode un ping anonymisé est envoyé pour modéliser la donnée et non pas la stocker directement. L’idée est donc qu’après une période d’apprentissage où la solution reçoit 100% des données, on applique les restrictions de la bannière cookie, et la solution sait alors assez bien modéliser les données restantes.

À noter que la solution a tout d’abord été mise en place pour Google Ads, car c’est là qu’il y a le plus d’enjeux business pour piloter le plus précisément possible les dépenses média. Il peut également y avoir des conditions sur le volume nécessaire de trafic et de conversion pour que l’apprentissage puisse bien se faire.

Pour plus d’informations :

Soit, mais comment ça s’implémente ?

Une apparente complexité

En passant un peu de temps sur le sujet de l’implémentation se pose assez vite la question classique de l’implémentation via GTM. Plusieurs articles existent dont un de Simo qui détaille l’utilisation d’un template de tag personnalisé.

Le tag personnalisé de Simo Ahava disponible dans GTM
Le tag personnalisé de Simo Ahava disponible dans GTM

Plusieurs points sont à prendre en compte pour la configuration !

  • il faut en créer un tag pour l’initialisation et un autre pour l’update des consentement
  • de plus, l’intrication avec la séquence de chargement de GTM est des tags se pose
  • Un autre sujet complexe est également la mise à jour du consent mode : s’il se déclenche sur un événement du dataLayer poussé par une CMP, comme un activate_google_analytics, il faudra attendre le message suivant pour que le consent mode soit pris en compte ou il faudra séquencer les tags qui se déclenchent aussi sur ce message.

Le code à la rescousse, oui monsieur !

Il est toujours bon de comprendre ce qui se passe sous le capot. Comme pour le tracking Google Analytics la spécification technique est source de vérité, et il se trouve que la spécification du consent mode (disponible au lien suivant) est assez simple !

En effet, on s’aperçoit qu’il ne faut que deux bouts de code pour mettre en place le consent mode. Le premier pour initialiser les paramètres, le second pour le mettre à jour lors des acceptations et refus cookies.

// Initialisation au plus tôt dans la page
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'analytics_storage': 'denied'
});

// Update lors de l'acceptation ou refus des cookies
gtag('consent', 'update', {
  'ad_storage': 'granted'
});

On voit alors la solution template personnalisé GTM sous un autre angle : elle permet de s’abstraire de cette configuration de code au prix d’une complexité supplémentaire dans GTM. De plus il ne s’agit que de quelques lignes de code : savoir les gérer côté développeur doit pouvoir être bénéfique.

Chez Starfox on n’a pas peur de regarder du code en face et de parler à un développeur. Nous avons même vu dans un précédent article qu’il était possible de contrôler la séquence des chargements GTM / CMP / dataLayer. Et il se trouve que le consent mode s’imbrique parfaitement dans cette logique.

Pour rappel, chaque CMP dispose de méthodes pour signifier qu’un choix a été fait : c’est exactement ce qu’il nous faut pour intégrer la mise à jour du consent mode. Un exemple avec Axeptio ci-dessous, avec le code du précédent article mis à jour

window._axcb.push(function(axeptio) {
  axeptio.on("cookies:complete", function(choices) {
    var consentSettings = {
      ad_storage: !!choices['Google_Ads'] ? 'granted' : 'denied',
      analytics_storage: !!choices['google_analytics'] ? 'granted' : 'denied',
    };
    gtag("consent", "update", consentSettings);
    dataLayer.push({ event: 'page_view' });
    envoiEventsSupplementaires();
  });
});

Vous trouverez un exemple de page html à tester sur notre GitHub au lien ci-dessous. Vous verrez qu’en jouant avec les consentements Google Analytics / Google Ads le hit GA4 se met bien à jour.

starfox-snippets/axeptio_consentMode.html at main · Starfox-Analytics/starfox-snippets

Extraits de code utiles concernant des implémentations tracking - starfox-snippets/axeptio_consentMode.html at main · Starfox-Analytics/starfox-snippets

Ci dessous les hits qui doivent se déclencher si vous testez vous même le fichier html :

Image without caption

Un besoin, une question ?

Écrivez-nous à hello@starfox-analytics.com.
Notre équipe vous répondra au plus vite.

Sommaire
Post Tab Link
Post Tab Link

Suivez Starfox Analytics sur Linkedin pour ne rien rater.