Consent Mode v2 sur Shopify : Installation, configuration et vérification

Le Consent Mode v2 est obligatoire pour les annonceurs Google ciblant l'EEE depuis juillet 2025. Ce guide correspond à l'état des intégrations Shopify en mai 2026 — vérifiez la documentation de votre CMP pour les dernières mises à jour.

Consent Mode v2 Shopify — Guide 2026
📌 Consent Mode v2 Shopify — l'essentiel en 3 points

Obligatoire depuis juillet 2025 pour toute boutique Shopify utilisant Google Ads ou GA4 avec une audience EEE/UK. Les boutiques non conformes ont perdu leurs audiences de remarketing et dégradé leurs algorithmes Smart Bidding — sans délai de grâce.

La complexité spécifique à Shopify : contrairement à un site classique, Shopify a deux contextes de tracking — les pages storefront (via GTM standard) et le checkout (via Custom Pixel dans un sandbox isolé). Le consentement doit être configuré dans les deux contextes séparément.

L'erreur la plus fréquente : avoir un bandeau cookies qui enregistre le choix de l'utilisateur dans sa propre base de données, mais ne jamais envoyer le signal de mise à jour (gtag('consent', 'update', ...)) vers GTM. Résultat : GA4 et Google Ads pensent que le consentement est toujours refusé — même quand l'utilisateur a accepté.

En bref : le Consent Mode v2 sur Shopify nécessite une CMP qui s'intègre avec la Shopify Customer Privacy API ET qui envoie les 4 signaux vers GTM. La configuration passe par un tag CMP dans GTM sur le déclencheur "Consent Initialization", des defaults denied placés avant le snippet GTM dans theme.liquid, et une configuration séparée dans le Custom Pixel pour le checkout. Vérifiez systématiquement via Tag Assistant Companion avant de considérer le travail terminé.

Pourquoi c'est obligatoire en 2026 — et ce qui se passe sans

Google a rendu le Consent Mode v2 obligatoire pour tous les annonceurs ciblant l'EEE et le Royaume-Uni depuis juillet 2025. Les conséquences d'une non-conformité sont immédiates et mesurables.

Sans Consent Mode v2Avec Consent Mode v2 correctement configuré
❌ Audiences de remarketing non alimentées pour les utilisateurs EEE qui refusent ✅ Modélisation comportementale Google — audiences reconstituées sur les données disponibles
❌ Enhanced Conversions non fonctionnelles — données hashées non transmises ✅ Enhanced Conversions opérationnelles — meilleur taux de correspondance
❌ Smart Bidding dégradé — signal incomplet sur les conversions EEE ✅ Smart Bidding avec modélisation des conversions manquantes
❌ Données GA4 incomplètes pour les utilisateurs qui refusent ✅ Modélisation GA4 — estimation des comportements non trackés
❌ Risque de non-conformité RGPD — cookies déposés avant consentement ✅ Aucun cookie déposé avant consentement — conformité RGPD

Pour une boutique Shopify dépensant 5 000 €/mois en Google Ads avec une audience européenne majoritaire, la dégradation des audiences de remarketing et du Smart Bidding peut représenter une hausse de CPA de 20 à 40 % selon les secteurs. Ce n'est pas une contrainte juridique abstraite — c'est un problème business direct.

Votre boutique Shopify n'a pas de Consent Mode v2 ou vous n'êtes pas sûr qu'il fonctionne ?

Parlez-nous de votre situation →

Architecture Consent Mode v2 sur Shopify — les 2 contextes

Shopify a une architecture de tracking en deux parties distinctes. Le Consent Mode v2 doit être présent dans les deux — une configuration incomplète crée des trous dans vos données de conversion.

Storefront (pages produit, collection…)Checkout + page Merci
Méthode GTMSnippet GTM dans theme.liquidCustom Pixel Shopify (Checkout Extensibility)
Contexte d'exécutionPage principale — accès DOM completIframe sandboxé — accès DOM limité
GTM Preview✅ Fonctionne normalement❌ Ne fonctionne pas dans le sandbox
Consent Mode initVia tag GTM "Consent Initialization"Via code dans le Custom Pixel avant le snippet GTM
CMP signal sourceShopify Customer Privacy API + CMP tag GTMShopify Customer Privacy API lue dans le Custom Pixel
Shopify Standard✅ Accès complet à theme.liquid✅ Custom Pixel disponible
Shopify Plus✅ Accès complet✅ Checkout Extensibility + Custom Pixel
⚠️
Shopify Plus vs Standard : la configuration du Custom Pixel est identique pour les deux plans. En revanche, Shopify Plus permet également de modifier le checkout via les extensions Checkout Extensibility (scripts supplémentaires, UI personnalisée). Si vous êtes sur Shopify Plus, vérifiez qu'aucune extension checkout n'injecte des scripts de tracking en dehors du Custom Pixel — ce serait une source de tracking non contrôlé par le consentement.

Shopify Customer Privacy API — le pont entre votre CMP et GTM

La Shopify Customer Privacy API est le mécanisme natif qui gère les préférences de consentement des visiteurs. C'est le pont entre ce que votre CMP enregistre et ce que vos balises GTM reçoivent.

  1. 1
    Le visiteur interagit avec le bandeau cookies Shopify

    Il accepte, refuse ou configure ses préférences. La CMP enregistre ce choix dans sa propre base de données.

  2. 2
    La CMP écrit dans la Customer Privacy API

    Une CMP correctement intégrée appelle Shopify.customerPrivacy.setTrackingConsent() avec les choix (analytics: true/false, marketing: true/false). Si cette étape ne s'exécute pas, GTM ne reçoit jamais le signal de mise à jour.

  3. 3
    La CMP traduit les champs Shopify en signaux Consent Mode v2

    Le mapping n'est pas automatique. Votre CMP doit effectuer la correspondance :

    • marketing: truead_storage: 'granted' + ad_user_data: 'granted' + ad_personalization: 'granted'
    • analytics: trueanalytics_storage: 'granted'

    Si votre CMP ne gère pas ce mapping, les 4 signaux Consent Mode v2 ne sont jamais mis à jour — même si le visiteur a accepté.

  4. 4
    GTM reçoit le signal via gtag('consent', 'update', ...)

    Le template CMP dans GTM écoute les changements de la Customer Privacy API et appelle gtag('consent', 'update', {ad_storage: 'granted', ...}). Toutes les balises GTM en attente d'une mise à jour de consentement se déclenchent alors.

⚠️
Le mapping Shopify → Consent Mode v2 n'est pas automatique. Beaucoup de CMPs enregistrent le consentement sans jamais appeler la Customer Privacy API ni envoyer le signal gtag('consent', 'update'). Résultat : votre bandeau est affiché, les choix sont enregistrés, mais GTM reste en mode "denied" pour tous les visiteurs — y compris ceux qui ont accepté.

Choisir sa CMP pour Shopify et Consent Mode v2

✅ Checklist de sélection CMP pour Shopify
  • Intégration Shopify Customer Privacy API : la CMP appelle nativement Shopify.customerPrivacy.setTrackingConsent().
  • Template GTM disponible : présent dans la Galerie de modèles GTM avec déclencheur "Consent Initialization".
  • 4 signaux Consent Mode v2 : ad_storage, analytics_storage, ad_user_data, ad_personalization — pas seulement les 2 de la v1.
  • CMP certifiée Google : présente sur la liste officielle Google Certified CMPs.
  • Support du checkout Shopify : fonctionne dans le contexte Custom Pixel sandbox.
CMPIntégration ShopifyTemplate GTMCMv2 certifiéPrix indicatif
Axeptio ✅ App Shopify native ✅ Template GTM ✅ Certifié ~30–80 €/mois
Cookiebot / Cookiebot CMP ✅ App Shopify ✅ Template GTM officiel ✅ Certifié ~10–30 €/mois
CookieYes ✅ App Shopify ✅ Template GTM ✅ Certifié ~10–30 €/mois
Pandectes ✅ App Shopify native ✅ Template GTM ✅ Certifié ~15–30 €/mois
Consentmo ✅ App Shopify ✅ Template GTM ✅ Certifié Google + Microsoft ~10–40 €/mois
Didomi ⚠️ Configuration custom ✅ Template GTM ✅ Certifié Sur devis — enterprise

Recommandation pour la France : Axeptio est le plus répandu auprès des marchands français, avec support francophone et configuration relativement simple. Cookiebot est une alternative solide si vous utilisez l'écosystème Usercentrics. Pandectes, spécialisé Shopify, offre une intégration plus fine avec la Customer Privacy API pour les boutiques à fort volume. Consentmo est à noter si vous gérez également des campagnes Microsoft Ads — il est l'un des rares CMPs certifiés à la fois par Google et Microsoft UET.

Installation Consent Mode v2 sur Shopify via GTM — pas à pas

💡
Méthode simplifiée (Shopify Standard, 90 % des cas) : avant de passer à GTM, vérifiez si votre CMP propose une configuration via Shopify Admin → Settings → Customer events. Dans cette interface, vous pouvez définir les permissions de votre pixel (Analytics, Marketing) comme "Required" ou "Not Required" selon le consentement. C'est l'approche la plus simple — Shopify gère lui-même l'activation/désactivation du pixel selon le choix utilisateur, sans code custom. Utilisez GTM si vous avez besoin d'un contrôle fin sur le déclenchement de plusieurs balises.
  1. 1
    Ajouter les defaults Consent Mode v2 avant le snippet GTM

    Dans theme.liquid, avant le snippet GTM, ajoutez :

    <script>
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    
    // Consent Mode v2 — defaults denied (EEE)
    gtag('consent', 'default', {
      'ad_storage': 'denied',
      'analytics_storage': 'denied',
      'ad_user_data': 'denied',
      'ad_personalization': 'denied',
      'wait_for_update': 500
    });
    </script>
    <!-- Snippet GTM ici -->

    La commande gtag('consent', 'default') initialise les signaux. Le paramètre wait_for_update: 500 donne 500ms à la CMP pour envoyer le signal de mise à jour avant que les balises GTM ne se déclenchent en mode denied.

  2. 2
    Installer le template CMP dans GTM

    GTM → Balises → Galerie de modèles → cherchez votre CMP. Configurez avec votre clé de site.

    Déclencheur obligatoire : Initialisation du consentement — Toutes les pages. Ce déclencheur spécial s'exécute avant tous les autres — c'est la seule façon de garantir que les signaux sont définis avant les balises GA4 et Google Ads.

  3. 3
    Configurer les exigences de consentement sur chaque balise

    GTM → chaque balise Google Ads, GA4 → section "Paramètres avancés" → "Contrôles du consentement" → associez les paramètres requis : GA4 : analytics_storage. Google Ads : ad_storage + ad_user_data.

  4. 4
    Vérifier dans GTM Preview — Consent Overview

    Mode Preview GTM → chargez une page storefront → Tag Assistant Companion, onglet Consent → refusez les cookies → les balises GA4 et Google Ads doivent afficher "Blocked by consent". Acceptez → "Fired".

Consent Mode v2 dans le Custom Pixel Shopify (checkout)

Le checkout Shopify s'exécute dans un sandbox isolé — le Custom Pixel ne peut pas accéder au contexte GTM principal du storefront. Le Consent Mode v2 doit donc être initialisé séparément.

// Custom Pixel Shopify — initialisation Consent Mode v2
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// 1. Lire le statut de consentement depuis Shopify Customer Privacy API
const analyticsConsent = window.Shopify?.customerPrivacy?.analyticsProcessingAllowed()
  ? 'granted' : 'denied';
const marketingConsent = window.Shopify?.customerPrivacy?.marketingAllowed()
  ? 'granted' : 'denied';

// 2. Initialiser Consent Mode v2 avec les valeurs actuelles
gtag('consent', 'default', {
  'ad_storage': marketingConsent,
  'analytics_storage': analyticsConsent,
  'ad_user_data': marketingConsent,
  'ad_personalization': marketingConsent,
});

// 3. Charger GTM avec les signaux corrects
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXX');

// 4. Event purchase après consentement correctement défini
analytics.subscribe('checkout_completed', (event) => {
  window.dataLayer.push({ ecommerce: null });
  window.dataLayer.push({
    event: 'purchase',
    ecommerce: {
      transaction_id: event.data?.checkout?.order?.id || '',
      value: parseFloat(event.data?.checkout?.totalPrice?.amount) || 0,
      currency: event.data?.checkout?.currencyCode || 'EUR',
    }
  });
});

Point critique : dans le Custom Pixel, vous lisez le consentement actuel depuis la Customer Privacy API au moment du chargement — l'utilisateur a déjà fait son choix sur le storefront. Ce choix est accessible via window.Shopify.customerPrivacy.

Éviter le double tracking — canal natif Shopify vs GTM

C'est un angle mort fréquent : beaucoup de boutiques ont activé le canal Google natif de Shopify (dans Shopify Admin → Canaux de vente → Google) ET configuré GTM avec des balises GA4 et Google Ads. Résultat : chaque événement (view_item, add_to_cart, purchase) est envoyé deux fois.

ConfigurationRisqueSolution
Canal Google natif Shopify + balises GA4 dans GTM Sessions et conversions doublées dans GA4 Désactiver le canal natif Shopify OU supprimer la balise GA4 de GTM — jamais les deux actifs
Canal Google natif Shopify + Google Ads dans GTM Conversions comptées deux fois — Smart Bidding sur-optimisé sur mauvaise donnée Vérifier dans Google Ads → Diagnostics de conversion → colonnes "Toutes les conv." vs "Conv." — si les deux divergent fortement, suspicion de doublon
App CMP Shopify + template GTM de la même CMP Signaux de consentement contradictoires — comportement imprévisible Choisir une seule méthode : app Shopify OU template GTM, jamais les deux

Règle pratique : si vous gérez le tracking via GTM, désactivez toujours les intégrations natives Shopify pour les mêmes outils. Shopify Admin → Paramètres → Canaux de vente → Google → vérifiez que le suivi automatique est désactivé si GTM prend le relai.

Les 4 signaux Consent Mode v2 — ce qu'ils contrôlent exactement

SignalCe qu'il contrôleImpact si denied
ad_storage Cookies publicitaires Google (_gac, gclid, dclid) — tracking des clics Google Ads Impossible d'attribuer les conversions aux clics précis
analytics_storage Cookies analytics (_ga, _ga_XXXXXXX) — identification des utilisateurs pour GA4 Sessions GA4 non associées — données agrégées uniquement
ad_user_data Envoi des données utilisateur hashées vers Google pour Enhanced Conversions Enhanced Conversions non fonctionnelles — pas de correspondance email/téléphone
ad_personalization Utilisation des données pour la personnalisation publicitaire et les audiences de remarketing L'utilisateur n'est pas ajouté aux audiences de remarketing Google

Geo-targeting : Google recommande d'appliquer les defaults denied uniquement sur les régions EEE/UK si votre audience est globale. Configuration dans GTM avec le paramètre region: ['FR', 'DE', 'ES', 'IT', 'BE', ...] — cela évite de pénaliser les performances US où le consentement explicite n'est pas requis.

Microsoft Ads : si vous gérez des campagnes sur Bing/Microsoft Ads, la mise en conformité requiert également le Microsoft UET Consent Mode — un mécanisme similaire au Consent Mode v2 de Google, mais spécifique à Microsoft. Consentmo est l'une des rares CMPs certifiées pour les deux plateformes simultanément.

Vérification complète — 4 méthodes

✅ Checklist vérification Consent Mode v2 Shopify
  • Tag Assistant Companion → onglet Consent : refus = balises "Blocked" / acceptation = balises "Fired". Si les balises sont "Fired" même après refus, le Consent Mode n'est pas configuré correctement.
  • Paramètre gcs dans GA4 : DevTools → Réseau → filtrez sur "google-analytics" → gcs=G100 après refus, gcs=G111 après acceptation complète.
  • Test checkout complet : passez une commande test — vérifiez dans DevTools que les requêtes Google Ads et GA4 depuis le checkout incluent les signaux de consentement corrects.
  • Comparez taux d'acceptation CMP vs données GA4 : si votre CMP indique 65 % d'acceptation mais que vos sessions GA4 représentent seulement 40 % de vos sessions Shopify, votre signal de mise à jour ne s'exécute probablement pas correctement.

Erreurs fréquentes — le bandeau qui ne met pas à jour

L'erreur la plus destructrice : une CMP qui affiche un bandeau cookies fonctionnel mais ne transmet jamais le signal de mise à jour vers GTM.

ErreurSymptômeCauseCorrection
Signal update jamais envoyé GA4 affiche 30–40 % du trafic réel malgré un taux d'acceptation CMP élevé La CMP enregistre le choix dans sa BDD mais ne déclenche pas gtag('consent', 'update') Vérifier le template GTM — il doit être configuré avec déclencheur "Consent Initialization". Contactez votre CMP.
Defaults chargés après GTM Même les utilisateurs ayant refusé voient leurs données collectées lors de la première page Le code gtag('consent', 'default', ...) est placé après le snippet GTM Déplacer le code d'initialisation avant le snippet GTM dans theme.liquid
Mapping incomplet CMP → Consent Mode analytics_storage granted mais ad_user_data toujours denied La CMP ne mappe que les 2 signaux v1 Mettre à jour le template CMP dans GTM vers une version récente supportant les 4 signaux v2
Checkout non couvert Conversions purchase sans signaux de consentement — Enhanced Conversions non fonctionnelles sur les achats Consent Mode v2 configuré uniquement en storefront, pas dans le Custom Pixel Ajouter l'initialisation Consent Mode v2 dans le Custom Pixel (voir section 06)
Double tracking actif Conversions doublées dans Google Ads — rapports GA4 gonflés Canal natif Shopify + GTM actifs simultanément pour les mêmes outils Désactiver le canal natif Shopify si GTM prend le relai — vérifier via Google Ads → Diagnostics de conversion
Double configuration CMP Conflits entre les signaux selon les pages App CMP Shopify + template GTM de la même CMP en parallèle Choisir une seule méthode : app OU GTM

Décrivez-nous votre situation.

CMS utilisé, outils Google en place, symptômes observés — plus vous êtes précis, plus notre retour sera concret. Réponse sous 24h.

Parlez-nous de votre projet →

Réponse sous 24h · Sans engagement · Devis sur mesure

Questions fréquentes

Comment installer le Consent Mode v2 sur Shopify ?
En 3 étapes : (1) choisir une CMP compatible Shopify Customer Privacy API (Axeptio, Cookiebot, Pandectes, Consentmo), (2) ajouter les defaults gtag('consent', 'default', {...}) avec les 4 paramètres sur denied dans theme.liquid avant le snippet GTM, (3) installer le template GTM de votre CMP avec le déclencheur "Consent Initialization — Toutes les pages". Pour le checkout, initialisez le Consent Mode v2 séparément dans le Custom Pixel en lisant la Shopify Customer Privacy API.
Pourquoi mon bandeau est affiché mais GA4 ne reçoit pas les données des utilisateurs qui acceptent ?
C'est l'erreur la plus fréquente. Votre CMP affiche le bandeau et enregistre le choix — mais ne déclenche pas gtag('consent', 'update', ...) vers GTM. GTM reste en mode "denied" même pour les utilisateurs ayant accepté. Vérifiez dans Tag Assistant Companion → onglet Consent : si les signaux ne passent jamais à "granted" après acceptation, votre template CMP dans GTM n'est pas correctement configuré.
Quelle CMP choisir pour Shopify Consent Mode v2 en France ?
Axeptio est la plus utilisée par les marchands français — interface en français, support francophone, intégration Shopify native. Cookiebot est une alternative solide avec un template GTM officiel bien documenté. Pandectes, spécialisé Shopify, offre une intégration fine avec la Customer Privacy API pour les boutiques à fort volume. Consentmo se distingue si vous gérez également des campagnes Microsoft Ads. Vérifiez impérativement que votre CMP est sur la liste Google Certified CMPs.
Le Consent Mode v2 fonctionne-t-il dans le checkout Shopify ?
Pas automatiquement. Le checkout s'exécute dans un sandbox isolé — la configuration GTM storefront ne s'y applique pas. Vous devez initialiser le Consent Mode v2 dans le Custom Pixel en lisant window.Shopify.customerPrivacy.analyticsProcessingAllowed() et marketingAllowed(). Sans cette configuration spécifique, les conversions purchase arrivent dans Google Ads sans signaux de consentement.
Comment éviter le double tracking entre le canal natif Shopify et GTM ?
Choisissez une seule méthode de tracking pour chaque outil. Si GTM gère GA4 et Google Ads, désactivez les intégrations natives Shopify pour ces mêmes outils dans Shopify Admin → Canaux de vente. Vérifiez dans Google Ads → Diagnostics de conversion — si les colonnes "Toutes les conversions" et "Conversions" divergent fortement, vous avez probablement un doublon actif.
Équipe TagQueries — Experts en Consent Mode v2 et tracking Shopify
Publié le 14 mai 2026 · Mis à jour : 18 mai 2026
Go up