gtag('consent','update') quand le visiteur choisit ; 3) testez en refusant, pour confirmer qu'aucun tag ne part avant l'accord.Shopify fournit bien une bannière et une API Customer Privacy pour recueillir le choix du visiteur. Mais recueillir le consentement et le transmettre à Google sont deux choses différentes. Par défaut, la bannière coche une case côté Shopify — elle ne pilote pas les signaux du Consent Mode que Google Ads et GA4 attendent. Résultat : les tags se chargent quand même, et souvent avant même que le visiteur ait cliqué.
C'est la règle n°1, et celle qu'on rate le plus : la commande consent 'default' doit s'exécuter en tout premier, avant le chargement de GTM ou de gtag. Tant que le visiteur n'a rien choisi, tout ce qui touche à la publicité est refusé.
<!-- Tout en haut du <head>, AVANT GTM -->
gtag('consent', 'default', {
ad_storage: 'denied',
ad_user_data: 'denied', // nouveau — V2
ad_personalization: 'denied', // nouveau — V2
analytics_storage: 'denied',
functionality_storage: 'granted',
security_storage: 'granted',
region: ['FR','ES','IT','DE','BE','NL','...EEE'],
wait_for_update: 500
});
Les deux paramètres ad_user_data et ad_personalization sont l'ajout de la V2 : sans eux, Google coupe le remarketing et les audiences pour le trafic européen depuis mars 2024.
Quand le visiteur clique sur la bannière, Shopify émet un événement. On l'écoute, et on traduit son choix en commande consent 'update' pour Google :
document.addEventListener('visitorConsentCollected', function (e) {
var c = e.detail || {};
gtag('consent', 'update', {
ad_storage: c.marketing ? 'granted' : 'denied',
ad_user_data: c.marketing ? 'granted' : 'denied',
ad_personalization:c.marketing ? 'granted' : 'denied',
analytics_storage: c.analytics ? 'granted' : 'denied'
});
});
C'est ce maillon — la commande update — qui manque dans la plupart des installations : le default « denied » est parfois posé, mais rien ne vient jamais le mettre à jour, donc même les visiteurs qui acceptent ne sont jamais mesurés.
Un Consent Mode ne se déclare pas « installé », il se teste :
facebook.com/tr ou google-analytics avec cookie ne doit partir.update passe bien tout en « granted » — dans l'aperçu Tag Assistant ou la console.| Erreur | Conséquence |
|---|---|
| CMP chargée après GTM | Les tags partent avant que le consentement soit connu — le default arrive trop tard |
| Default « granted » par défaut | Tout est autorisé d'entrée : la bannière ne sert à rien, exposition juridique directe |
Commande update manquante | Le consentement n'est jamais transmis : même les « oui » ne sont pas mesurés |
Ces réglages débordent vite du navigateur : dès que vous passez en tracking server-side, le consentement doit aussi être transmis au serveur — une CAPI Meta qui envoie sans respecter le consentement échange un problème de mesure contre un problème RGPD. Consent Mode et server-side se pensent ensemble, pas l'un après l'autre.
En mode basique, les tags Google ne se chargent pas tant que le refus tient — vous ne modélisez rien. En mode avancé, ils se chargent mais n'envoient que des pings anonymes sans cookie, ce qui permet à Google de modéliser les conversions perdues. Pour un e-commerce qui dépense en publicité, le mode avancé récupère nettement plus de signal — c'est celui que je recommande par défaut.
Je scanne votre Shopify avant le call et je vous montre, requêtes réseau à l'appui, quels tags partent avant l'accord — et comment poser un Consent Mode V2 propre.
Diagnostic gratuit — 30 minVous repartez avec le diagnostic, que l'on travaille ensemble ou non.