Comment configurer GA4 avec Google Consent Mode v2
Depuis mars 2024, Google exige Consent Mode v2 pour les annonceurs qui s’adressent à des utilisateurs de l’EEE et du Royaume-Uni, et les lois sur la vie privée imposent que le suivi attende le consentement. Bien configuré, Google Analytics continue de fonctionner dans le respect de la vie privée. Mal configuré, vous suivez illégalement ou vous perdez vos données. Voici l’ordre correct des opérations.
Ce que fait Consent Mode v2
Consent Mode indique aux balises Google le choix du visiteur à travers quatre signaux : analytics_storage, ad_storage, ainsi que les deux ajoutés dans la v2, ad_user_data et ad_personalization. Tant qu’un signal est denied, les balises ne déposent pas de cookies pour cette finalité ; en mode advanced, elles envoient tout de même des requêtes sans cookie que Google utilise pour modéliser les conversions.
Étape 1 : définir la valeur par défaut avant toute balise
La valeur par défaut doit s’exécuter avant le chargement de gtag.js ou de Google Tag Manager, en haut de <head> :
<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',
functionality_storage: 'granted',
security_storage: 'granted',
wait_for_update: 500
});
</script>
Générez ce bloc avec votre balise GA4, dans le bon ordre, grâce au Google Tag Snippet Generator.
Étape 2 : mettre à jour le consentement depuis le bandeau
Lorsque le visiteur fait un choix, envoyez une mise à jour ne contenant que ce qu’il a accepté, et mémorisez son choix pour sa prochaine visite :
function onConsent(choice) { // e.g. { analytics: true, marketing: false }
gtag('consent', 'update', {
analytics_storage: choice.analytics ? 'granted' : 'denied',
ad_storage: choice.marketing ? 'granted' : 'denied',
ad_user_data: choice.marketing ? 'granted' : 'denied',
ad_personalization: choice.marketing ? 'granted' : 'denied'
});
localStorage.setItem('consent', JSON.stringify(choice));
}
Lors des chargements suivants, appelez la même mise à jour juste après la valeur par défaut, avant le déclenchement des balises. Une plateforme de gestion du consentement (Cookiebot, OneTrust, Usercentrics et d’autres) peut le faire à votre place ; sinon, créez un bandeau avec blocage des scripts grâce au Cookie Consent Banner Generator.
Étape 3 : régions (facultatif)
Vous pouvez appliquer des valeurs par défaut plus strictes uniquement là où la loi l’exige, en ajoutant une liste region (par exemple l’EEE, le Royaume-Uni et la Suisse), et une valeur accordée partout ailleurs. Vérifiez avec votre conseiller juridique les régions qui vous concernent.
Étape 4 : vérifier que cela fonctionne
- Ouvrez le site dans une fenêtre de navigation privée et ne cliquez pas sur le bandeau. Aucun cookie
_gane doit exister, et les requêtes vers Google doivent contenirgcs=G100. - Acceptez tout. Les requêtes doivent passer à
gcs=G111et le cookie_gadoit apparaître. - Refusez tout puis rechargez la page : rien ne doit être déposé à nouveau.
Le Consent Mode Checker effectue ces vérifications automatiquement : il charge votre page dans un vrai navigateur, lit l’état du consentement et liste chaque traceur qui se déclenche avant et après le consentement. Utilisez le Tracking Tag Checker pour voir quelles balises une page charge.
Erreurs courantes
- Définir la valeur par défaut après la balise GA4 : le premier envoi part avant que le consentement ne soit connu.
- Oublier
ad_user_dataetad_personalization: on reste alors sur Consent Mode v1. - Intégrer en dur les pixels Meta, TikTok ou LinkedIn en dehors du flux de consentement : Consent Mode ne contrôle que les balises Google. Bloquez les autres pixels tant que le consentement marketing n’a pas été donné.
- Envoyer des événements personnalisés avant le consentement. Créez-les avec le GA4 Event Generator et envoyez-les via gtag pour que le consentement s’applique.