Plateformes e-commerce
Tracking Shopify et GA4 : Customer Events, GTM et sGTM en 2026
Référence du tracking Shopify : Customer Events, pixel custom, GTM, sGTM, événements GA4, Consent Mode v2 et Meta CAPI, avec renvois détaillés.
Par Ron Kopelman, consultant web analytics freelance — mis à jour le 2 novembre 2026
Sur Shopify, le tracking GA4 repose en 2026 sur deux couches : les Customer Events (Web Pixels API) pour le checkout, qui s’exécute dans un environnement isolé, et GTM web pour le reste du site. Un sGTM vient ensuite router proprement les événements vers GA4, Google Ads et Meta. Cette page est la fiche de référence : architecture, mapping des événements, limites et choix d’implémentation. Si vous voulez un setup déployé de bout en bout, voir le consultant tracking Shopify ; les pages de détail sont citées au fil du texte. Les enjeux communs à toutes les boutiques (marge, ROAS, conversions hors ligne) sont regroupés sur la page consultant analytics e-commerce. Une fois les événements en place, les indicateurs de pilotage e-commerce restent à définir.
Architecture Shopify en 2026
Le 13 août 2024, Shopify a cessé de faire tourner les personnalisations checkout.liquid sur les pages d’information, de livraison et de paiement. Les scripts GA4 ou GTM placés là ne s’exécutent plus. Pour les marchands Plus, checkout.liquid reste possible sur la page de remerciement et la page de statut de commande, Shopify indiquant qu’il prévoit d’étendre Checkout Extensibility à ces pages sans date annoncée. Règle pratique : aucun script analytics dans le checkout, tout passe par le pixel.
Les Customer Events sont exécutés dans un pixel sandboxé. Ce pixel reçoit les événements Shopify via analytics.subscribe, mais il n’accède ni au DOM de la page ni aux variables globales de votre thème. C’est la raison pour laquelle GTM web ne voit pas le tunnel de paiement.
Checkout Extensibility, qui permet d’ajouter des composants UI dans le checkout, est réservé à Shopify Plus. Pour le tracking de base, il n’est pas indispensable.
Le détail de cette architecture figure dans l’article complet sur le tracking Shopify.
Les trois options de mise en oeuvre
| Option | Principe | Avantage | Limite |
|---|---|---|---|
| App Google & YouTube | Application officielle gratuite, liée à une propriété GA4 | Rapide, sans code | Couverture d’événements partielle selon les sources, peu de contrôle, double comptage si un GTM pousse aussi purchase |
| Custom pixel + GTM | Code dans le Pixels Manager, envoi vers un endpoint first-party | Contrôle total, déduplication par event_id | Code à maintenir, recette complète à faire |
| sGTM hébergé (Stape, Addingwell) | Routage server-side, app Shopify pour l’installation | Envoi first-party, Enhanced Conversions, CAPI | Hébergement à payer, complexité accrue |
Le rôle de chaque couche est comparé dans Shopify Pixels vs GTM. Sur une boutique qui dépasse le stade de la vitrine, la combinaison custom pixel plus sGTM reste mon point de départ.
Événements standard et mapping GA4
Shopify expose 15 événements standard dans sa référence officielle. Le tableau les rapproche des événements GA4 recommandés.
| Événement Shopify | Équivalent GA4 | Remarque |
|---|---|---|
page_viewed | page_view | Ne pas doubler avec GTM web |
collection_viewed | view_item_list | Items à reconstruire depuis la collection |
product_viewed | view_item | |
product_added_to_cart | add_to_cart | |
product_removed_from_cart | remove_from_cart | |
cart_viewed | view_cart | |
search_submitted | search | Vérifier le nom du paramètre de recherche |
checkout_started | begin_checkout | |
checkout_contact_info_submitted | aucun standard | Événement custom si besoin |
checkout_address_info_submitted | aucun standard | Événement custom si besoin |
checkout_shipping_info_submitted | add_shipping_info | Sensible aux paiements express |
payment_info_submitted | add_payment_info | Sensible aux paiements express |
checkout_completed | purchase | Un seul envoi par commande |
alert_displayed, ui_extension_errored | aucun | Diagnostic, pas de conversion |
Shopify précise que le contenu de ces abonnements peut évoluer. Vérifiez la liste avant de figer votre taxonomie.
Extrait : un pixel custom qui pousse purchase
Dans un pixel, window.dataLayer désigne le dataLayer du pixel, pas celui de la page. La bonne pratique consiste donc à envoyer l’événement vers le sGTM, ou vers un GTM web chargé dans le pixel. L’extrait suivant montre le format. Les noms de champs sont à valider dans la référence Shopify avant mise en production.
analytics.subscribe('checkout_completed', (event) => {
const checkout = event.data.checkout;
const payload = {
event: 'purchase',
ecommerce: {
transaction_id: checkout.token, // ou l'identifiant de commande, à confirmer
value: Number(checkout.totalPrice.amount), // TTC, convention retenue
currency: checkout.currencyCode,
items: checkout.lineItems.map((li) => ({
item_id: li.variant.product.id,
item_name: li.title,
price: Number(li.variant.price.amount),
quantity: li.quantity,
})),
},
};
fetch('https://metrics.votredomaine.fr/collect', {
method: 'POST',
body: JSON.stringify(payload),
keepalive: true,
});
});
Deux points à retenir. D’abord, l’identifiant de transaction doit être identique côté pixel, côté sGTM et côté Meta pour permettre la déduplication. Ensuite, aucune donnée personnelle en clair ne doit transiter dans ce payload.
Limites à connaître
- Sandbox : pas d’accès au DOM ni aux cookies du site principal. Selon les retours de la communauté Shopify,
window.Shopify.customerPrivacyn’est pas disponible dans le sandbox ; il faut passer par l’API Customer Privacy du pixel. - Mode aperçu GTM : il ne voit pas les événements du checkout. Pour déboguer, utilisez le contexte de l’iframe du pixel dans les DevTools, ou le DebugView GA4.
- Plus et non-Plus : l’UI custom du checkout est réservée à Plus. Le Pixels Manager, lui, sert à toutes les formules (à confirmer dans la documentation de votre plan).
- Paiements express : Shop Pay, Apple Pay et Google Pay peuvent court-circuiter
add_shipping_infoetadd_payment_info. Testez chaque méthode. - TVA et devises :
valuedoit suivre une convention unique (TTC recommandé, avec un paramètretaxséparé). La devise doit être poussée sur chaque événement, surtout avec Shopify Markets.
Consentement : Customer Privacy API et Consent Mode v2
Le pixel déclare ses finalités dans shopify.extension.toml, section customer_privacy (analytics, marketing, sale_of_data). Déclarez-les explicitement pour ne pas dépendre des valeurs par défaut. Dans le code du pixel, init.customerPrivacy donne l’état initial du consentement, et visitorConsentCollected signale les changements.
La correspondance vers Consent Mode v2 (analytics vers analytics_storage, marketing vers ad_storage et compagnie) circule surtout dans la communauté. Validez-la contre la documentation Google avant de la mettre en production. Pour le cadre général, lisez Consent Mode v2 en pratique et le comparatif des CMP.
Enhanced Conversions et Meta CAPI
Enhanced Conversions transmet des identifiants hachés (email, téléphone) avec l’événement purchase. Sur Shopify, cela passe idéalement par le sGTM. La même logique vaut pour Meta : l’app Meta Channel est simple à activer mais peu contrôlable ; la CAPI via sGTM permet une déduplication propre avec le pixel navigateur, en utilisant l’identifiant de commande comme event_id.
Si l’app Google et un GTM poussent tous deux purchase, les conversions sont comptées deux fois. Gardez une seule source par conversion. Voir Enhanced Conversions et Meta CAPI server-side.
Recette
- Vérifiez la liste des événements dans le Pixels Manager, avec une seule source par conversion.
- Parcourez la fiche produit, l’ajout panier, le checkout et la confirmation en navigation privée.
- Répétez sur iOS Safari et Android Chrome, consentement accepté puis refusé.
- Testez Shop Pay et Apple Pay séparément.
- Comparez les commandes de test avec le back-office : un achat, un
purchase, untransaction_id. - Contrôlez la déduplication dans GA4 et dans Meta Events Manager.
Foire aux questions
Faut-il garder l’app Google & YouTube ?
Pour une boutique modeste, elle permet de démarrer vite. Dès que vous avez besoin de contrôle sur les paramètres, de déduplication ou de server-side, passez en custom pixel et désactivez l’app pour la conversion concernée.
Shopify Plus change-t-il la méthode ?
La méthode reste la même. Plus ouvre Checkout Extensibility, utile pour des besoins de checkout très spécifiques (fidélité, abonnements, B2B).
Peut-on tracker le checkout avec GTM web ?
Non. Le checkout est isolé dans un environnement sandboxé. Le tracking du tunnel passe par les Customer Events ; GTM web couvre le reste du site. Le data layer côté page reste pertinent pour tout ce qui précède le panier.
Sources
Voir aussi : WordPress, Webflow, HubSpot CMS, Wix / Squarespace, Drupal, SPA / headless, Autres plateformes — ou le tableau comparatif de toutes les plateformes.