Depuis mars 2024, Google impose le Consent Mode v2. Ce guide est conçu pour des intégrateurs web, experts tracking, growth et dev. Si le consentement ne fonctionne pas, tout le marketing Google s’effondre. Voir notre guide sur Consent Mode avec Iubenda.
1. Introduction — Pourquoi Consent Mode v2 casse vos conversions
Depuis mars 2024, Google impose le Consent Mode v2 pour :
Le problème : une grande majorité des sites ont un Consent Mode v2 mal configuré, entraînant des effets cataclysmiques :
conversions Google Ads perdues
Smart Bidding inefficace
GA4 qui bascule 40–80% du trafic en “Direct”
remarketing désactivé
fpid/_ga non posés → attribution cassée
données partielles ou anonymisées
conversions modélisées indisponibles
Autrement dit : si le consentement ne fonctionne pas, tout le marketing Google s’effondre.
Ce tutoriel complet te donne la méthode exacte pour :
diagnostiquer un consent-mode cassé,
corriger CMP + GTM + GA4 + Google Ads,
restaurer les conversions,
valider ta configuration,
monitorer les signaux gcs / gcd / gcu,
et éviter que ton tracking ne se casse à nouveau.
Ce guide est conçu pour des intégrateurs web, experts tracking, growth et dev.
2. Comprendre le fonctionnement du Consent Mode v2 (pour bien le réparer)
Pour corriger le consent mode, il faut comprendre ce que Google attend exactement.
2.1. Les signaux essentiels : gcs, gcd, gcu
Chaque ping GA4 doit contenir :
Exemple d’URL GA4 valide :
https://www.google-analytics.com/g/collect?v=2&tid=G-XXXXXXX&gcs=G111&gcd=13t3t…
Si gcs n'est pas présent →
Google désactive modélisation, conversions, remarketing, audiences.
2.2. Les deux modes : Basic vs Advanced
Mode |
Fonctionnement |
Impact |
Basic |
aucune donnée si refus |
aucune modélisation |
Advanced |
signaux anonymisés même refus |
conversions + audiences modélisées |
Si Advanced n’est pas actif → conversions manquantes.
2.3. Le rôle critique de la CMP
La CMP (Axeptio, Didomi, Cookiebot, OneTrust…) doit :
définir les states de consentement,
transmettre ces states dans le dataLayer,
déclencher une update gtag() correcte,
ne pas bloquer GTM au chargement,
ne pas écraser la première initialisation Consent Mode.
80% des Consent Mode cassés = CMP mal configurée. Voir notre guide sur tracking server-side.
3. Étape 1 — Diagnostiquer un Consent Mode cassé (audit complet)
Avant de réparer, il faut vérifier où ça casse.
Voici un audit complet.
3.1. Vérifier la présence du paramètre gcs (obligatoire)
Dans Chrome DevTools → Network → filtre “collect” → clique une requête GA4.
Tu dois voir :
gcs=G111 si tout est OK.
Cas typiques :
Absence totale de gcs → GA4 ne sait pas si la page est consentie
gcs=G100 → CMP bloque tout
valeur fluctuante → dépend des différents consent qui ont été accepté par l'utilisateur
gcs n’arrive qu’après consentement → Consent Mode cassé
3.2. Vérifier les états de stockage : analytics_storage & ad_storage
Dans la requête GA4, la section query string doit refléter l’état :
Un consent-mode cassé montre souvent :
3.3. Simuler les transitions “denied → granted”
Test indispensable :
Refuser les cookies
Recharger → GA4 doit envoyer gcs=G100
Accepter les cookies
Recharger → GA4 doit envoyer gcs=G111
Si rien ne change → CMP n’envoie pas les states.
3.4. Vérifier la pose du cookie FPID et du _ga
Bugs très fréquents :
_ga non posé → attribution cassée
FPID posé avant consentement (interdit)
FPID jamais posé sur Safari
_ga supprimé par CMP
Solution : vérifier dans “Application → Cookies”.
3.5. Vérifier GTM Preview
Signes d’erreurs :
le tag GA4 Config ne se déclenche pas
la CMP pousse un event qui écrase le dataLayer
GTM init se déclenche avant le consent-mode default
l’ordre des scripts est inversé
4. Étape 2 — Corriger le Consent Mode dans le code (snippet obligatoire)
Le Consent Mode doit toujours commencer par une initialisation “default” placée avant GTM.
4.1. Mettre le consent “default” avant GTM
Snippet officiel :
<script>
gtag('consent', 'default', {
'ad_storage': 'denied',
'analytics_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied'
});
</script>
Sans ce snippet → GTM initialise GA4 en mode incertain, ce qui bloque les conversions.
4.2. Charger GTM immédiatement après
<script src="https://www.googletagmanager.com/gtm.js?id=GTM-XXXX"></script>
Important :
GTM ne doit pas être bloqué par la CMP
GTM doit toujours charger, sinon pas de GA4 ping anonymisé → pas de modélisation
5. Étape 3 — Corriger la CMP (Axeptio, Cookiebot, Didomi, OneTrust)
La CMP doit :
5.1. Vérifier les mappings purposes → consent-mode
Il faut 4 purposes obligatoires :
Consent Mode v2 |
CMP Purpose |
analytics_storage |
Analytics |
ad_storage |
Ads Storage |
ad_user_data |
Ads User Data |
ad_personalization |
Personalization |
Si la CMP ne mappe pas correctement → GA4 reste en denied.
5.2. CMP → dataLayer.push obligatoire
Exemples :
Axeptio
window._axcb.push(function() {
dataLayer.push({ event: 'axeptio_update' });
});
Didomi
didomi.on('consent.changed', function() {
dataLayer.push({ event: 'didomi_update' });
});
Cookiebot
window.addEventListener("CookiebotOnAccept", function() {
dataLayer.push({ event: 'cookiebot_update' });
});
5.3. Éviter de bloquer GTM.js
Erreur classique :
CMP bloque GTM tant que consent non donné
→ plus de GA4, plus de conversion modeling.
Solution :
Laisser GTM se charger, mais empêcher la pose des cookies tant que le consent n’est pas accordé.
6. Étape 4 — Corriger GTM (déclencheurs + GA4 + exceptions)
6.1. GA4 Config doit se déclencher même si refus
Pourquoi ?
Parce que GA4 doit pouvoir :
Un Consent Mode cassé = GA4 Config qui ne se déclenche pas.
6.2. Supprimer les exceptions “Only when consent accepted”
Ces règles cassent tout :
❌ "Ne déclencher GA4 que si cookies acceptés"
Remplacer par :
✔️ Déclencher GA4 tout le temps
✔️ Gérer le consent dans gtag()
6.3. Vérifier les paramètres auto-ccm de GA4
Google ajoute automatiquement :
ad_storage
analytics_storage
personalization
Si tu forces les valeurs → tu overrides Consent Mode → conversions perdues.
7. Étape 5 — Vérifier GA4 et Google Ads (post-correction)
7.1. Vérifier GA4 DebugView
Signaux attendus :
7.2. Vérifier dans Google Ads
Dans Outils → Conversions :
Colonne “Consent Required” →
Colonne “Consent status” :
Éligible
Received
Modeling Active
Si tu vois :
7.3. Vérifier la modélisation active
Google Ads affiche :
Si absent → consent non valide.
8. Étape 6 — Gérer Consent Mode dans une architecture Server-Side (GTM SS)
Beaucoup d’implémentations cassent les signaux en passant par sGTM.
8.1. Vérifier que gcs est transmis côté serveur
Dans la requête proxifiée vers /g/collect :
Tu dois voir :
gcs=G111
Si absent → ta client → server → Google pipeline casse l’attribution.
8.2. Poser FPID uniquement si consentement analytics
Flow :
user → gtm.js → CMP → consent given
sGTM → pose FPID
GA4 reçoit FPID + client_id + gcs
Si FPID est posé trop tôt → non conforme
Si FPID n’est jamais posé → attribution cookieless cassée
8.3. Vérifier les triggers GA4 SS
Ton client GA4 dans GTM SS doit être configuré :
9. Étape 7 — Monitoring & QA d’un consent-mode corrigé
9.1. 4 tests indispensables
Accept all
Reject all
Accept partial
Change consent en cours de navigation
9.2. Tests navigateurs
Safari est le plus important.
Il gère différemment :
cookie lifetime
partitioning
FPID
Storage Access API
9.3. Mettre en place un dashboard de monitoring
Indicateurs critiques :
% requêtes GA4 contenant gcs
fpid present rate
_ga present rate
conversions avant/après correction
modeling → statut Google Ads
proportion denied / granted
9.4. Tracker les erreurs CMP / GTM au fil des mises à jour
Car Axeptio, Didomi, Cookiebot modifient régulièrement :
leurs APIs
leurs events
leur mode de chargement
Il faut revalider le Consent Mode après chaque update.
10. Conclusion — Réparer Consent Mode v2 = restaurer la performance marketing
Consent Mode v2 mal implémenté :
Corriger Consent Mode v2, c’est :
restaurer les conversions,
récupérer 20–40% de signaux perdus,
améliorer le ROAS,
réactiver les audiences,
rendre GA4 et GAds cohérents,
garantir la conformité CMP,
stabiliser tout le tracking.
Ce tutoriel t’a donné la méthode la plus précise du marché pour diagnostiquer et corriger Consent Mode v2, côté client, côté CMP, côté GTM, côté GA4 et côté serveur. Voir notre guide sur Consent Mode avec Cookiebot.