# Des doublons dans les statistiques : les causes réelles

> Un doublon (une même commande comptée deux fois) a presque toujours une cause matérielle repérable : un conteneur posé deux fois, une balise codée en dur en plus de celle gérée par le gestionnaire de balises, un évènement purchase qui se redéclenche au rechargement, ou sur Shopify deux pixels qui coexistent pour le même outil.

- Source canonique : [https://allaux.fr/services/tracking/doublons-statistiques-causes](https://allaux.fr/services/tracking/doublons-statistiques-causes)
- Langue : FR
- Dernière mise à jour : 2026-09-30

## Réponse directe

> Sur la page de confirmation, ouvrez les outils de développement (F12), onglet Réseau, et filtrez sur gtm.js puis sur collect. Deux chargements du même identifiant GTM-XXXXXXX, ou deux requêtes portant le même transaction_id, signent une balise posée deux fois : une fois en dur dans le thème, une fois par un module ou une extension. Retirez la pose la plus ancienne, pas les deux.

## Les situations que je traite

- Le nombre d’achats dans GA4 dépasse nettement le nombre de commandes réelles
- Le chiffre d’affaires des rapports ecommerce est visiblement supérieur au réel
- Un même évènement Purchase apparaît deux fois dans le gestionnaire d’évènements Meta
- Les doublons apparaissent surtout quand un client actualise la page de confirmation
- Le doublon est apparu après l’ajout d’un module de tracking supplémentaire
- Sur Shopify, le même achat est visible via le canal officiel et un pixel personnalisé

## Comment repérer un doublon concrètement

1. **1. Onglet Réseau : compter les requêtes** — Sur la page de confirmation, outils de développement (F12), onglet Réseau, filtre sur collect (Google) ou tr (Meta). Un évènement légitime envoie une seule requête par outil. Deux requêtes avec le même transaction_id ou event_id au même moment : doublon confirmé, pas supposé.
2. **2. Vérifier le nombre de conteneurs GTM chargés** — Toujours dans Réseau, filtre sur gtm.js. Si ce script apparaît deux fois avec le même identifiant (GTM-XXXXXXX), il est posé deux fois : une fois en dur dans le thème, une fois via un module qui le pose aussi de son côté.
3. **3. Mode aperçu GTM : une balise qui se déclenche deux fois** — Pour l’évènement purchase, je regarde si la même balise apparaît deux fois dans les balises déclenchées sur un seul chargement de page. Si oui, déclencheur dupliqué, ou balise identique codée en dur en parallèle, hors GTM.
4. **4. Rechercher une balise codée en dur dans le code source** — Recherche (Ctrl+F sur « Afficher le code source ») de gtag(, fbq( ou le nom du conteneur GTM. Un appel trouvé à côté d’un GTM qui gère déjà cette balise confirme la balise en dur comme cause : elle doit être retirée du thème.
5. **5. Tester le rechargement de la page de confirmation** — Sur la page de remerciement, j’actualise (F5) puis reviens en arrière et réaccède à l’URL. Si purchase se redéclenche à chaque rechargement, aucune protection contre le rejeu n’existe : c’est la cause la plus fréquente de doublons visibles dans le temps.
6. **6. Sur Shopify : canal d’application vs pixels personnalisés** — Paramètres > Évènements client, liste des pixels actifs. Si le même outil apparaît à la fois comme application officielle et comme pixel personnalisé manuel, les deux envoient en parallèle : il faut désactiver l’un des deux, pas les deux.

## Une fois la cause identifiée

Le correctif dépend de la cause trouvée, jamais d’une hypothèse générale :

Conteneur GTM en double : retirer le point posé en dur dans le thème une fois qu’un module gère déjà GTM proprement.

Balise codée en dur en parallèle de GTM : la retirer du thème et laisser GTM piloter l’évènement seul.

Rejeu de purchase : ajouter une protection basée sur le transaction_id (stockage local ou vérification dataLayer).

Double pixel Shopify : garder un seul canal actif par outil, officiel ou personnalisé selon l’usage réel.

## Un doublon fausse aussi les budgets publicitaires

> Un évènement purchase compté en double alimente les algorithmes d’optimisation (Google Ads, Meta Ads) avec une valeur de conversion faussée à la hausse : ce n’est pas qu’un sujet de reporting propre.

## Pour aller plus loin

- **Installer Google Tag Manager sur Shopify** — Poser le conteneur une seule fois, en tenant compte du nouveau checkout. ([/services/tracking/google-tag-manager-shopify](/services/tracking/google-tag-manager-shopify))
- **Pixel Meta et API de conversions** — La déduplication par event_id entre pixel navigateur et envoi serveur. ([/services/tracking/pixel-meta-api-conversions-woocommerce](/services/tracking/pixel-meta-api-conversions-woocommerce))
- **Vérifier une balise sans outil payant** — Mode aperçu GTM, Tag Assistant, Meta Pixel Helper et onglet Réseau. ([/services/tracking/verifier-installation-balise-sans-outil-payant](/services/tracking/verifier-installation-balise-sans-outil-payant))
- **Mes conversions ne remontent pas** — Le symptôme inverse : quand rien ne se déclenche du tout. ([/services/tracking/conversions-ne-remontent-pas](/services/tracking/conversions-ne-remontent-pas))
- **Suivi des conversions ChatGPT Ads** — Pixel OpenAI, Conversions API, oppref et consentement : la même logique pixel plus serveur, appliquée aux annonces ChatGPT. ([/services/tracking/suivi-conversions-chatgpt-ads](/services/tracking/suivi-conversions-chatgpt-ads))

## FAQ

### Comment savoir si mes doublons viennent d’un rechargement plutôt que d’un conteneur en double ?

En reproduisant une commande de test : doublon dès la première visite (conteneur ou balise en double) ou seulement après actualisation manuelle (rejeu de l’évènement).

### Retirer une balise en double casse-t-il le tracking existant ?

Non si on retire la bonne, celle qui fait doublon, en gardant celle correctement gérée par GTM ou le canal officiel.

### Le doublon peut-il venir d’un module installé récemment ?

Oui : un module de tracking ajouté sans désactiver un module ou un code existant qui faisait déjà le même travail.

### Sur Shopify, dois-je garder le pixel personnalisé ou le canal d’application officiel ?

Selon ce qui est réellement utilisé au quotidien ; l’important est de n’en garder qu’un actif pour un même outil.

### Comment vérifier qu’il n’y a plus de doublon après correction ?

Je repasse une commande de test et compte les requêtes réseau : une seule requête purchase par outil, un identifiant de transaction unique.
