# Les achats GA4 ne correspondent pas à Shopify ? La solution {#post-title}

[cPixel](/fr/blog/#blog-cpixel)

Par [B2B Gold](/about/#how-we-write) Publié le 24 septembre 2026 Mis à jour le 25 septembre 2026 [Traduit de l’anglais avec des outils d’IA](/blog/ga4-shopify-purchases/)

## Pourquoi GA4 ne correspond-il pas aux commandes de Shopify ? {#why-doesnt-ga4-match-shopifys-orders}

GA4 et Shopify ne comptent pas la même chose : Shopify enregistre chaque commande, tandis que GA4 n’enregistre que les événements d’achat qu’un navigateur ou un serveur lui envoie. GA4 en compte moins quand les clients refusent les cookies analytiques, bloquent la balise de Google ou qu’une balise d’achat échoue, et en compte trop quand deux balises rapportent une même commande sous des identifiants différents. Comparez des commandes, pas des sessions, et vérifiez les identifiants de transaction.

Un certain écart est normal. La [page des écarts](https://help.shopify.com/en/manual/reports-and-analytics/discrepancies) de Shopify liste les causes habituelles : Google ne peut compter que les visiteurs dont le navigateur exécute JavaScript et accepte les cookies, les extensions de navigateur peuvent arrêter le suivi de Google Analytics pour les sessions et les achats, et les deux outils peuvent rapporter dans des fuseaux horaires différents.

|  | Shopify | GA4 |
| --- | --- | --- |
| Ce qu’il compte | Chaque commande, depuis l’enregistrement de la commande | Les événements d’achat qu’une balise ou un serveur envoie |
| Clients qui refusent les cookies analytiques | Comptés | Non comptés là où le consentement est requis |
| Bloqueurs de publicités et extensions de confidentialité | Aucun effet | Peuvent bloquer la balise de Google |
| Revenu | **Total sales** ajoute taxes, droits, livraison et frais | Ce que la balise envoie comme valeur d’achat |
| Remboursements | Soustraits le jour de leur traitement | Soustraits seulement si un événement de remboursement est envoyé |

Sources : les [rapports de ventes](https://help.shopify.com/en/manual/reports-and-analytics/shopify-reports/report-types/default-reports/sales-report) de Shopify et la [référence de l’événement d’achat](https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtag#purchase) de Google, vérifiées le 24 septembre 2026.

## Comment Shopify envoie-t-il les achats à GA4 ? {#how-does-shopify-send-purchases-to-ga4}

Via l’application Google & YouTube, si vous utilisez la voie propre à Shopify. Vous connectez une propriété GA4 dans l’application ([Shopify](https://help.shopify.com/en/manual/online-sales-channels/marketplaces/google/getting-setup/connect)), et la balise Google qu’elle installe envoie à GA4 les événements de boutique, de panier, de paiement et d’achat depuis le navigateur du client ([Google](https://support.google.com/google-ads/answer/13494537)).

La [liste des événements que l’application envoie](https://developers.google.com/tag-platform/gtagjs/reference/shopify-event-parameters) de Google (mise à jour le 28 juillet 2026) va de `page_view` et `view_item` jusqu’à `begin_checkout` et `add_payment_info`, puis `purchase`. Elle n’a aucun événement de remboursement. Le pixel de l’application est listé sous **Settings** → **Customer events**, et Shopify charge les pixels sur la boutique, le paiement, la page de remerciement et la page d’état de la commande ([pixels overview](https://help.shopify.com/en/manual/promoting-marketing/pixels/overview)).

L’achat lui-même dépend de l’[événement `checkout_completed`](https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_completed) de Shopify. Il se déclenche une fois par paiement, généralement sur la page de remerciement, ou sur la première page d’offre de vente incitative si vous en montrez une. Si cette page ne se charge pas, l’événement ne se déclenche pas du tout.

Une balise GA4 collée dans Additional scripts n’atteint plus l’achat. Cela s’est arrêté quand Shopify a remplacé l’ancienne page de remerciement, et la date limite pour les boutiques hors Plus était le 26 août 2026 (voir [l’arrêt des Additional scripts](/fr/blog/shopify-additional-scripts-tracking/)). Une balise dans votre thème ne peut pas non plus l’atteindre, car la mise en page d’un thème ne s’applique qu’aux [pages hors paiement](https://shopify.dev/docs/storefronts/themes/architecture/layouts). Le suivi sur le paiement d’aujourd’hui passe par les pixels d’application et les pixels personnalisés, comparés dans [pixels d’application et pixels personnalisés](/fr/blog/shopify-app-pixels-vs-custom-pixels/).

## Qu’est-ce qui fait que GA4 rate des achats ? {#what-makes-ga4-miss-purchases}

Tout ce qui empêche l’événement d’achat de quitter le navigateur du client : consentement refusé, balise bloquée, page de remerciement qui ne se charge jamais, ou balise qui ne s’exécute plus.

- **Consentement refusé.** Là où vous exigez le consentement, généralement l’EEE et le Royaume-Uni, Shopify n’exécute un pixel que lorsque le client a donné les permissions dont il a besoin, et les nouveaux pixels exigent par défaut les permissions analytique et marketing ([Shopify](https://help.shopify.com/en/manual/promoting-marketing/pixels/overview)). Un client qui refuse est une commande dans Shopify et rien dans GA4.
- **Une bannière qui ne prévient jamais Shopify.** Votre bannière de consentement doit transmettre le choix du client à la Customer Privacy API de Shopify. Dans un [fil](https://community.shopify.com/t/google-youtube-app-not-sending-purchase-events-to-ga4-after-reinstallation/660780) de la Communauté d’août 2026, une boutique européenne avait des pages vues mais aucun achat dans GA4 après avoir réinstallé l’application Google & YouTube. Les réponses ont retracé cela jusqu’à une bannière qui ne transmettait jamais le consentement à Shopify, si bien que le pixel de l’application restait bloqué au paiement pendant qu’une balise du thème continuait d’envoyer des pages vues.
- **Balises bloquées.** Les extensions de navigateur, bloqueurs de publicités compris, peuvent arrêter le suivi de Google Analytics pour les sessions et les achats, comme le note la page des écarts de Shopify.
- **La page ne se charge jamais.** Un client qui paie mais n’atteint jamais la page de remerciement, ou dont la page de vente incitative échoue, ne déclenche aucun `checkout_completed`.
- **Un identifiant de transaction vide.** GA4 traite chaque achat envoyé avec un `transaction_id` vide comme une copie du premier et abandonne les autres ([Google](https://support.google.com/analytics/answer/12313109)).
- **Ce n’est pas encore arrivé.** GA4 peut mettre 24 à 48 heures pour traiter les données, et les rapports peuvent changer entre-temps ([fraîcheur des données](https://support.google.com/analytics/answer/11198161)).

## Qu’est-ce qui fait que GA4 en compte trop ? {#what-makes-ga4-count-too-many}

Deux balises qui envoient le même achat à une même propriété GA4 sous des identifiants de transaction différents. Google ne documente la déduplication que pour les achats qui partagent un identifiant de transaction, et seulement sur les flux web.

Le second expéditeur est généralement l’un de ceux-ci : l’application Google & YouTube plus la balise de Google ou Tag Manager restés dans le thème, un pixel personnalisé, ou une autre application qui envoie au même Measurement ID. Le guide de Google sur l’application vous demande de vérifier les balises en double quand vous avez des conversions à la fois dans l’application et dans la boutique ou un pixel personnalisé ([Google](https://support.google.com/google-ads/answer/13494537)), et le [guide de migration](https://help.shopify.com/en/manual/promoting-marketing/pixels/pixel-migration) de Shopify nomme le suivi du même événement plus d’une fois comme un problème courant. Dans un [fil](https://community.shopify.com/t/why-is-ga4-tracking-showing-duplicate-purchases-on-my-website/197089) de la Communauté de 2023, des commerçants faisant tourner GA4 à la fois via Tag Manager et le canal Google de Shopify ont rapporté des achats et un revenu doublés, et l’un d’eux a corrigé cela en mettant en pause la copie de Tag Manager.

Deux schémas le trahissent :

- **Une commande, deux identifiants de transaction.** Par exemple, une balise envoie l’ID de commande et une autre le numéro de commande, donc GA4 voit deux ventes.
- **Pages vues doublées alors que le revenu semble correct.** Deux expéditeurs qui utilisent le même identifiant de transaction sont dédupliqués sur l’achat, mais les pages vues et les ajouts au panier n’ont pas d’identifiant à faire correspondre, donc ils doublent.

Le même problème sur Meta et TikTok est traité dans [pourquoi Meta compte les achats deux fois](/fr/blog/duplicate-purchases-meta-shopify/).

## Le Measurement Protocol peut-il combler l’écart ? {#can-the-measurement-protocol-fill-the-gap}

Partiellement. Le Measurement Protocol de Google permet à un serveur d’envoyer des événements GA4 comme l’achat, donc une commande peut atteindre GA4 quand la balise navigateur ne l’a pas fait, mais Google l’a conçu pour s’ajouter à la balise Google, pas pour la remplacer.

Ce que dit la documentation de Google (vérifiée le 24 septembre 2026) :

- Le [Measurement Protocol](https://developers.google.com/analytics/devguides/collection/protocol/ga4) est conçu pour compléter la collecte par balise, et envoyer des événements avec lui seul peut ne donner qu’un rapport partiel.
- Pour un flux web, le `client_id` doit correspondre à l’identifiant que la balise Google a posé sur votre site ([sending events](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events)).
- Un événement serveur ne partage la source, le support et la campagne de la visite que s’il porte le `session_id` de cette visite et arrive dans les 24 heures suivant le début de la session ([use cases](https://developers.google.com/analytics/devguides/collection/protocol/ga4/use-cases)).
- Les événements peuvent être antidatés jusqu’à 72 heures.
- Le point de terminaison ne renvoie aucune erreur HTTP, même pour des événements malformés, et le serveur de validation de Google ne vérifie pas la clé API ([validating events](https://developers.google.com/analytics/devguides/collection/protocol/ga4/validating-events)). Une clé erronée échoue silencieusement.

Donc un achat serveur aide contre les balises bloquées et les pages de remerciement qui ne se chargent jamais, et il peut envoyer les remboursements, absents de la liste de Google pour l’application Google & YouTube. Il ne peut rien contre le consentement : déplacer l’achat d’un client qui a refusé vers un serveur ne le rend pas consenti pour autant. Il a aussi besoin d’un identifiant client et d’un identifiant de session venant du navigateur du client pour atterrir dans la bonne visite, ce qui mène au problème suivant. Sur le fonctionnement des événements serveur sur d’autres plateformes, voir [le suivi côté serveur sur Shopify](/fr/blog/server-side-tracking-shopify/).

## Pourquoi GA4 affiche-t-il (not set) après le suivi côté serveur ? {#why-does-ga4-show-not-set-after-server-side-tracking}

Parce que le serveur a envoyé des événements que GA4 n’a pas pu relier à une visite. GA4 tire la source et la campagne d’un événement Measurement Protocol de ce que la balise Google a recueilli dans la même session, et sa localisation des événements taggés antérieurs du même visiteur, sauf si le serveur en envoie une. Sans identifiant client et identifiant de session correspondants, ces colonnes affichent (not set).

La documentation de Google (vérifiée le 24 septembre 2026) donne les règles :

- Pour des événements Measurement Protocol rapportés en (not set) / (not set), la solution de Google est d’envoyer le `session_id` avec une valeur valide venant de l’événement côté client ([Google](https://support.google.com/analytics/answer/9900444)) ; la limite de 24 heures ci-dessus s’applique toujours.
- GA4 joint la localisation et les informations d’appareil les plus récentes du balisage aux événements Measurement Protocol portant le même `client_id` ([changelog](https://developers.google.com/analytics/devguides/collection/protocol/ga4/changelog)). Un serveur peut envoyer lui-même la localisation dans `user_location` ou `ip_override` ; sans l’un ou l’autre, GA4 ne la tire que du balisage ([reference](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference)).

Donc la cause habituelle est un visiteur dont la balise Google n’a jamais tourné, typiquement parce qu’un bloqueur l’a arrêtée : GA4 n’a rien à joindre, et si le serveur envoie un identifiant client inventé, GA4 enregistre un nouvel utilisateur sans source ni localisation. Les solutions découlent des règles de Google : envoyez l’identifiant client et l’identifiant de session que la balise Google a posés, envoyez rapidement, et là où le consentement le permet, envoyez la localisation du client dans `user_location` ou `ip_override`. Notez la date à laquelle vous avez changé votre configuration, et laissez les jours autour de celle-ci hors des comparaisons avant/après.

## Comment vérifier que GA4 reçoit les achats ? {#how-do-i-check-ga4-is-receiving-purchases}

Passez une vraie commande et regardez-la arriver dans le rapport Realtime de GA4, puis comparez une journée entière de commandes Shopify avec les achats de GA4, identifiant de transaction par identifiant de transaction.

1. Passez une commande sur votre boutique avec un vrai moyen de paiement.
2. Dans GA4, ouvrez le rapport **Realtime**. L’achat apparaît généralement en quelques minutes.
3. Deux jours plus tard, une fois le traitement stabilisé, ouvrez **Explore** et construisez un tableau libre avec la dimension **Transaction ID** et la métrique **Ecommerce purchases**, qui ne compte que les événements `purchase` ([Google](https://support.google.com/analytics/answer/13428834)).
4. Réglez la même date dans la liste des commandes de Shopify, tenez-vous-en aux commandes de votre boutique en ligne, et vérifiez que les deux outils utilisent le même fuseau horaire.
5. Faites correspondre les listes.

| Ce que vous voyez | Cause probable |
| --- | --- |
| Une commande absente de GA4 | Consentement refusé, balise bloquée, ou page de remerciement qui ne s’est jamais chargée |
| Les commandes manquantes se concentrent dans l’EEE ou au Royaume-Uni | Une bannière de consentement qui ne transmet pas le choix à Shopify |
| Deux identifiants de transaction pour une commande | Deux expéditeurs utilisant des formats d’identifiant différents |
| Bien moins d’achats que de commandes, sous un identifiant répété ou vide | Un identifiant de transaction vide ou réutilisé, que GA4 fusionne en un seul achat |
| Pages vues doublées, revenu à peu près correct | Un second expéditeur sur la même propriété |

## Où cPixel intervient-il ? {#where-does-cpixel-fit}

Envoyer l’achat depuis l’enregistrement de commande de Shopify aide quand l’achat navigateur ne se déclenche jamais. Commencez par l’application Google & YouTube, suffisante pour de nombreuses boutiques, et gardez à l’esprit qu’aucun outil ne devrait combler un écart venant d’un consentement refusé.

cPixel, que nous développons, envoie les achats et remboursements GA4 depuis ses serveurs via le Measurement Protocol. Il les construit à partir de la commande Shopify, avec la commande comme identifiant de transaction, donc la propre déduplication de GA4 s’applique. Tout autre événement GA4 part du navigateur du client via le pixel de cPixel, et si l’un d’eux ne quitte jamais l’appareil, cPixel envoie cet événement isolé depuis ses serveurs à la place et le marque dans sa vue En direct. cPixel n’envoie à GA4 ni l’adresse IP ni la localisation du client, donc un événement récupéré ne tire sa localisation que des visites antérieures de ce visiteur, et affiche (not set) quand il n’y en avait aucune.

L’achat serveur porte l’identifiant client et l’identifiant de session que cPixel conserve pour le client depuis la boutique jusqu’au paiement, ce dont Google a besoin pour créditer l’achat à la visite qui y a mené. Google ne garde ce crédit que pour les événements envoyés dans les 24 heures suivant le début de la session, donc les achats envoyés plus tard, par exemple avec **Quand la commande est expédiée** dans les **Paramètres** de cPixel, peuvent perdre leur campagne. Un paiement sans session navigateur n’est pas envoyé : En direct affiche **Pas assez de données pour construire le payload de cette destination**. Un client qui refuse les cookies analytiques n’est pas non plus envoyé à GA4.

La configuration a besoin de votre Measurement ID et d’un secret d’API Measurement Protocol. Sans le secret, GA4 ne reçoit aucun achat de cPixel, et comme GA4 ne signale jamais une clé erronée, confirmez avec une vraie commande : [connecter GA4 à cPixel](/fr/docs/cpixel/connect-ga4/). Envoyez chaque propriété GA4 depuis un seul outil. Si l’application Google & YouTube envoie aussi vers elle, les pages vues et les autres événements navigateur sont comptés deux fois. Plus d’informations sur [cPixel, qui envoie les achats Shopify à sept plateformes publicitaires](/shopify/cpixel/).

## Questions fréquentes {#frequently-asked-questions}

### Pourquoi le revenu GA4 est-il inférieur à celui de Shopify ? {#why-is-ga4-revenue-lower-than-shopifys}

Généralement parce que certains achats n’ont jamais atteint GA4, et parce que les deux totaux sont construits différemment. Google demande une valeur d’achat qui couvre les articles sans la livraison ni la taxe, tandis que **Total sales** de Shopify ajoute taxes, droits, livraison et frais. Vérifiez ce que votre balise envoie comme valeur, puis comparez au chiffre de Shopify construit de la même façon. Les remboursements tirent dans l’autre sens : Shopify les soustrait, et GA4 ne le fait que si un événement de remboursement est envoyé.

### Le changement des sessions de Shopify de septembre 2026 a-t-il affecté GA4 ? {#did-shopifys-september-2026-sessions-change-affect-ga4}

Non. Entre le 21 et le 23 septembre 2026, Shopify a changé la façon dont ses propres rapports comptent les sessions : une session se termine désormais après 30 minutes d’inactivité au lieu de minuit UTC, et les sessions de bots identifiées sont exclues par défaut ([Shopify](https://help.shopify.com/en/manual/reports-and-analytics/discrepancies/session-measurement-update)). Shopify indique que les commandes, les ventes et le nombre de clients ne sont pas affectés. GA4 compte ses propres sessions, qui par défaut se terminent aussi après 30 minutes d’inactivité ([Google](https://support.google.com/analytics/answer/9191807)). Si les sessions de Shopify ont chuté à partir du 21 septembre alors que celles de GA4 non, ce changement en est probablement la cause.

### GA4 exclut-il les bots ? {#does-ga4-exclude-bots}

Les bots connus, automatiquement. GA4 exclut le trafic des bots et robots connus en utilisant les recherches de Google et la liste internationale des spiders et bots de l’IAB, et vous ne pouvez ni désactiver cela ni voir combien de trafic a été exclu ([Google](https://support.google.com/analytics/answer/9888366)). Une liste ne peut pas repérer les bots qui se font passer pour des navigateurs ordinaires, mais ils achètent rarement, donc ils gonflent les sessions plutôt que les achats. À quoi ils ressemblent sur une boutique Shopify : [le trafic de bots sur Shopify](/fr/blog/shopify-bot-traffic/).

[cPixel Facebook Pixel CAPI GA4](/shopify/cpixel/)

[Installer gratuitement depuis le Shopify App Store](https://apps.shopify.com/cpixel?utm_source=b2bgold.app&utm_medium=referral&utm_campaign=blog&utm_content=fr/blog/ga4-shopify-purchases&utm_term=post-cta) [Forfaits et tarifs](/shopify/cpixel/#pricing) [Documentation cPixel](/fr/docs/cpixel/)

Besoin d’aide avec cPixel ? Écrivez à [support@b2bgold.app](mailto:support@b2bgold.app).

## En savoir plus sur cPixel {#related-heading}

- 24 septembre 2026 **[Pixels d'application vs pixels personnalisés sur Shopify](/fr/blog/shopify-app-pixels-vs-custom-pixels/)** Comment Customer events de Shopify gère les pixels d'application et personnalisés, ce que permet chaque bac à sable, et pourquoi un pixel attend le consentement.
- 24 septembre 2026 **[Additional scripts arrêté sur Shopify ? Réparer le suivi](/fr/blog/shopify-additional-scripts-tracking/)** Depuis le 26 août 2026, la page de remerciement de Shopify n'exécute plus Additional scripts ni les script tags. Ce qui a cassé, comment migrer vers les pixels.
- 24 septembre 2026 **[Suivre les conversions ChatGPT Ads sur Shopify](/fr/blog/chatgpt-ads-conversion-tracking-shopify/)** Suivez les conversions ChatGPT Ads sur Shopify avec l'app d'OpenAI, un pixel personnalisé ou une app de suivi, envoyez les achats via l'API Conversions et vérifiez-les.
