Sommaire · 8 chapitres
- 01Qu'est-ce que le Consent Mode v2 ?
- 02Consent Mode v2 : mode basique ou mode avancé ?
- 03Configurer le Consent Mode v2 dans Google Tag Manager
- 04Tester le Consent Mode v2 : le refus est-il respecté ?
- 05Consent Mode v2, cookies et RGPD : ce que dit la CNIL
- 06Les pièges du Consent Mode v2
- 07Comment je vous accompagne
- 08Questions fréquentes
Je détaille ici la configuration dans Google Tag Manager, le choix entre les deux modes, les tests qui prouvent que le refus est respecté, ce que disent les textes de la CNIL et les pièges à contrôler en audit.
Qu'est-ce que le Consent Mode v2 ?
Le Consent Mode est une API de Google : la page déclare un état de consentement, et les balises Google adaptent leur comportement (cookies, identifiants, envois). Selon la présentation officielle du mode Consentement, il fonctionne en deux temps : un état par défaut posé au chargement, puis une mise à jour quand le visiteur fait son choix.
1.1Les quatre signaux et leur rôle
| Signal | Ce qu'il autorise | Depuis |
|---|---|---|
ad_storage | Cookies et identifiants liés à la publicité | v1 |
analytics_storage | Cookies de mesure d'audience, par exemple la durée de visite | v1 |
ad_user_data | Envoi de données utilisateur à Google à des fins publicitaires | v2 |
ad_personalization | Publicité personnalisée et remarketing | v2 |
Chaque signal vaut granted (accordé) ou denied (refusé). Les deux premiers parlent de stockage dans le navigateur ; les deux nouveaux parlent de l'usage des données par Google Ads.
1.2Ce que la version 2 a changé par rapport au Consent Mode v1
La v1 ne connaissait que ad_storage et analytics_storage. La v2 ajoute ad_user_data et ad_personalization. Depuis mars 2024, pour le trafic de l'Espace économique européen, Google aligne automatiquement ad_user_data sur ad_storage pour les implémentations restées en mode v1 ; ad_personalization n'est jamais déduit, et les audiences de remarketing demandent de passer à la v2.
Ce changement intervient au moment où Google devait appliquer, en mars 2024, le règlement sur les marchés numériques (Digital Markets Act, DMA), dont l'article 5 interdit aux contrôleurs d'accès désignés de combiner des données personnelles entre leurs services sans le consentement de l'utilisateur. La Commission européenne leur laisse six mois après leur désignation pour appliquer ces obligations. Côté annonceurs, Google rattache ces signaux à sa politique relative au consentement de l'utilisateur dans l'UE.
1.3Consent Mode et CMP : qui fait quoi
- 01La CMP
- (consent management platform : Didomi, Axeptio, Cookiebot, OneTrust…) affiche le bandeau, recueille et conserve le choix, et en garde la preuve.
- 02Le Consent Mode
- ne mémorise rien. Il reçoit l'état transmis par la CMP à chaque page vue et le traduit pour les balises Google.
- 03GTM
- fait le lien : il pose l'état par défaut, reçoit la mise à jour et conditionne aussi les balises non Google.
Le choix de la CMP elle-même (certification Google, modèle GTM, gestion des régions) est l'objet de mon comparatif des CMP.
Consent Mode v2 : mode basique ou mode avancé ?
Google documente deux implémentations. Le tableau reprend sa comparaison officielle :
| Point | Mode basique | Mode avancé |
|---|---|---|
| Chargement des balises | Bloquées jusqu'à l'interaction avec le bandeau | Chargées dès l'arrivée, avec un état par défaut à denied |
| Avant le choix | Rien n'est envoyé, pas même l'état de consentement | État de consentement et pings sans cookie |
| Après un refus | Aucun envoi vers Google | Pings sans cookie |
| Après un accord | Mesure normale, avec cookies | Mesure normale, avec cookies |
| Modélisation | Modèle général, moins détaillé | Modèle propre à l'annonceur, plus détaillé |
2.2La modélisation dans GA4 : les seuils de Google
La modélisation comportementale de GA4 estime l'activité des visiteurs qui ont refusé. Selon l'aide Google Analytics sur la modélisation, la propriété doit :
- utiliser le mode avancé sur toutes ses pages ;
- collecter au moins 1 000 événements par jour avec analytics_storage refusé, pendant au moins 7 jours ;
- compter au moins 1 000 utilisateurs quotidiens avec analytics_storage accordé, sur au moins 7 des 28 jours précédents ;
- afficher l'identité de reporting « Mélangée » pour voir les données modélisées.
Google précise que ces seuils ne suffisent pas toujours : d'autres critères comptent, comme le ratio entre nouveaux et anciens utilisateurs. Un site qui reste sous ces volumes, fréquent en B2B, envoie des pings en mode avancé sans obtenir de modèle dans GA4. Côté Google Ads, la modélisation des conversions suit d'autres règles, propres à chaque compte.
2.3Ce que le consentement fait à vos chiffres
Chez un grand compte de l'assurance, GA4 ne voit qu'environ 31 % des clics que la Search Console attribue au site, à cause du consentement. Le trafic existe ; c'est la mesure qui manque. Cette différence se diagnostique source par source, comme je l'explique dans mon guide sur les différences entre GA4 et le back-office.
Configurer le Consent Mode v2 dans Google Tag Manager
Voici l'implémentation du Consent Mode v2 dans un conteneur web, étape par étape, quand la CMP fournit un modèle GTM.
- 01
Installer le modèle de la CMP
La plupart des CMP publient un modèle dans la galerie de modèles de la communauté GTM. Le modèle appelle les API
setDefaultConsentStateetupdateConsentState: c'est la méthode recommandée par la documentation développeur du mode Consentement. Si la CMP est certifiée par Google, l'activation du Consent Mode se fait souvent dans ses propres réglages. - 02
Le déclencher sur « Initialisation du consentement »
La balise de la CMP doit utiliser le déclencheur « Initialisation du consentement - Toutes les pages », présent par défaut dans chaque conteneur web. Selon l'aide Tag Manager sur le consentement, il s'exécute avant tous les autres, y compris les déclencheurs d'initialisation.
Le consentement passe avant toute autre balise du conteneur. - 03
Poser l'état par défaut, région par région
Définissez une valeur par défaut pour les quatre signaux, pas seulement pour ceux de la v1. Le paramètre
regionaccepte des codes ISO 3166-2 : vous pouvez refuser par défaut dans l'Espace économique européen et adopter une autre règle ailleurs. La région la plus précise l'emporte.Le paramètre
wait_for_updatefixe, en millisecondes, le temps laissé à la CMP pour envoyer la mise à jour avant que les balises partent. La documentation donne l'exemple de 500. - 04
Mettre à jour après le choix
La mise à jour doit couvrir chaque signal qui a une valeur par défaut, et être renvoyée à chaque page vue, puisque le Consent Mode ne garde rien en mémoire. Dans GTM, un modèle utilise
updateConsentState, jamais une commande gtag ajoutée à côté. - 05
Conditionner chaque balise
Les balises Google (GA4, Google Ads, Floodlight) ont des vérifications intégrées du consentement : elles adaptent seules leur comportement. Pour les pixels tiers (Meta, LinkedIn, Microsoft), utilisez « Le déclenchement de la balise nécessite un consentement supplémentaire » et ajoutez ad_storage ou le signal qui convient. Microsoft a son propre mécanisme pour l'UET, détaillé dans mon guide du suivi des conversions Microsoft Ads.
Activez ensuite la « Vue d'ensemble du consentement » (Admin, Paramètres du conteneur) : elle liste les balises et les consentements dont chacune dépend.
- 06
Décider des options publicitaires
ads_data_redaction: avec ad_storage refusé, masque les identifiants de clic publicitaire dans les envois ; sans effet quand ad_storage est accordé.url_passthrough: fait suivre les paramètres de clic (gclid, dclid, gclsrc, _gl, wbraid) dans les liens internes quand les cookies sont refusés.
Ces deux options touchent aux identifiants publicitaires : leur activation se décide avec votre DPO, pas seulement avec l'équipe d'acquisition.
- 07
Le code équivalent avec gtag.js
Sans GTM, ou avec un bandeau maison, l'état par défaut s'écrit avant tout autre appel gtag :
<script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('consent', 'default', { 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'analytics_storage': 'denied', 'wait_for_update': 500 }); </script> <!-- puis le conteneur GTM ou la balise Google --> // après le choix du visiteur, sur chaque page : gtag('consent', 'update', { 'ad_storage': 'granted', 'ad_user_data': 'granted', 'ad_personalization': 'granted', 'analytics_storage': 'granted' });Les commandes de consentement passent par le dataLayer, comme je le montre dans mon guide du dataLayer GTM. La commande par défaut ne doit jamais être chargée de façon asynchrone.
Tester le Consent Mode v2 : le refus est-il respecté ?
Une configuration du Consent Mode v2 ne vaut que par sa recette. Testez chaque gabarit de page du site dans trois états : avant tout choix, après refus, après accord.
4.1Dans Tag Assistant
La procédure de débogage de Google passe par Tag Assistant : sélectionnez le premier événement Consent, contrôlez que les quatre signaux ont une valeur par défaut, puis le dernier pour la mise à jour. L'onglet Consentement d'une balise affiche les colonnes de valeur par défaut et de mise à jour sur la page.
Deux limites que j'ai rencontrées en recette :
- Tag Assistant n'affiche pas les paramètres vides en console : un signal absent peut passer inaperçu, seule la requête le montre.
- Le message « conteneur introuvable » peut être un faux positif, par exemple quand une politique COOP du site coupe la fenêtre de débogage. Avant de conclure à une balise bloquée, regardez l'onglet Réseau.
4.2Dans l'onglet Réseau : les paramètres gcs et gcd
Ouvrez les outils de développement, filtrez sur collect et lisez l'URL des hits GA4 et Google Ads. Le paramètre gcs résume deux signaux : le préfixe G1, puis un chiffre pour ad_storage et un pour analytics_storage (1 accordé, 0 refusé).
| Valeur gcs | ad_storage | analytics_storage |
|---|---|---|
G100 | refusé | refusé |
G101 | refusé | accordé |
G110 | accordé | refusé |
G111 | accordé | accordé |
Le paramètre gcd couvre les quatre signaux de la v2 : une lettre par signal code à la fois la valeur par défaut et la mise à jour. Google ne documente ni gcs ni gcd : ce sont des paramètres internes, susceptibles de changer. Leur grille de lecture vient de praticiens, notamment l'analyse de Simo Ahava (mise à jour en mars 2024), pour qui une lettre l signale un signal jamais défini. Je m'en sers pour repérer un ad_user_data ou un ad_personalization oublié, et je confirme toujours en relisant l'état dans Tag Assistant.
4.3Les tests de recette
- 1Navigation privée, aucun choix : aucune requête Google en mode basique, des hits en G100 sans cookie
_gaen mode avancé. - 2Refus : même résultat, et aucun pixel tiers dans l'onglet Réseau.
- 3Accord : hits en G111, cookie
_gadéposé (et_gcl_ausi Google Ads est présent), gcd sans signal non défini. - 4Retrait du consentement depuis le lien du pied de page : les envois suivants repassent en refus.
- 5Pages de destination des campagnes et sites annexes de la marque : même comportement que la page d'accueil.
- 6Quelques jours après la mise en ligne : les écrans de diagnostic de GA4 et de Google Ads qui indiquent si les signaux de consentement arrivent.
Les pièges du Consent Mode v2
- 01Un état par défaut posé trop tard
- une balise publicitaire lit un cookie avant lui, ce que Tag Assistant peut signaler.
- 02Deux signaux sur quatre
- un défaut v1 sans ad_user_data ni ad_personalization prive Google Ads du remarketing.
- 03Une région sans tous les signaux
- un défaut régional qui oublie ad_storage laisse la valeur globale s'appliquer.
- 04Des balises en dur
- un gtag ou un pixel collé dans le thème, hors du conteneur, ignore le Consent Mode.
- 05Les pixels non Google oubliés
- sans consentement supplémentaire exigé, ils partent quel que soit le choix.
- 06Deux mécanismes concurrents
- le modèle de la CMP et un code manuel envoient des états contradictoires.
- 07Le mode avancé sans le volume
- des pings envoyés pour une modélisation qui ne se déclenchera jamais.
- 08Le serveur oublié
- en tracking server-side, le conteneur serveur reçoit gcs et gcd et doit les respecter ; ma page GTM server-side détaille l'offre.
Questions fréquentes
Q01Qu'est-ce que le consent mode v2 ?
C'est la version actuelle de l'API de consentement de Google. Elle transmet aux balises GA4 et Google Ads quatre signaux issus de votre bandeau : ad_storage, analytics_storage, ad_user_data et ad_personalization.
Q02Le Consent Mode v2 est-il obligatoire ?
Aucune loi ne l'impose. Google en fait une exigence pour le trafic européen : sans ad_personalization, les audiences de remarketing et la publicité personnalisée de Google Ads ne fonctionnent plus.
Q04Quelle différence entre les paramètres gcs et gcd ?
gcs résume ad_storage et analytics_storage en deux chiffres (G100 à G111). gcd couvre les quatre signaux et distingue la valeur par défaut de la mise à jour.
Q05Le mode avancé est-il autorisé en France ?
La question n'est pas tranchée par un texte dédié. Les pings envoyés avant le choix relèvent d'une analyse au regard de l'article 82, que seul votre DPO ou votre avocat peut mener pour votre site.
Q06Faut-il configurer le Consent Mode v2 pour GA4 seul ?
Oui, dès que GA4 dépend du choix du visiteur : analytics_storage pilote ses cookies. Les deux signaux publicitaires comptent aussi si GA4 est relié à Google Ads.
Comment je vous accompagne
Je suis Amaury DUVAL, ingénieur de l'École Centrale Paris, consultant en tracking et analytics, certifié Google Analytics et Google Tag Manager. Je configure le Consent Mode v2 dans le conteneur, je relie la CMP, je fais la recette dans les trois états et je documente chaque choix pour votre DPO, qui garde la main sur la décision juridique.
Le Consent Mode s'inscrit dans un travail plus large de consultant Google Tag Manager : plan de taggage, balises GTM, installation du conteneur sur WordPress ou Shopify. Si vous cherchez une mesure exemptée de consentement, lisez mon guide des alternatives à Google Analytics. Pour former vos équipes, voyez la formation Google Tag Manager. Pour en parler, contactez-moi.