GTM sur Shopify : Installation complète avec Custom Pixel

L'architecture GTM sur Shopify a changé en 2024–2025 avec la dépréciation de checkout.liquid. Ce guide couvre la méthode Custom Pixel (Customer Events) valide en 2026. Vérifiez que votre boutique a bien migré vers Checkout Extensibility avant de commencer.

Google Tag Manager Shopify — 2026

Installation pas à pas, code Custom Pixel complet, limitations sandbox, Consent Mode v2 et comparatif GTM vs apps (Elevar, Littledata) — méthode valide sur tous les plans Shopify.

Google Tag Manager Shopify · GTM Shopify · Shopify GTM · GTM Shopify checkout · Install GTM Shopify · Custom Pixel GTM

📌 GTM Shopify en 2026 — ce qui a changé et comment faire

La méthode d'installation GTM sur Shopify a changé. L'ancienne méthode (injection dans theme.liquid) ne couvre plus le checkout depuis la migration Checkout Extensibility. En 2026, GTM s'installe via les Custom Pixels (Customer Events) — disponibles sur tous les plans Shopify, y compris Basic.

Ce que ça change : GTM s'exécute dans un iframe sandboxé isolé. Les triggers DOM natifs ne fonctionnent plus. Seuls les Custom Event triggers basés sur les événements Shopify fonctionnent. Le mode Preview GTM ne fonctionne pas dans ce contexte.

En bref : pour installer Google Tag Manager sur Shopify en 2026 — Paramètres → Customer Events → Ajouter un pixel personnalisé. Chargez GTM dans le code du pixel et abonnez-vous aux événements Shopify standard. Point critique souvent ignoré : Shopify ne déclenche le Custom Pixel que si l'utilisateur a accordé les cookies Marketing — votre tracking checkout peut être silencieusement inactif si ce paramètre n'est pas configuré.

Ce qui a changé — la fin de checkout.liquid et la migration obligatoire

Shopify a déprécié checkout.liquid avec Checkout Extensibility :

  • Août 2024 : dépréciation des pages Information, Expédition et Paiement via checkout.liquid
  • Janvier 2025 : migration automatique des stores non migrés
  • Août 2025 : dépréciation des pages Merci et Statut de commande — les scripts injectés via checkout.liquid cessent de fonctionner

Conséquence directe : si vous n'avez pas migré, votre tracking checkout est probablement incomplet ou cassé depuis fin 2025. C'est la cause la plus fréquente des baisses de conversions inexpliquées sur les boutiques Shopify en 2026.

⚠️
Vérifiez votre migration : Admin Shopify → Paramètres → Customer Events. Si vous ne voyez pas votre pixel GTM dans cette liste, votre tracking checkout n'est pas opérationnel avec la nouvelle architecture.

Les 2 méthodes en 2026 — comparaison

theme.liquid (ancienne méthode)Custom Pixel — Customer Events ✅
Pages couvertesStorefront uniquement (hors checkout)Toutes les pages + checkout + page Merci
Plans ShopifyTous (checkout uniquement Plus)Tous les plans — Basic inclus
Mode Preview GTM✅ Fonctionne❌ Ne fonctionne pas (sandbox)
Triggers DOM natifs✅ Clic, scroll, visibility…❌ Non disponibles dans le sandbox
Support Shopify❌ Déprécié✅ Méthode officielle recommandée
Tracking achat complet❌ Incomplet sans checkout.liquid✅ checkout_completed disponible

Recommandation : utilisez les deux méthodes en parallèle — le Custom Pixel pour le tracking checkout et les conversions, le snippet dans theme.liquid pour les interactions on-site (heatmap, scroll, clics).

Votre tracking Shopify est cassé depuis la migration Checkout Extensibility ?

Parlez-nous de votre projet →

Installer GTM sur Shopify via Custom Pixel — pas à pas

  • 1
    Récupérez votre ID de conteneur GTM

    Dans Google Tag Manager → sélectionnez votre conteneur → l'ID au format GTM-XXXXXXX est affiché en haut de l'interface.

  • 2
    Accéder aux Customer Events dans Shopify

    Admin Shopify → ParamètresCustomer EventsAjouter un pixel personnalisé. Donnez un nom explicite — ex : "Google Tag Manager".

  • 3
    Collez le code GTM Custom Pixel

    Dans l'éditeur de code du pixel, collez le code suivant en remplaçant GTM-XXXXXXX par votre ID :

    // Initialisation du DataLayer et de GTM
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    
    // Consent Mode v2 — valeurs par défaut (denied pour l'EEE)
    gtag('consent', 'default', {
      'ad_storage': 'denied',
      'analytics_storage': 'denied',
      'ad_user_data': 'denied',
      'ad_personalization': 'denied',
      'wait_for_update': 500
    });
    
    // Chargement du conteneur GTM
    (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');
    
    // Abonnement aux Customer Events Shopify
    analytics.subscribe("product_viewed", (event) => {
      window.dataLayer.push({ ecommerce: null });
      window.dataLayer.push({
        event: "view_item",
        ecommerce: {
          currency: event.data?.productVariant?.price?.currencyCode || 'EUR',
          value: parseFloat(event.data?.productVariant?.price?.amount) || 0,
          items: [{
            item_id: event.data?.productVariant?.sku || '',
            item_name: event.data?.productVariant?.product?.title || '',
            item_category: event.data?.productVariant?.product?.type || '',
            price: parseFloat(event.data?.productVariant?.price?.amount) || 0,
            quantity: 1
          }]
        }
      });
    });
    
    analytics.subscribe("checkout_started", (event) => {
      window.dataLayer.push({ ecommerce: null });
      window.dataLayer.push({
        event: "begin_checkout",
        ecommerce: {
          currency: event.data?.checkout?.currencyCode || 'EUR',
          value: parseFloat(event.data?.checkout?.totalPrice?.amount) || 0
        }
      });
    });
    
    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,
          tax: parseFloat(event.data?.checkout?.totalTax?.amount) || 0,
          shipping: parseFloat(event.data?.checkout?.shippingLine?.price?.amount) || 0,
          currency: event.data?.checkout?.currencyCode || 'EUR',
          items: (event.data?.checkout?.lineItems || []).map(item => ({
            item_id: item.variant?.sku || item.variant?.id || '',
            item_name: item.title || '',
            item_category: item.variant?.product?.type || '',
            price: parseFloat(item.variant?.price?.amount) || 0,
            quantity: item.quantity || 1
          }))
        }
      });
    });
  • 4
    Configurer les permissions du pixel

    Vérifiez les paramètres de confidentialité dans l'éditeur. Cliquez Enregistrer puis Connecter. Le statut du pixel doit passer à "Connecté".

  • 5
    Vérifiez les paramètres de consentement du pixel

    Dans Customer Events, chaque pixel a un paramètre "Privacy & Consent". Vérifiez la valeur configurée :

    • "Not required" (par défaut) : le pixel se charge pour tous les visiteurs, indépendamment du consentement
    • "Required" : le pixel ne se charge que si l'utilisateur a accordé les cookies Marketing — votre tracking checkout sera silencieusement inactif pour les utilisateurs qui refusent ou n'interagissent pas avec le bandeau

    Pour l'EEE, la valeur "Required" est généralement recommandée pour la conformité RGPD, mais assurez-vous que votre CMP gère correctement la mise à jour du consentement.

🚨
Point critique souvent ignoré : Shopify ne déclenche le Custom Pixel que si l'utilisateur a accordé les cookies Marketing (selon la configuration du pixel). Si votre pixel est configuré en "Required" et que votre CMP n'envoie pas le signal de consentement correctement, votre tracking checkout est silencieusement inactif — même pour les utilisateurs qui acceptent. Vérifiez en DevTools : si aucun push DataLayer n'apparaît après un achat, commencez par vérifier ce paramètre. Source : documentation Profitmetrics / Shopify Help.

S'abonner aux Customer Events Shopify — liste complète

Événement ShopifyÉquivalent GA4Données disponibles
page_viewedpage_viewURL, titre, referrer
product_viewedview_itemProduit, variante, prix, SKU, type de produit
product_added_to_cartadd_to_cartProduit, quantité, variante, panier total
cart_viewedview_cartContenu du panier, total
checkout_startedbegin_checkoutLignes de commande, total, devise
checkout_address_info_submittedadd_shipping_infoAdresse, méthode d'expédition
payment_info_submittedadd_payment_infoMéthode de paiement
checkout_completedpurchaseOrder ID, total, lignes, taxes, livraison
search_submittedsearchTerme recherché
collection_viewedview_item_listNom de la collection, produits affichés

Configurer GTM pour recevoir les événements Shopify

Créer les Custom Event triggers

Dans GTM → Déclencheurs → Nouveau → Type : Événement personnalisé. Nom de l'événement : exactement le même que dans votre push — ex : purchase, view_item, begin_checkout.

Variables DataLayer pour les données e-commerce

Variables → Nouvelle → Variable de couche de données. Pour récupérer les données de transaction :

  • ecommerce.transaction_id → Transaction ID
  • ecommerce.value → Valeur de commande
  • ecommerce.currency → Devise

Enrichir le DataLayer — item_category et dimensions personnalisées

Le DataLayer de base capte les champs essentiels. Pour des rapports GA4 plus riches, enrichissez les items avec des champs supplémentaires lors du push :

  • item_category : type de produit Shopify (item.variant?.product?.type) — déjà inclus dans le code ci-dessus
  • item_category2 : collection principale du produit — nécessite un accès à l'API Storefront pour récupérer les collections
  • discount_amount : montant remisé pour analyser l'impact des codes promo
  • coupon : code promo appliqué (event.data?.checkout?.discountApplications[0]?.title)

Ces paramètres débloquent des rapports GA4 comme "quelles catégories de produits génèrent le plus de revenu" ou "quels codes promo produisent des acheteurs récurrents".

Limitations du sandbox Custom Pixel

Fonctionnalité GTMFonctionne dans Custom Pixel ?Alternative
Custom Event triggers (DataLayer)✅ Oui
Mode Preview GTM❌ NonDevTools Console + Shopify Pixel Helper
Clic triggers (DOM)❌ NonÉvénements Shopify custom ou theme.liquid
Scroll Depth trigger❌ NonImplémenter dans theme.liquid
Element Visibility trigger❌ NonImplémenter dans theme.liquid
History Change trigger (SPA)❌ NonÉcouter page_viewed Shopify
Balises GA4✅ Oui
Balises Google Ads✅ Oui
Meta Pixel (via GTM)✅ Oui
💡
Stratégie hybride recommandée : Custom Pixel pour le tracking checkout et les conversions critiques. Snippet dans theme.liquid pour les interactions on-site (scroll, clics sur les pages produit). Les deux coexistent sans conflit.

Architecture recommandée

  • Initialisation dans le Custom Pixel : tous les paramètres sur denied par défaut (code inclus dans l'étape 3).
  • Mise à jour après consentement : votre CMP (Axeptio, Cookiebot, Cookieyes) doit être configurée avec l'intégration Shopify dédiée pour gérer la mise à jour des 4 paramètres.
  • Vérification : DevTools → Réseau → en refus, gcs=G100 doit être présent.

Pour la configuration complète : Consent Mode v2 sur Shopify — guide complet →

Déboguer GTM sur Shopify — sans mode Preview

  • 1
    DevTools Console — vérification des pushes DataLayer

    F12 → onglet Console. Sur la page que vous souhaitez tester, tapez dataLayer. Vous verrez les pushes de votre Custom Pixel. Sur la page produit : cherchez event: "view_item". Sur la page de confirmation : cherchez event: "purchase" avec un transaction_id non vide.

  • 2
    Test avec Bogus Gateway — méthode officielle Shopify

    Pour tester le tracking sur la page de confirmation sans passer par un vrai paiement : Admin Shopify → Paramètres → Paiements → activer Bogus Gateway (mode test Shopify). Passez une commande fictive avec le numéro de carte 1 (qui simule une transaction réussie). Vérifiez dans DevTools que le push checkout_completed se déclenche bien avec les bonnes données. Désactivez le Bogus Gateway après les tests.

  • 3
    Shopify Pixel Helper — vérification des événements Customer Events

    L'extension Chrome Shopify Pixel Helper (Chrome Web Store) affiche les événements Customer Events déclenchés sur chaque page — utile pour vérifier que Shopify envoie bien les événements à votre pixel avant même de regarder GTM.

  • 4
    Vérifiez les doublons avec les apps natives Shopify

    Point souvent négligé : si vous avez activé l'intégration native Shopify "Google & YouTube" et GTM Custom Pixel, les événements peuvent être envoyés deux fois — une fois par l'app native, une fois par GTM. Cela donne des conversions doublées dans Google Ads et GA4. Vérifiez dans DevTools → onglet Réseau → filtrez sur "google-analytics" : chaque événement doit apparaître une seule fois. De même pour Meta : l'app native Meta + Meta Pixel via GTM = double fire. Choisissez un seul canal par plateforme.

GTM vs apps Shopify — que choisir en 2026 ?

GTM (Custom Pixel)ElevarLittledataAnalyzify
Coût Gratuit (GTM) + hébergement sGTM si server-side (15–60 €/mois) 150–500 €/mois 99–299 €/mois 99–299 €/mois
Setup technique Élevé — nécessite GTM + DataLayer + configuration balises Faible — clé en main Faible — plugin Shopify Moyen
Plateformes trackées Toutes (Meta, Google Ads, GA4, TikTok, LinkedIn, Klaviyo…) Meta, Google Ads, GA4, Klaviyo, Snap, TikTok GA4, Google Ads, Meta, Klaviyo GA4, Meta, Google Ads
DataLayer e-commerce Manuel (ou enrichi via code ou plugin) ✅ Automatique + enrichi ✅ Automatique ✅ Automatique
Server-side tracking ✅ Via Stape (config manuelle) ✅ Intégré ✅ Intégré ⚠️ Partiel
Paiements alternatifs (Shop Pay, PayPal) ⚠️ Configuration spécifique requise ✅ Natif ✅ Natif ⚠️ Partiel
⚡ Tableau de décision — GTM ou app Shopify ?
Uniquement GA4 + Meta + Google Ads, solution rapide sans compétence technique : Littledata ou Analyzify. Opérationnel en quelques heures.
Gros budget Ads (>10K€/mois), plusieurs plateformes, meilleur ROI data : Elevar. La récupération de données compense rapidement l'abonnement.
Agence gérant plusieurs clients, besoins non standards, events custom : GTM. Contrôle total, pas d'abonnement mensuel, réutilisable sur tous vos clients.
Vous débutez sur Shopify avec un budget limité : GTM via Custom Pixel. Gratuit, suffisant pour démarrer.
→ GTM et les apps ne sont pas mutuellement exclusifs — Elevar repose lui-même sur GTM en interne.

Tracking e-commerce GA4 complet sur Shopify

✅ Checklist tracking e-commerce Shopify + GTM + GA4
  • purchase : transaction_id est unique (ID de commande Shopify), value correspond au montant TTC, currency correct
  • Pas de doublons : l'événement purchase ne se déclenche qu'une seule fois par commande. Vérifiez dans GA4 → Explorations → par Transaction ID
  • Pas de double-fire avec apps natives : désactivez l'intégration native Shopify Google/Meta si vous trackez via GTM — sinon chaque événement est envoyé deux fois
  • Bogus Gateway testé : une commande de test a été passée et le push purchase s'est bien déclenché avec les bonnes données
  • item_category renseigné : type de produit Shopify mappé dans le DataLayer pour les rapports e-commerce GA4
  • GA4 Enhanced Measurement : désactivez "Achat" dans Enhanced Measurement de GA4 si vous envoyez manuellement l'événement purchase — sinon double comptage possible
  • Consentement Custom Pixel vérifié : paramètre Privacy & Consent du pixel configuré selon votre stratégie RGPD

Si vous avez besoin d'aller plus loin — récupérer les conversions bloquées par les adblockers et iOS 14 — l'étape suivante est le server-side tracking Shopify. GTM client-side et server-side coexistent sur la même boutique.

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 GTM sur Shopify en 2026 — checkout inclus ?
Via les Custom Pixels : Paramètres → Customer Events → Ajouter un pixel personnalisé. Collez le code GTM avec les abonnements aux événements Shopify. Cette méthode couvre toutes les pages y compris le checkout, disponible sur tous les plans. L'ancienne méthode (theme.liquid) ne couvre plus le checkout depuis la dépréciation de checkout.liquid en 2025.
Faut-il Shopify Plus pour installer GTM sur le checkout ?
Non. Depuis la migration Checkout Extensibility, les Custom Pixels sont disponibles sur tous les plans Shopify — Basic, Shopify, Advanced et Plus.
Pourquoi le mode Preview GTM ne fonctionne pas sur Shopify ?
Le Custom Pixel s'exécute dans un iframe sandboxé isolé de la fenêtre principale — GTM Preview Mode ne peut pas s'y connecter. Pour déboguer : DevTools → Console → dataLayer pour voir les pushes, Shopify Pixel Helper pour vérifier les Customer Events, et Bogus Gateway pour simuler une commande complète sans paiement réel.
Mon tracking checkout ne fonctionne pas — par où commencer ?
Vérifiez d'abord le paramètre Privacy & Consent de votre Custom Pixel dans Customer Events — si configuré en "Required", Shopify ne déclenche le pixel que si l'utilisateur a accordé les cookies Marketing. Ensuite : Bogus Gateway → test commande → DevTools → vérifiez que le push checkout_completed apparaît. Vérifiez aussi l'absence de double-fire avec les apps natives Shopify Google/Meta.
GTM Shopify et Consent Mode v2 — comment configurer ?
Dans le code du Custom Pixel, initialisez tous les paramètres sur denied avant le chargement de GTM (exemple dans l'étape 3). Configurez votre CMP avec l'intégration Shopify dédiée pour la mise à jour des paramètres après le choix de l'utilisateur. Vérifiez que gcs=G100 apparaît dans les requêtes réseau en cas de refus. Guide complet : Consent Mode v2 sur Shopify →
Équipe TagQueries — Experts en tracking analytics et GTM Shopify
Publié le 8 mai 2026 · Mis à jour : mai 2026
Go up