Plateformes publicitaires et boutiques en ligne

Meta Conversions API (CAPI) : un guide pratique

Un guide pratique de la Meta Conversions API : l’utiliser à côté du pixel avec un seul event_id, envoyer les bons paramètres, tester les événements et corriger les erreurs courantes.

·Mis à jour le ·9 min de lecture·Par l’équipe ROASaurus

À retenir
  • La Meta Conversions API envoie des événements comme Purchase depuis votre serveur, afin qu’ils parviennent à Meta même quand le pixel navigateur est bloqué.
  • Utilisez-la en parallèle du pixel et donnez aux deux copies le même nom d’événement et le même event_id : Meta compte alors l’événement une seule fois si les deux arrivent dans un délai de 48 heures.
  • Les événements du site web exigent action_source, event_source_url et le user agent de l’acheteur ; l’e-mail et le téléphone hachés, l’adresse IP, fbp et fbc déterminent dans quelle mesure Meta peut les associer à une personne.
  • Testez avec l’onglet Test events d’Events Manager, puis retirez le code de test, car les événements de test ne sont pas écartés.
  • La plupart des problèmes viennent d’identifiants d’événement qui ne correspondent pas, de l’adresse IP du serveur lui-même, d’un fbclid perdu ou de données de contact hachées sans normalisation.

La Meta Conversions API (CAPI) permet à votre serveur d’envoyer des événements comme Purchase directement à Meta. Le pixel Meta envoie les mêmes événements depuis le navigateur de l’acheteur. CAPI les envoie depuis votre serveur : ils arrivent donc même quand un bloqueur de publicités arrête le pixel, qu’un cookie a disparu ou que la page de remerciement ne se charge jamais.

Ce guide présente ce que contient un événement de la Conversions API, comment l’utiliser en parallèle du pixel avec un seul event_id, quels paramètres Meta exige et recommande, comment tester avec Test events, et les erreurs les plus fréquentes.

Qu’est-ce que la Meta Conversions API ?

La Conversions API fait partie de la Graph API de Meta. Votre serveur envoie une requête HTTPS POST à graph.facebook.com/VERSION/PIXEL_ID/events avec un jeton d’accès et une liste data de 1,000 événements au maximum. Chaque événement décrit une action, comme un achat, en trois parties : ce qui s’est passé, qui l’a fait et les détails.

ChampCe qu’il contient
event_nameL’action, par exemple Purchase, AddToCart ou InitiateCheckout
event_timeQuand cela s’est produit, sous forme d’horodatage Unix en secondes
event_idUn identifiant unique pour cet événement, utilisé pour le dédupliquer par rapport au pixel
action_sourceOù cela s’est produit : website pour les achats sur la boutique en ligne
event_source_urlL’URL de la page où l’événement s’est produit
user_dataInformations client pour la mise en correspondance : e-mail et téléphone hachés, adresse IP, user agent, fbp et fbc
custom_dataDétails tels que value, currency et content_ids
Chaque événement de la Conversions API a la même forme : l’action, les informations client et les détails.

Voici à quoi ressemble un événement Purchase simplifié :

Conversions API : un événement Purchase (abrégé)
{
  "data": [{
    "event_name": "Purchase",
    "event_time": 1792929600,
    "event_id": "order-1042",
    "action_source": "website",
    "event_source_url": "https://yourstore.com/checkouts/thank-you",
    "user_data": {
      "em": ["<SHA-256 of the normalized email>"],
      "ph": ["<SHA-256 of the normalized phone>"],
      "client_ip_address": "203.0.113.24",
      "client_user_agent": "Mozilla/5.0 (iPhone; ...)",
      "fbp": "fb.1.1792928400000.1234567890",
      "fbc": "fb.1.1792928400000.AbCdEf123"
    },
    "custom_data": { "value": 74.00, "currency": "USD" }
  }]
}

Les champs de contact comme l’e-mail et le téléphone sont normalisés et hachés avec SHA-256 avant de quitter votre serveur. L’adresse IP, le user agent, fbp et fbc sont envoyés tels quels.

Pourquoi utiliser la Conversions API en parallèle du pixel ?

Meta recommande d’utiliser la Conversions API en parallèle du pixel et d’envoyer les mêmes événements par les deux voies. Chacune voit ce que l’autre ne voit pas, et ensemble elles donnent à Meta des données plus complètes.

Pixel Meta (navigateur)
  • Définit le cookie _fbp et enregistre le fbclid d’un clic publicitaire dans le cookie _fbc
  • Voit la page et le navigateur pendant la visite
  • Est perdu quand le navigateur le bloque ou que la page ne se charge pas
Conversions API (serveur)
  • Envoie la commande payée à partir des données de votre boutique
  • Peut ajouter l’e-mail, le téléphone et l’adresse hachés issus de la commande
  • Ne dépend pas du navigateur : les bloqueurs de publicités ne l’arrêtent donc pas
Le pixel apporte les identifiants du navigateur et le serveur apporte la commande. Chacun seul passe à côté d’une partie du tableau.

Utiliser les deux a un coût : Meta reçoit désormais deux copies de chaque événement. La section suivante montre comment Meta n’en garde qu’une.

Comment fonctionne la déduplication avec un seul event_id ?

Meta considère un événement navigateur et un événement serveur comme un seul et même événement quand deux éléments correspondent : le nom de l’événement et l’identifiant d’événement. Dans le pixel, l’identifiant va dans l’option eventID. Dans la Conversions API, la même valeur va dans event_id.

Pixel Meta : le même Purchase avec eventID
fbq('track', 'Purchase', { value: 74.00, currency: 'USD' }, { eventID: 'order-1042' });
L’acheteur paieCommande 1042, $74.00
Le pixel envoie PurchaseeventID order-1042, depuis le navigateur
Le serveur envoie Purchaseevent_id order-1042, depuis la commande
Meta en compte un seulMême nom et même identifiant dans les 48 heures
Les deux copies portent le même nom d’événement et le même identifiant : Meta conserve donc un seul achat au lieu de deux.

Meta ne déduplique une paire correspondante que si les deux copies arrivent à moins de 48 heures d’intervalle. Quelques règles permettent que cela fonctionne en pratique :

  • Créez l’identifiant une seule fois. Construisez-le à partir d’un élément que les deux côtés connaissent, comme le numéro de commande, et transmettez-le au navigateur et au serveur. Deux systèmes qui fabriquent chacun leur propre identifiant ne correspondront pas.
  • Utilisez un seul format. order-1042 et 1042 sont deux identifiants différents.
  • Respectez exactement le nom de l’événement. Purchase et purchase sont des événements différents.
  • Envoyez rapidement l’événement serveur. Un événement serveur qui arrive plus de 48 heures après l’événement navigateur est compté une seconde fois.

Meta décrit aussi une seconde méthode qui associe les événements par fbp ou external_id. Meta indique qu’elle ne fonctionne généralement que si l’événement navigateur arrive avant l’événement serveur : un event_id commun est donc le choix le plus fiable. Si Meta signale encore plus d’achats que votre boutique n’en a eu, notre guide sur les événements d’achat en double liste les causes habituelles.

Les champs obligatoires rendent un événement valide. Les champs recommandés déterminent combien de vos événements Meta peut associer à une personne, et seuls les événements associés peuvent servir à l’attribution et à la diffusion des publicités.

ParamètreÉvénements du site webCe qu’il faut envoyer
event_nameObligatoireUn événement standard comme Purchase, ou un nom d’événement personnalisé
event_timeObligatoireHeure Unix en secondes, au plus 7 jours dans le passé
action_sourceObligatoirewebsite pour les événements de votre boutique
event_source_urlObligatoireL’URL de la page où l’événement s’est produit
client_user_agentObligatoireLe user agent du navigateur de l’acheteur, pas celui de votre serveur
user_dataObligatoireAu moins un paramètre d’informations client
event_idRecommandéLe même identifiant que celui du pixel, pour la déduplication
em, phRecommandéE-mail et téléphone, normalisés et hachés avec SHA-256
client_ip_addressRecommandéL’adresse IP de l’acheteur, non hachée
fbp, fbcRecommandéLes cookies d’identifiant navigateur et d’identifiant de clic, non hachés
external_idRecommandéVotre propre identifiant client, le même dans les événements navigateur et serveur
value, currencyÀ envoyer avec PurchaseLa valeur de la commande et un code de devise à trois lettres
Meta indique que action_source, event_source_url et client_user_agent sont obligatoires pour les événements de site web envoyés via la Conversions API.

Trois détails causent la plupart des problèmes :

  • Normalisez avant de hacher. Meta attend un e-mail sans espaces superflus et en minuscules, et des numéros de téléphone sous forme de chiffres avec l’indicatif du pays. Anna@Example.com et anna@example.com donnent des empreintes différentes, et seule la seconde peut correspondre.
  • Ne hachez pas les identifiants du navigateur. fbp, fbc, l’adresse IP et le user agent sont envoyés en clair.
  • Conservez l’identifiant de clic exactement tel quel. La valeur fbc se compose de fb.1., de l’heure de création en millisecondes, d’un point, puis du fbclid de l’URL de la page d’arrivée. Le fbclid est sensible à la casse. Enregistrez-le quand le visiteur arrive, car il n’est plus dans l’URL au moment du checkout.

La qualité de correspondance de ces champs est ce que mesure le score Event Match Quality de Meta. Notre guide sur l’Event Match Quality couvre chaque paramètre, les règles de hachage et le score à viser.

Comment tester les événements avec Test events ?

Events Manager propose un onglet Test events qui affiche les événements à mesure qu’ils arrivent. Utilisez-le avant de vous fier à une nouvelle configuration.

  1. Ouvrez Test events

    Dans Events Manager, sélectionnez votre jeu de données (pixel) et ouvrez l’onglet Test events. Copiez le code de test qu’il affiche.

  2. Ajoutez le code à vos événements serveur

    Envoyez-le sous le nom test_event_code dans la requête. Dans ROASaurus, collez-le dans le champ Test event code du pixel Meta.

  3. Passez une commande de test

    Visitez la boutique, ajoutez un produit et payez, afin que le pixel et le serveur envoient chacun un Purchase.

  4. Comparez les deux copies

    Les deux copies doivent afficher le même nom d’événement, le même identifiant d’événement, la même valeur et la même devise.

  5. Vérifiez les informations client

    L’événement serveur doit contenir l’e-mail et le téléphone hachés, l’adresse IP, le user agent et fbp, ainsi que fbc si la visite a commencé par un clic publicitaire.

  6. Retirez le code de test

    Meta précise que ce champ sert uniquement aux tests : retirez-le donc avant de vous fier aux événements.

Purchase browser order-1042 74.00 USDDepuis le pixel
Purchase server order-1042 74.00 USDDepuis la Conversions API
event_name + event_id matchCompté comme un seul achat
em ph fbp fbc client_ip_address client_user_agentInformations client sur l’événement serveur
Ce que montre une bonne commande de test (valeurs d’exemple) : deux copies, un identifiant et des informations client complètes.

Erreurs courantes de la Conversions API et comment les corriger

Ce que vous voyezCause probableSolution
Toute la requête échoue et aucun événement n’est traitéUn événement du lot a un event_time vieux de plus de 7 joursEnvoyez les événements au moment où ils se produisent. Corrigez ou supprimez les anciens événements avant de réessayer.
Meta signale plus d’achats que votre boutique n’en a euDes identifiants d’événement différents, un événement pixel sans eventID, ou une seconde application qui envoie le même pixelUtilisez un seul identifiant pour les deux copies et un seul émetteur serveur par pixel.
Faible qualité de correspondance des événements serveurVotre serveur envoie sa propre adresse IP et son propre user agentTransmettez l’adresse IP et le user agent enregistrés depuis le navigateur ou la commande de l’acheteur.
Peu d’événements avec fbcLe fbclid n’a pas été enregistré sur la page d’arrivée, ou il a été modifiéEnregistrez le fbclid exactement tel qu’il arrive et construisez fbc à partir de lui.
L’e-mail et le téléphone ne correspondent pasValeurs hachées sans normalisation, ou envoyées sans hachageRetirez les espaces superflus et passez l’e-mail en minuscules, gardez les chiffres et l’indicatif du pays du téléphone, puis hachez avec SHA-256.
Les requêtes échouent avec une erreur de jeton expiréLe jeton d’accès provient d’une connexion Facebook, et les jetons de connexion expirentReconnectez-vous, ou utilisez un jeton System User de Business Manager, que vous pouvez créer sans date d’expiration.
La plupart des problèmes de la Conversions API se manifestent par des requêtes rejetées, des doubles comptages ou une faible qualité de correspondance.

Après quelques jours de trafic réel, ouvrez l’onglet Diagnostics dans Events Manager. Meta y liste les problèmes avec des recommandations pour les corriger. Comparez ensuite le nombre quotidien de Purchase dans Events Manager avec les commandes payées de votre boutique pour les mêmes jours. Si Meta est nettement au-dessus, notre page d’aide sur la prévention du double comptage liste les réglages à vérifier.

Comment configurer la Conversions API avec ROASaurus

ROASaurus envoie les événements de la Conversions API à partir des données de commande de votre boutique : vous n’avez donc pas à construire vous-même la partie serveur. Dans Tracking & platforms, cliquez sur Connect with Facebook et choisissez votre compte publicitaire et votre pixel, ou collez l’identifiant du pixel (jeu de données) et un jeton de la Conversions API. Le guide de configuration de Meta détaille les deux options, et la page de l’intégration Meta liste chaque champ envoyé.

  • Un seul identifiant des deux côtés. Les événements navigateur et serveur partagent un même identifiant d’événement. Pour un achat, c’est order- suivi de l’identifiant de la commande.
  • Une courte attente avant l’achat. Le Purchase serveur attend un court instant après l’arrivée de la commande, afin que l’événement d’achat du navigateur puisse être associé d’abord. Son adresse IP, son user agent et l’URL de la page partent alors avec l’événement serveur, ainsi que les fbp et fbc enregistrés pour le visiteur.
  • Les informations client issues de la commande. L’e-mail, le téléphone, le nom et l’adresse sont normalisés et hachés avec SHA-256. L’identifiant client de la boutique et l’identifiant visiteur ROASaurus sont envoyés hachés comme external_id.
  • Les événements que Meta ne peut pas associer sont ignorés. Un événement sans fbc, fbp, e-mail, téléphone ni adresse IP n’est pas envoyé.

L’Event log montre chaque envoi serveur avec la requête et la réponse de Meta. Si vos marges diffèrent beaucoup d’un produit à l’autre, vous pouvez aussi envoyer une valeur de bénéfice à côté de chaque achat : notre guide sur l’optimisation de la valeur Meta pour le bénéfice explique comment. Pour le chemin complet des données, du clic à la commande, voir le suivi côté serveur.

Sources

  1. Meta for Developers: Handling Duplicate Pixel and Conversions API Events
  2. Meta for Developers: Server Event Parameters
  3. Meta for Developers: Customer Information Parameters
  4. Meta for Developers: Using the API - Conversions API
  5. Meta for Developers: ClickID and the fbp and fbc Parameters

Dans ROASaurus

À lire aussi

Plateformes publicitaires et boutiques en ligneSuivi des conversions en paiement à la livraison et checkouts externesSuivi des conversions en paiement à la livraison : pourquoi les pixels ratent les commandes COD et celles des checkouts externes, quand envoyer l’achat et comment gérer les commandes refusées.Plateformes publicitaires et boutiques en ligneSuivi des conversions CCV Shop : guide de configurationSuivi des conversions CCV Shop : envoyez les commandes payées à Meta et TikTok avec un webhook signé, associez-les aux clics publicitaires, configurez, testez et gérez les paiements tardifs.Plateformes publicitaires et boutiques en ligneConversions améliorées Google Ads sur ShopifyLes conversions améliorées ajoutent des données clients hachées aux achats Google Ads sur Shopify. Comment elles fonctionnent, en quoi elles diffèrent des imports hors ligne, et la configuration.
FAQ

Vos questions, nos réponses

Ai-je besoin à la fois du pixel Meta et de la Conversions API ?

Meta recommande d’utiliser les deux. Le pixel ajoute des données navigateur comme le cookie fbp, et la Conversions API livre les événements que le navigateur manque. Donnez aux deux copies le même nom d’événement et le même identifiant d’événement pour que Meta compte chaque événement une seule fois.

Combien de temps Meta attend-elle pour dédupliquer un événement navigateur et un événement serveur ?

Meta déduplique un événement navigateur et un événement serveur portant le même nom d’événement et le même identifiant d’événement quand ils arrivent à moins de 48 heures d’intervalle. Une copie qui arrive plus tard est comptée à nouveau.

La Conversions API exige-t-elle que les données client soient hachées ?

Oui, pour les données de contact. Les champs e-mail, téléphone, nom et adresse doivent être normalisés et hachés avec SHA-256. L’adresse IP, le user agent, fbp et fbc sont envoyés sans hachage.

Quels champs sont obligatoires pour un événement de site web ?

Chaque événement exige event_name, event_time, action_source et au moins un paramètre d’informations client. Pour les événements de site web, Meta exige aussi event_source_url et client_user_agent.

Puis-je envoyer d’anciennes commandes via la Conversions API ?

Seulement les récentes. L’event_time peut remonter au maximum à 7 jours, et si un événement d’une requête est plus ancien, Meta rejette toute la requête.

Chaque vente, rattachée à la publicité qui l’a générée

Suivi côté serveur, bénéfice et valeur vie client dans une seule application. Essai gratuit de 14 jours, sans carte bancaire.

Démarrez votre essai gratuit →