Tracking13 min de lecture5 septembre 2026

Meta CAPI + TikTok Events API : dedup, Event Match Quality et erreurs fréquentes

Vous avez activé le Conversions API (CAPI) Meta et l'Events API TikTok. Events Manager affiche des achats en hausse. L'algorithme scale. Puis Shopify vous montre moins de commandes que Meta ne compte de conversions — ou l'inverse.

Dans la majorité des cas, le problème n'est pas « iOS 14 » mais trois détails techniques mal implémentés : event_id, identifiants de matching, et absence de tests avant de scaler.

Architecture recommandée pour une boutique Shopify

Le flux fiable pour un achat :

  • Le client paie → Shopify émet un webhook orders/paid (ou orders/create selon votre logique)
  • Votre serveur (ou un connecteur) reçoit la commande avec email, montant, devise, fbp/fbc/ttclid capturés au checkout
  • Le serveur envoie un événement Purchase à Meta CAPI et TikTok Events API avec le même event_id
  • Le pixel navigateur envoie le même Purchase avec le même event_id (dedup Meta/TikTok côté plateforme)

Ne déclenchez pas le Purchase CAPI uniquement depuis le pixel client : un ad-blocker ou une fermeture d'onglet avant la page de remerciement = achat invisible côté serveur si vous n'avez pas le webhook.

Meta CAPI : les champs qui font monter l'Event Match Quality

Meta affiche un score Event Match Quality (EMQ) par type d'événement. Un EMQ faible = matching probabiliste = optimisations instables.

Priorité des identifiants (achat Shopify)

ChampSource typiqueImpact matching
fbcCookie _fbc ou fbclid de l'URL au clicTrès élevé pour l'attribution clic
fbpCookie _fbp posé par le pixelÉlevé
emEmail checkout, SHA-256 normalisé (minuscules, trim)Élevé
phTéléphone E.164 hashéMoyen à élevé
client_ip_address + client_user_agentRequête HTTP au moment de l'achatSecours utile

Erreurs courantes :

  • Envoyer l'email en clair — Meta exige le hash SHA-256
  • Oublier de normaliser (espaces, majuscules, +33 vs 0…)
  • Ne pas transmettre fbc parce que le checkout est sur un domaine Shopify sans persistence du cookie — solution : passer fbclid en note d'attribut ou cookie first-party avant checkout
  • Utiliser l'email de facturation différent de celui saisi au checkout Meta

event_id et dedup Meta

Pour chaque achat, générez un identifiant stable partagé entre pixel et CAPI. Bonnes pratiques :

  • event_id = shopify_order_id ou order_id + "_purchase" — unique, reproductible, traçable dans les logs
  • Même event_name (Purchase) des deux côtés
  • Même event_time (timestamp Unix) à quelques secondes près — un écart de plusieurs heures peut empêcher la dedup
  • Même value et currency — un pixel à 49,90 € et un CAPI à 39,92 € après remise = deux événements distincts aux yeux de Meta

Dans Events Manager → Diagnostics, vérifiez la ligne Deduplication : un taux élevé d'événements « browser + server » dedupliqués est sain. Si seuls les événements server remontent, votre pixel est probablement bloqué — ce n'est pas grave si le CAPI est complet, mais l'EMQ peut baisser sans fbp.

TikTok Events API : spécificités vs Meta

TikTok utilise la même logique de dedup via event_id. Identifiants clés :

  • ttclid — équivalent du fbclid, à capturer sur la landing et persister jusqu'à l'achat
  • Email et téléphone hashés (mêmes règles de normalisation)
  • external_id — ID client Shopify hashé, utile pour les achats récurrents

TikTok Events Manager expose un indicateur de qualité des événements (libellé variable selon l'interface). Les mêmes principes s'appliquent : sans ttclid ni email, TikTok devine — et votre CPA optimisé sur du bruit.

Multi-plateforme : un webhook, plusieurs destinations

Une commande Shopify ne doit pas déclencher deux fois le CAPI par erreur de retry webhook. Pattern sûr :

  • Idempotence : avant envoi, vérifier en base ou cache « order X déjà forwardé »
  • Répondre 200 au webhook Shopify même si Meta timeout — puis retry avec backoff côté worker
  • Logger event_id, statut HTTP Meta/TikTok et payload hashé pour debug sans stocker de PII en clair

Checklist de validation avant de scaler le budget

1. Test Events (Meta)

Utilisez le code de test Events Manager. Passez une commande réelle ou sandbox. Confirmez :

  • Événement Purchase reçu en Browser et Server
  • Paramètres em, fbc, fbp présents côté server
  • Message de dedup OK pour le même event_id

2. TikTok Test Event

Même procédure dans TikTok Events Manager. Vérifiez ttclid sur une commande issue d'un clic TikTok Ads (pas du trafic direct).

3. Réconciliation Shopify (7 jours glissants)

Comparez :

  • Commandes payées Shopify (filtre date paiement)
  • Conversions Purchase Meta (fenêtre 7j click, 1j view — ou votre config)
  • Conversions TikTok

Un écart de ±15 à 25 % peut être normal (attribution vs commandes réelles). Un écart de ×2 signale dedup cassée ou double envoi serveur. Un écart massif côté « moins que Shopify » signale EMQ faible ou CAPI incomplet.

4. Valeur et remboursements

Envoyez le montant net payé (après remise, hors shipping si vous ne l'incluez pas dans votre définition de ROAS). Quand une commande est remboursée, certaines stacks envoient un événement d'annulation — si vous ne le faites pas, Meta continue d'optimiser sur du CA fantôme.

Erreurs qui coûtent cher (vue terrain)

  • Double Purchase server — webhook + cron + pixel server-side sans idempotence → ROAS gonflé, algo scale dans le rouge
  • event_id aléatoire à chaque retry — dedup impossible, conversions multipliées
  • CAPI seul sans pixel — acceptable pour l'achat, mais perte des micro-événements funnel (ViewContent, AddToCart) pour le retargeting
  • Ignorer Consent Mode / bandeau cookies — risque compliance + données partielles en UE ; le server-side n'exempte pas du consentement marketing
  • Tester uniquement en navigation privée sans fbclid — fausse impression d'un EMQ « cassé »

Ce qu'une stack clé en main doit gérer pour vous

Si vous implémentez à la main, comptez maintenance continue (rotations token, changements API, monitoring). Une solution intégrée au stack Shopify + pub doit au minimum :

  • Capturer fbp, fbc, ttclid au parcours checkout
  • Forwarder orders/paid avec hash PII conforme
  • Dedupliquer pixel + server via event_id stable
  • Exposer un statut de santé (dernier envoi OK, EMQ indicatif, erreurs API)

ProfitPilotPro inclut ce forwarding Meta CAPI + TikTok Events API depuis votre boutique Shopify, avec dedup et hashing gérés côté serveur — en complément du calcul profit net sur les mêmes commandes.

Pour aller plus loin sur le contexte iOS et le comparatif client vs server, lisez nos guides tracking server-side et iOS 14 et ROAS Meta.

Liste d'attente si vous n'avez pas encore accès — ou activez le module tracking depuis votre dashboard ProfitPilotPro.

A

Arthur

Fondateur de ProfitPilotPro

Essayez ProfitPilotPro

Connectez votre boutique Shopify et découvrez votre vrai profit net en quelques minutes.

Commencer gratuitement

14 jours gratuits · Sans carte bancaire

Articles similaires