AccueilRessources → Écart ventes Shopify vs GA4

Écart entre ventes Shopify et GA4 : les 6 causes mesurables

Nicolas Malabre · Publié le 10 juillet 2026 · Lecture 7 min
L'écart entre les ventes de votre back-office Shopify et celles affichées par GA4 est un symptôme mesurable, pas une fatalité : 5 à 15 % d'écart en défaveur de GA4 est structurel (consentement refusé, adblockers, Safari) ; au-delà de 20 %, il y a presque toujours un défaut d'implémentation — purchase non déclenché, filtre trop large ou double propriété. Chaque cause se vérifie en quelques minutes.

Pourquoi les deux chiffres ne peuvent jamais être identiques ?

Shopify compte des commandes : chaque paiement validé écrit une ligne en base de données, sans dépendre du navigateur du client. GA4 compte des événements purchase : un signal émis par le navigateur (ou un serveur), qui doit survivre au consentement, aux bloqueurs, aux redirections de paiement et à l'implémentation elle-même. Le premier chiffre est comptable, le second est probabiliste. La question n'est donc pas « pourquoi il y a un écart » mais « mon écart est-il structurel ou pathologique, et de combien ».

Les 6 causes, de la plus fréquente à la plus sournoise

1. Le consentement refusé (structurel)

Un visiteur qui clique « Tout refuser » sur votre bannière ne doit pas être suivi — et s'il achète, sa commande existe dans Shopify mais pas dans GA4 (hors modélisation). Avec un taux de refus typique de 15 à 35 % en France, c'est la première source d'écart. Vérification : comparez votre taux de refus CMP avec votre écart ; s'ils sont du même ordre, une grande partie de l'écart est expliquée — et saine.

2. Adblockers et protections navigateur (structurel)

uBlock et consorts bloquent les appels vers google-analytics.com ; Safari (ITP) limite les cookies. Selon l'audience, 5 à 20 % des visiteurs sont concernés. Vérification : segmentez votre écart par navigateur dans GA4 — un déficit disproportionné sur Safari/iOS est la signature classique. C'est le problème qu'un envoi serveur dédupliqué résout le mieux.

3. Le purchase qui ne se déclenche pas partout (pathologique)

Paiements différés (virement, Klarna), retours depuis PayPal qui ne repassent pas par la page de confirmation, checkout modifié depuis Checkout Extensibility : autant de parcours où l'événement ne part jamais. Vérification : passez une commande test avec chaque moyen de paiement et regardez, dans l'onglet réseau, si l'appel /g/collect avec en=purchase part réellement.

4. Les sessions coupées par les redirections de paiement (pathologique)

Le client part vers PayPal ou sa banque (3-D Secure) et revient : sans configuration adaptée, GA4 ouvre une nouvelle session attribuée en referral au PSP — et selon l'implémentation, l'achat se rattache mal ou pas du tout. Vérification : cherchez paypal.com ou votre banque dans vos sources de sessions avec achat ; leur présence signale des exclusions de référence manquantes.

5. Les filtres et réglages GA4 (pathologique)

Trafic interne filtré trop largement, propriété de test qui reçoit les vraies commandes, ou l'inverse — deux propriétés qui se partagent les événements. Vérification : dans le code source et le réseau, comptez les tid=G-XXXX ; il ne doit y en avoir qu'un, celui de votre propriété principale.

1 / 8Sur 8 marques DTC françaises scannées en juin 2026, une avait deux propriétés GA4 actives en parallèle sur les mêmes pages — deux dashboards, deux vérités, et des décisions média prises sur des chiffres dont personne ne savait lesquels croire.

6. Fuseaux horaires et définitions (comparaison faussée)

Shopify et GA4 ne découpent pas forcément les journées sur le même fuseau, et « ventes » n'y a pas le même sens : commandes créées vs événements reçus, remboursements inclus ou non, taxes et port comptés différemment dans le value. Vérification : alignez les fuseaux dans les deux admins et comparez sur une semaine complète plutôt qu'au jour le jour.

Le tableau de diagnostic

CauseTypeSignatureCorrection
Consentement refuséStructurelÉcart ≈ taux de refus CMPConsent Mode V2 + modélisation
Adblockers / ITPStructurelDéficit concentré sur Safari/iOSCollecte server-side first-party
Purchase absent sur certains parcoursPathologiqueÉcart corrélé au moyen de paiementÉvénement serveur basé sur la commande
Redirections de paiementPathologiquePSP dans les sources de sessionsReferral exclusions + garde de session
Filtres / double propriétéPathologiqueDeux tid dans le réseauUne propriété unique, filtres audités
Fuseaux / définitionsComparaisonÉcart qui « bouge » selon la périodeAligner fuseaux et périmètres

Et une fois les causes identifiées ?

L'ordre de traitement compte : corrigez d'abord le pathologique (purchase manquant, doubles propriétés, filtres), puis réduisez le structurel avec une collecte server-side qui fait transiter les événements par votre propre domaine — l'événement purchase se déclenche alors côté serveur, sur la commande réelle, plus sur la bonne volonté du navigateur. C'est le périmètre exact du Tracking Fix, et l'effet se mesure en couverture d'événements avant/après, pas en promesses.

Un écart résiduel subsistera toujours — le consentement refusé reste refusé, et c'est normal. L'objectif n'est pas 0 % d'écart : c'est un écart connu, stable et documenté, sur lequel on peut piloter un budget sans se raconter d'histoires.

FAQ

Quel écart entre Shopify et GA4 est « normal » ?
5 à 15 % en défaveur de GA4 est structurel (consentement, adblockers, Safari). Au-delà de 20 %, cherchez un défaut d'implémentation : purchase non déclenché, filtre trop large ou double propriété.
GA4 peut-il afficher PLUS de ventes que Shopify ?
Oui — et c'est une alerte : purchase renvoyé au rechargement de la page de confirmation (pas de garde sur le transaction_id) ou deux balises GA4 qui envoient chacune l'événement. Le double comptage fausse tout.
Le server-side supprime-t-il l'écart ?
Il le réduit fortement, mais ne le supprime pas : le refus de consentement reste respecté. L'objectif réaliste est un écart résiduel maîtrisé, stable et documenté.
Dois-je plutôt faire confiance à Shopify ou à GA4 ?
Shopify pour le chiffre d'affaires réel (c'est votre comptabilité), GA4 pour le comportement et l'attribution. Le réflexe sain : définir Shopify comme source de vérité et mesurer en continu la couverture de GA4 par rapport à elle.
Nicolas Malabre

Nicolas MalabreMedia buyer senior — 10 ans d'achat média Google Ads & Meta. Je scanne des stacks e-commerce chaque semaine et je répare la couche de mesure des marques qui dépensent en publicité. Profil complet · Malt ↗

Votre écart est-il structurel ou pathologique ?

Je scanne votre stack avant le call — réseau, dataLayer, consentement — et je vous montre d'où vient chaque point d'écart.

Diagnostic gratuit — 30 min

Vous repartez avec le diagnostic, que l'on travaille ensemble ou non.