Dédupliquer purchase

purchase

La panne

Une page de confirmation qui pousse purchase à chaque chargement compte la commande autant de fois que le visiteur recharge. Un rafraîchissement, un retour arrière, un lien partagé : le revenu monte sans qu'aucune vente n'ait eu lieu.

Rien ne le signale. GA4 déduplique par transaction_id sur une fenêtre courte seulement, et si l'identifiant est régénéré à chaque chargement, il n'a plus rien à dédupliquer.

Le montage retenu ici

Trois décisions, et les trois comptent :

  1. L'identifiant est créé à la validation du checkout, pas sur la confirmation. Le générer sur la page d'arrivée est exactement ce qui le rend différent à chaque rechargement.
  2. Le verrou porte l'identifiant, pas un booléen. Un booléen empêcherait une seconde commande, légitime, de partir dans la même session.
  3. Le panier se vide après la poussée, jamais avant. Vider d'abord enverrait un purchase aux items vides — et comme l'événement part quand même, le tunnel a l'air complet et le revenu vaut zéro.

La vérification

Déroulez le tunnel jusqu'à la confirmation. L'événement purchase apparaît dans l'aperçu. Rechargez la page : il ne doit pas réapparaître, et la référence affichée doit être identique.

Repassez ensuite une commande : un nouvel identifiant est émis, et purchase repart. C'est le comportement attendu — le verrou empêche le doublon, pas la vente suivante.