Des achats en double après l'installation de l'API Conversions signifient presque toujours une chose : le navigateur et le serveur envoient des valeurs event_id différentes pour le même achat. Meta déduplique sur la correspondance de event_name et event_id. Si les identifiants diffèrent, Meta n'a aucun moyen de savoir que les deux événements sont la même commande, et compte les deux.
La version dangereuse est la panne inverse : des identifiants qui se télescopent, et vous perdez discrètement de vraies ventes.
Installer l'API Conversions est la bonne décision. Le suivi navigateur perd des événements à cause des bloqueurs de publicité, de la protection contre le pistage, des sessions interrompues et des pages abandonnées, et un flux côté serveur en récupère une bonne partie. Presque tout le monde devrait faire tourner les deux.
Mais « faire tourner les deux » signifie que Meta reçoit désormais deux signalements de chaque achat, et la seule chose qui l'empêche de les compter deux fois est un identifiant commun. Si cet identifiant est faux dans un sens, votre chiffre d'affaires double sur le papier. S'il est faux dans l'autre, votre chiffre d'affaires est discrètement divisé par deux.
Comment fonctionne réellement la déduplication
Meta fait correspondre deux champs ensemble : event_name et event_id. Les deux doivent concorder.
Browser: event_name: "Purchase" event_id: "a91f-2026-08-12" Server: event_name: "Purchase" event_id: "1047"
Browser: event_name: "Purchase" event_id: "order_1047" Server: event_name: "Purchase" event_id: "order_1047"
La règle est simple à énoncer et facile à enfreindre en pratique, car les deux côtés sont généralement construits par des systèmes différents à des moments différents. L'événement navigateur est généré par un thème ou un gestionnaire de balises ; l'événement serveur par une application, un service intermédiaire ou votre propre code. Rien ne les oblige à concorder, et rien ne vous prévient quand ce n'est pas le cas.
Choisir un identifiant qui ne peut pas dériver
L'identifiant doit être unique par commande et identique sur les deux chemins. Ces deux exigences éliminent la plupart des choix qui viennent spontanément.
| Candidat | Unique par commande ? | Identique des deux côtés ? | Verdict |
|---|---|---|---|
| ID / numéro de commande | Oui | Oui, si les deux lisent la commande | À utiliser |
| UUID généré aléatoirement | Oui | Seulement s'il est généré une fois et transmis | Risqué |
| ID de checkout | Pas toujours | Diffère souvent de l'ID de commande | À éviter |
| ID de session | Non | Non | Jamais |
| Horodatage | Non | Presque jamais | Jamais |
Les horodatages sont le pire choix et le plus tentant, car ils semblent uniques. Ils ne le sont pas : deux commandes passées dans la même seconde se télescopent, et l'horloge du navigateur n'est pas celle de votre serveur. Un UUID convient uniquement s'il est généré une fois puis transmis à l'autre côté. Si chaque côté génère le sien, vous avez construit une machine à doublons.
Tout le monde s'inquiète du double comptage parce qu'il se voit. Le pire bug, c'est un identifiant qui n'est pas unique : un ID de checkout réutilisé entre commandes, ou une valeur qui se répète. Meta déduplique alors correctement deux achats réellement différents en un seul, et vous perdez du vrai chiffre d'affaires dans vos rapports sans aucune erreur nulle part.
Le double comptage ressemble à une bonne nouvelle et fait l'objet d'une enquête. La perte silencieuse ressemble à un lent déclin et on l'impute aux publicités.
Prouver que ça fonctionne, au lieu de le supposer
Configuré ne veut pas dire fonctionnel. Voici le test qui tranche, et il prend environ quinze minutes.
- Passer une vraie commandeUn vrai achat via le vrai checkout, pas un lien de test. Notez le numéro de commande.
- Récupérer l'ID d'événement côté navigateurOuvrez les DevTools avant le paiement, filtrez l'onglet Network sur
facebook, finalisez la commande et lisez l'eventIDde la requête Purchase. - Récupérer l'ID d'événement côté serveurDans les journaux de votre intégration CAPI, ou dans le Gestionnaire d'événements, trouvez l'événement côté serveur de la même commande et lisez son
event_id. - Les comparer caractère par caractèrePas similaires. Identiques. Un préfixe d'un côté (
order_1047contre1047) est une erreur, pas un détail. - Vérifier les rapports de déduplicationDans le Gestionnaire d'événements, ouvrez l'événement Purchase et regardez comment il est reçu. Une configuration correctement dédupliquée montre le navigateur et le serveur comme sources du même événement, pas deux totaux séparés.
- Rapprocher une semaine complèteComparez le nombre de commandes de votre boutique avec les achats du Gestionnaire d'événements sur une semaine clôturée. Nettement au-dessus de vos commandes, c'est un doublon. Nettement en dessous, c'est une perte.
Le chiffre qui vous dit que ça marche
Une fois la déduplication correcte, l'indicateur à surveiller est l'Event Match Quality. Il reflète la quantité d'informations d'identification envoyées avec chaque événement (e-mail haché, téléphone, nom, localisation, identifiants de clic) et détermine la capacité de Meta à attribuer une conversion à la personne qui a vu la publicité.
C'est là que l'API Conversions justifie son existence. Votre serveur connaît l'e-mail et le téléphone du client parce qu'il vient d'acheter. Le navigateur, souvent, non. Envoyer ces données côté serveur, correctement hachées, est généralement un gain plus important que la récupération des événements bloqués.
Les identifiants clients doivent être hachés en SHA-256 avant l'envoi. Ce n'est pas une question de performance : c'est la différence entre envoyer à Meta un hachage et lui envoyer les données personnelles brutes de vos clients. Si vous construisez l'intégration vous-même, vérifiez le hachage sur une vraie charge utile avant la mise en ligne, car un bug ici est un incident de protection des données, pas un bug de suivi.
Ce que je n'affirme pas
Je ne vous ai pas donné de score Event Match Quality cible ni de gain attendu grâce à la CAPI. Les deux dépendent entièrement des données clients que vous pouvez légitimement collecter, de votre checkout et de votre trafic, et chaque référence publiée que j'ai vue provient d'un éditeur dont le produit améliore justement le chiffre mesuré.
Mesurez votre propre point de départ avant le changement, mesurez à nouveau après une fenêtre d'attribution complète, et comparez-vous à vous-même. Cette comparaison vaut plus que n'importe quelle moyenne publiée.
Vous ne savez pas si votre déduplication fonctionne ?
C'est une vérification de quinze minutes et la plupart des configurations échouent. Envoyez-moi l'URL de votre boutique et je vous dirai ce que je trouve.
Obtenir un audit de suivi gratuit →