La façon la plus fiable de vérifier une implémentation de Consent Mode est d’inspecter les paramètres réseau que le navigateur envoie à Google, plutôt que de s’appuyer sur l’interface d’administration du CMP. Les tableaux de bord CMP rapportent ce que le CMP croit faire ; les paramètres réseau montrent ce qui est réellement envoyé. Lorsque ces deux sources divergent, les paramètres réseau font foi.
Trouver les requêtes
Ouvrez les Outils de développement de votre navigateur, allez dans l’onglet Réseau, et filtrez les requêtes vers :
/g/collect(protocole de mesure GA4)google-analytics.com/g/collectgoogleads.g.doubleclick.net(Google Ads)
Chaque requête porte l’état du consentement sous forme de paramètres de requête. Cherchez &gcs= et &gcd= dans l’URL ou la charge utile de la requête.
Le paramètre gcs (état de consentement v1)
Le paramètre gcs encode les deux paramètres de consentement originaux dans un format compact : G1xy
| Valeur | ad_storage | analytics_storage | Signification |
|---|---|---|---|
G111 | accordé | accordé | Consentement complet |
G110 | accordé | refusé | Cookies publicitaires autorisés, analytics bloqué |
G101 | refusé | accordé | Analytics uniquement |
G100 | refusé | refusé | Tout refusé |
Une requête gcs=G100 ne peut apparaître qu’en mode Advanced. En mode Basic, aucune requête ne se déclencherait du tout lorsque les deux paramètres sont refusés. Si vous voyez G100 dans vos requêtes réseau, vous êtes en mode Advanced et l’utilisateur a refusé le consentement.
Si vous ne voyez pas du tout le paramètre gcs, la commande de consentement par défaut ne se déclenche pas avant la requête de mesure. Les tags fonctionnent sans conscience du consentement — l’état d’échec le plus dangereux parce qu’il semble que tout fonctionne.
Le paramètre gcd (détail de consentement v2)
C’est le paramètre spécifique à v2 qui encode les quatre signaux de consentement ainsi que des informations sur le parcours de consentement. Le paramètre gcd est une chaîne avec des caractères positionnels, chacun représentant l’état et la trajectoire d’un paramètre de consentement.
La lettre de chaque position indique la trajectoire du consentement :
| Lettre | Signification |
|---|---|
l | Refusé par défaut, aucune mise à jour reçue |
q | Refusé par défaut, puis mis à jour vers accordé |
t | Accordé par défaut, aucune mise à jour reçue |
p | Accordé par défaut, puis mis à jour (différents états) |
r | Autres états intermédiaires |
Lire le paramètre
Le paramètre gcd encode les quatre signaux de consentement dans une chaîne structurée. Chaque signal obtient une position avec sa lettre de trajectoire. Le format exact utilise des positions numérotées séparées par des caractères.
Pour un chargement de page en mode Advanced correctement configuré avant que l’utilisateur interagisse avec la bannière, vous devriez voir des valeurs l (refusé par défaut, aucune mise à jour). Cela signifie que les valeurs par défaut sont définies et que l’utilisateur n’a pas encore répondu.
Après que l’utilisateur accepte tout le consentement, les valeurs doivent changer vers q (refusé par défaut, puis mis à jour vers accordé). Cela confirme le flux complet de consentement : refusé par défaut → mise à jour du CMP → accordé.
Ce que les lettres vous indiquent
Voir t (accordé par défaut, aucune mise à jour) signifie l’une de ces deux choses :
- Vos valeurs par défaut ne sont pas définies sur
deniedpour la région de cet utilisateur. Le paramètre n’a jamais été refusé, donc l’accord est l’état par défaut. - Vous n’avez pas du tout de commande de consentement par défaut qui se déclenche, et le paramètre n’a jamais été explicitement défini.
Dans les deux cas, t pour le trafic EEE/Royaume-Uni est un signal d’alarme. Cela signifie que le consentement n’a pas été correctement obtenu avant le début de la mesure.
Voir l (refusé par défaut, aucune mise à jour) après que l’utilisateur a cliqué sur Accepter signifie que votre CMP ne déclenche pas l’appel de mise à jour du consentement. L’état de refus par défaut a été défini, mais l’action d’acceptation du CMP n’a pas déclenché gtag('consent', 'update', ...). C’est l’échec “conformité visuelle sans conformité technique” : la bannière fonctionne, le cookie est stocké, mais les tags Google n’apprennent jamais que le consentement a été accordé.
Voir q (refusé par défaut, puis mis à jour vers accordé) est l’état correct après qu’un utilisateur accepte le consentement dans une implémentation correctement configurée. Cela confirme : les valeurs par défaut ont été définies sur refusé, le CMP a déclenché une mise à jour, et le consentement est maintenant accordé.
Workflow de vérification
Une vérification systématique couvre quatre états de consentement :
1. Chargement initial de la page (avant l’interaction avec la bannière)
- Filtrez les requêtes réseau, trouvez un ping
/g/collect - Confirmez
gcs=G100(les deux refusés en mode Advanced, ou aucune requête en mode Basic) - Confirmez que
gcdmontre des valeurslpour les quatre paramètres - Si
gcsest manquant ou montreG111, les valeurs par défaut ne sont pas correctement définies
2. Après avoir accepté tout le consentement
- Cliquez sur Accepter sur la bannière
- Trouvez la prochaine requête
/g/collect - Confirmez
gcs=G111(les deux accordés) - Confirmez que
gcdmontre des valeursq(refusé puis mis à jour vers accordé) - Si
gcdmontreqpour seulement deux paramètres, le CMP n’envoie que des mises à jour v1
3. Après avoir refusé le consentement
- Effacez les cookies, rechargez, cliquez sur Refuser
- En mode Advanced : confirmez que les requêtes se déclenchent avec
gcs=G100 - En mode Basic : confirmez qu’aucune requête ne se déclenche
- Vérifiez que
gcdmontre des valeursl(refusé, aucune mise à jour — l’action “refuser” ne doit pas déclencher une mise à jour vers accordé)
4. Après un consentement partiel
- Si votre CMP supporte les choix granulaires, accordez les analytics mais refusez la publicité
- Confirmez
gcs=G101(ad_storagerefusé,analytics_storageaccordé) - Confirmez que
gcdmontreqpour les paramètres analytics etlpour les paramètres publicitaires
Outils
Extension Chrome Consent Mode Inspector — Fournit une superposition en temps réel montrant l’état du consentement et l’historique sans avoir à fouiller dans les requêtes réseau. Particulièrement utile pour vérifier les transitions d’état : vous pouvez voir la chronologie des appels par défaut → mise à jour et confirmer que les quatre paramètres v2 sont présents.
Mode Preview Google Tag Assistant — L’onglet Consentement montre l’état du consentement pour chaque événement dans le conteneur GTM. Vérifiez que ad_user_data et ad_personalization sont listés comme paramètres distincts. Si seuls ad_storage et analytics_storage apparaissent, votre implémentation fonctionne toujours en v1, peu importe ce que votre CMP prétend.
Outils de développement du navigateur — L’approche manuelle décrite ci-dessus. Plus de travail, mais aussi la plus fiable : vous regardez les requêtes HTTP brutes, pas l’interprétation d’une couche d’abstraction.
Patterns de débogage courants
Tous les paramètres montrent t pour le trafic EEE : Votre commande de consentement par défaut ne se déclenche pas, ou elle se déclenche après que les tags ont déjà évalué le consentement. Vérifiez l’ordre des déclencheurs — le défaut doit être dans Consent Initialization, pas dans Initialization ou All Pages.
Deux paramètres montrent q, deux montrent l après acceptation : Votre CMP n’envoie que des mises à jour v1. Mettez à jour la configuration du CMP pour inclure ad_user_data et ad_personalization dans l’appel de mise à jour du consentement.
Aucun paramètre gcs ou gcd du tout : L’API de consentement gtag n’est pas chargée, ou votre implémentation de tags la contourne entièrement. Cela arrive souvent avec les implémentations de tags dupliquées où les tags existent à la fois dans GTM et dans l’en-tête HTML du site.
Les valeurs changent à la navigation mais se réinitialisent au rechargement : Le CMP définit l’état du consentement sur la page courante mais ne le persiste pas. Le cookie de consentement stocké n’est soit pas défini, soit pas lu lors des chargements de page suivants. Vérifiez la configuration des cookies du CMP et les paramètres de domaine.