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.
Depuis mars 2024, Google impose le Consent Mode v2 pour :
GA4
Google Ads
Remarketing
Modélisation des conversions
Audiences
Import de conversions côté serveur
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.
Pour corriger le consent mode, il faut comprendre ce que Google attend exactement.
Chaque ping GA4 doit contenir :
gcs → Consent Signal (ex : G111)
gcd → Consent Details (la granularité)
gcu → User choice unique
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.
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.
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.
Avant de réparer, il faut vérifier où ça casse.
Voici un audit complet.
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é
Dans la requête GA4, la section query string doit refléter l’état :
granted
denied
Un consent-mode cassé montre souvent :
analytics_storage=denied en permanence
ad_storage=denied même après acceptation
states inversés
aucun état envoyé
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.
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”.
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é
Le Consent Mode doit toujours commencer par une initialisation “default” placée 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.
<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
La CMP doit :
reconnaître les catégories obligatoires
envoyer un “update”
pousser dans dataLayer
envoyer les bons paramètres GA4
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.
Exemples :
window._axcb.push(function() {
dataLayer.push({ event: 'axeptio_update' });
});
didomi.on('consent.changed', function() {
dataLayer.push({ event: 'didomi_update' });
});
window.addEventListener("CookiebotOnAccept", function() {
dataLayer.push({ event: 'cookiebot_update' });
});
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é.
Pourquoi ?
Parce que GA4 doit pouvoir :
envoyer des pings anonymisés,
inclure gcs, gcd, gcu,
alimenter le modeling.
Un Consent Mode cassé = GA4 Config qui ne se déclenche pas.
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()
Google ajoute automatiquement :
ad_storage
analytics_storage
personalization
Si tu forces les valeurs → tu overrides Consent Mode → conversions perdues.
Signaux attendus :
user_properties.consent_state
event_params.gcs
GA4 Config déclenché systématiquement
Dans Outils → Conversions :
Colonne “Consent Required” →
Colonne “Consent status” :
Éligible
Received
Modeling Active
Si tu vois :
“Missing required signals” → Consent Mode est encore cassé
“Not eligible for enhanced conversions” → GAds ne reçoit pas gcs
Google Ads affiche :
“Using enhanced conversions modeling”
“Data driven attribution enabled”
Si absent → consent non valide.
Beaucoup d’implémentations cassent les signaux en passant par sGTM.
Dans la requête proxifiée vers /g/collect :
Tu dois voir :
gcs=G111
Si absent → ta client → server → Google pipeline casse l’attribution.
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
Ton client GA4 dans GTM SS doit être configuré :
respect de consent-mode
priorité sur le côté client
déduplication event_id
Accept all
Reject all
Accept partial
Change consent en cours de navigation
Safari est le plus important.
Il gère différemment :
cookie lifetime
partitioning
FPID
Storage Access API
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
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.
Consent Mode v2 mal implémenté :
sabote GA4
détruit l’attribution
empêche la modélisation
désactive le remarketing
fausse la data d’acquisition
ruine Smart Bidding
fait exploser le trafic Direct
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.



