Facebook Conversions API
Aka Facebook CAPI
Facebook est un service de médias sociaux et de réseautage social en ligne détenu par Meta. Cette destination vous permet d'envoyer tout type d'événement directement à Facebook via l'API : en envoyant des conversions en ligne et hors ligne, vous pouvez augmenter la portée et la précision de vos campagnes.
Vous pouvez, par exemple, ne pas envoyer de campagnes liées à un produit spécifique aux utilisateurs qui l'ont déjà acheté, ou vous pouvez également envoyer des campagnes aux utilisateurs qui ont acheté un produit spécifique dans une logique de cross-sell.
Comment envoyer des événements à Facebook ?
Facebook a développé une API appelée 'Facebook Conversions API' https://developers.facebook.com/docs/marketing-api/conversions-api
Vous avez besoin d'un compte Facebook Business Manager https://business.facebook.com/
Ensuite dans le menu, cliquez sur 'Events Manager' :

Ici vous devez créer un nouveau Web Pixel :

Sélectionnez Conversions API et donnez un nom à votre connexion :

Votre pixel est maintenant créé et vous aurez accès aux IDs nécessaires sur notre connecteur.
Où puis-je trouver l'ID du Pixel ?
Vous devez renseigner l'ID du pixel sur notre connecteur, c'est l'ID du pixel que vous venez de créer aux étapes ci-dessus.
Vous pouvez trouver cet ID en cliquant sur le nom du pixel et à droite du graphique d'activités. Vous pouvez également le trouver dans l'onglet paramètres.

Vous pouvez maintenant copier et coller cet ID dans notre connecteur.
Ensuite vous avez besoin de l'Access Token
Où puis-je trouver l'access token ?
Vous pouvez définir votre access token de deux façons :
Facebook Login For Business Authentication
Générer un token longue durée
Facebook Login For Business Authentication
Ceci est la méthode d'authentification recommandée.
Dans votre compte Commanders Act, accédez à
(1) Administration→(2) Connector Credentialsou cliquez sur le lienajouter un nouveau comptedans les paramètres de la destination.
\Cliquez
(3) Add connector credentialsen haut à droite :
\Sélectionnez
(4) Facebook Ads
\Connectez-vous avec vos identifiants de compte Facebook.
Allez dans les paramètres de votre destination et sélectionnez vos identifiants ajoutés dans le menu déroulant sous
(5) API Authentication→(6) Credentials
Enregistrez les paramètres de votre destination.
Générer un token longue durée
Allez sur Meta Event Manager
Dans le menu de gauche, sélectionnez
(1)Data sources.

Localisez votre
(2)dataset existant et sélectionnez-le ou créez un nouveau dataset.

Cliquez sur l'onglet
(3)Settings

Localisez le lien
(4)Generate access tokenet cliquez dessus pour générer un access token

Si vous ne pouvez pas cliquer sur le lien "Generate access token", alors vous n'avez pas les droits administrateur.
Copiez et collez votre access token dans le champ
API Access Tokendans votre destination et enregistrez les paramètres de votre destination.
Comment gérer les consentements ?
Seuls les événements avec un consentement seront envoyés à Facebook
Seules les conversions contenant des informations personnelles (email et/ou numéro de téléphone...) seront envoyées à Facebook
Pour les clients avec notre produit TRUST Commander :
TRUST Commander est notre Consent Management Platform. (Plus d'informations : https://www.commandersact.com/en/solutions/trustcommander/)
Sur le connecteur, le consentement est géré avec le champ 'User Consent Category'. Vous devez entrer un ID de catégorie, celui correspondant à Facebook (advertising) dans les catégories de consentement Trust.
Pour les clients sans notre produit TRUST Commander :
Nous devons distinguer 3 cas :
Vos événements en ligne sont collectés via notre tag d'événements Commanders Act : Vous devez fournir, dans les event tags, la liste des ids de catégories consenties par l'utilisateur, via la
consent_categoriespropriété.Vous nous envoyez vos événements via API ou fichier CSV : un champ
consent_categoriesdoit être ajouté dans le JSON ou le CSV pour préciser les IDs de catégories de consentement de l'utilisateur. Ensuite, dans les paramètres du connecteur, utilisez le champ 'User Consent Category' pour entrer un ID de catégorie, celui correspondant à Facebook (advertising)Vous gérez déjà les consentements de votre côté et vous ne nous envoyez, depuis votre serveur,
que des événements qui ont obtenu le consentement pour la catégorie advertising. Dans ce cas, ne remplissez pas le champ ‘User Consent Category’ dans le connecteur.
Comment la déduplication entre le pixel et le serveur est-elle gérée ?
L'utilisation à la fois du pixel et du serveur est recommandée par Facebook car cela peut éviter la perte de données.
Pour que cela fonctionne, vous devez avoir la même configuration pour le pixel et le serveur, en utilisant les mêmes paramètres Facebook.
event_id doit être le même
Sur le pixel, event_id est automatiquement généré par notre Tag Commanders Act et nous récupérons la même valeur pour le serveur sur integrations.facebook.event_id. En conséquence, ces 2 valeurs doivent être identiques. Event_name doit également être le même.
Fbp le paramètre est automatiquement récupéré pour garder la même valeur entre le pixel et le serveur.
La déduplication fonctionne lorsque le même événement est envoyé d'abord depuis le navigateur et puis depuis le serveur, sinon cela crée un doublon. Les événements sont poussés en temps réel.
Exemples
Sur le pixel :
fbq('track', 'AddToCart', {
value: #CARTVALUE#,
currency: #CURRENCY#,
contents: fb_addtocart_products,
content_type: 'product'
}, { eventID: tC.uniqueEventId });eventID: tC.uniqueEventId est généré automatiquement.
Sur le serveur :
integrations.facebook.event_idintegrations.facebook.event_id récupère automatiquement la valeur eventID provenant du pixel (eventID: tC.uniqueEventId) pour les événements standard.
Mappings vers les Facebook Standard Events
La Facebook CAPI Destination transformera le Commanders Act event comme...
{
"event_name": "purchase",
"id": "purchase_id_1234",
"type": "online",
"user": {
"email": "[email protected]",
"id": "user_example_id",
"tcId": "202205231352367212315156",
"consistent_anonymous_id": "202205231352367212315156",
"consent_categories": [ "1", "2", "3", "4" ]
}
"value": 246.9,
"currency": "EUR",
"items": [
{
"product": {
"id": "product123"
},
"price": "123.45",
"id": "ET",
"item_category": "Car",
"item_quantity": 2
}
],
"context": {
"event_id": "1a01c3e940f150eb9b8c542587f1abfd8f0e1cc1f",
"event_timestamp": 1707830130234,
"page": {
"location": {
"href": "https://site.com/path?s=2",
"hostname": "site.com",
"pathname": "/path",
"search": "?s=2"
},
"url": "https://site.com/path?s=2"
},
"device": {
"ip": "123.123.123.123",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"
},
"cookie": "_fbp=fb.1.1653472342558.832801021; some_other=cookie;"
},
"integrations": {
"facebook": {
"custom_data": {
"category": "category1"
},
"user_data": {
"fbp": "fb.1.1558571054389.1098115397"
}
}
},
}...dans Facebook CAPI des événements tels que :
{
"event_name": "Purchase",
"event_time": 1707830130,
"event_source_url": "https://site.com/path?s=2",
"action_source": "website",
"user_data": {
"em": [
"b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514"
],
"external_id": [
"user_example_id"
],
"client_ip_address": "123.123.123.123",
"client_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
"fbc": "fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890",
"fbp": "fb.1.1558571054389.1098115397"
},
"custom_data": {
"id": "purchase_id_1234",
"currency": "EUR",
"value": 246.9,
"contents": [
{
"id": "product123",
"quantity": 2,
"item_price": 123.45
}
]
}
}Les mappings suivants sont entièrement automatisés et ne nécessitent pas de configuration supplémentaire par défaut. Vous pouvez toutefois personnaliser chacun comme suit.
Mapping : (root)
event_id [2][3]
event_id [1]
event_name
event_name [4]
context.event_timestamp
event_time [5]
context.page.url
event_source_url
context.page.referrer
referrer_url
Activer le suivi d'app
type
action_source [6]
opt_out [3]
opt_out [7]
data_processing_options [3]
data_processing_options [7]
data_processing_options_country [3]
data_processing_options_country [7]
data_processing_options_state [3]
data_processing_options_state [7]
Mapping : event_name
event_nameLe Facebook Pixel spécifie Standard Events dont la sémantique correspond à des événements dans le Commanders Act Standard
Si la destination reçoit un Commanders Act Event avec event_name correspondant à la liste, il sera automatiquement envoyé sous le Facebook Standard Event nom associé. Sinon, il sera envoyé sans aucune transformation
begin_checkout
InitiateCheckout
purchase
Purchase
add_to_cart
AddToCart
view_item
ViewContent
view_item_list
ViewContent
search
Search
add_payment_info
AddPaymentInfo
add_to_wishlist
AddToWishlist
generate_lead
Lead
page_view
PageView
sign_up
CompleteRegistration
contact
Contact
customize_product
CustomizeProduct
donate
Donate
find_location
FindLocation
schedule
Schedule
search
Search
start_trial
StartTrial
submit_application
SubmitApplication
subscribe
Subscribe
Exemples :
Si la destination voit un
add_to_cartévénement (DANS la liste), elle enverra unAddToCartà Facebook CAPISi la destination voit un
custom_nameévénement (PAS DANS la liste), elle enverra uncustom_nameà Facebook CAPI (aucune transformation)
Mapping : action_source
action_sourcePar défaut, action_source sera défini sur 'website' (la plupart des événements concernent l'activité en ligne).
SI Activer le suivi d'app est coché ALORS action_source='app'
Spécificité des conversions hors ligne :
SIvotre événement a la propriététype='offline'ALORSle Facebook Event auraaction_source='physical_store'SINONle Facebook Event auraaction_source='website'
Exemple :
// CommandersAct
{
"event_name": "purchase",
"type": "offline",
// ...
}
// Événement envoyé à l'API Facebook :
{
"event_name": "Purchase",
"action_source": "physical_store"
"custom_data": { /* */ }
// ...
}Si vous avez besoin d'écraser cette valeur, vous pouvez actuellement utiliser Properties Transformation pour définir le integrations.facebook.action_source.
Mapping : user_data
user_datauser.id (haché)
context.device.sdk_id
user.tcId , user.tcid ou user.tc_id
user_data.external_id [1]
user.email
user_data.em (email, haché)
user.phone
user_data.ph (téléphone, haché)
user.gender
user_data.ge (genre, haché)
user.birthdate
user_data.db (date de naissance, hachée)
user.lastname
user_data.ln (nom de famille, haché)
user.firstname
user_data.fn (prénom, haché)
user.city
user_data.ct (ville, hachée)
user.state
user_data.st (état/région, haché)
user.zipcode
user_data.zp (code postal, haché)
user.country
user_data.country (haché)
ip [3][4]
user_data.client_ip_address
user_agent [3][4]
user_data.client_user_agent
fbc [2]
Le cookie "_fbc" [5]
user_data.fbc (Click ID)
fbp [2]
Le cookie "_fbp" [5]
user_data.fbp (Browser ID)
advertising_id [3]
user_data.anon_id [6]
user_data.madid [6]
user_data[Property Name] [7]
user_data[Property Name]
Chaque propriété peut être écrasée en utilisant integrations.facebook.user_data.<property>
Informations minimales requises
Les événements ne peuvent être utilisés que s'il y a suffisamment d'informations pour retrouver un utilisateur. Facebook attend au moins une user_data propriété, mais conseille fortement d'envoyer autant de propriétés que possible.
Voici nos conditions pour envoyer les événements :
au moins 1 de ces champs :
em,ph,external_id,fbp,fbcau moins 3 des autres champs
Remarque : external_id, fbp, fbc permettront d'associer l'événement avec d'autres événements. Mais pour associer un utilisateur, l'un de ces événements doit contenir des informations supplémentaires (em et ph sont les mieux adaptés pour l'appariement)
Mapping : custom_data
custom_datavalue
custom_data.value
currency
items.0.currency
custom_data.currency
id
custom_data.order_id
search_term
custom_data.search_string
items.X.id
custom_data.contents.X.id [1]
items.X.quantity
custom_data.contents.X.quantity [1]
items.X.product.price
custom_data.contents.X.item_price [1]
items.0.product.name
custom_data.content_name
items.0.product.category_1
custom_data.content_category
items.X.id
custom_data.content_ids [2]
Valeur du type de contenu
custom_data.content_type [3]
status
custom_data.status
items.length
custom_data.num_items
Envoyez toutes vos propriétés d'événement en tant que custom data
custom_data[Property Name] [4]
custom_data[Propery Name] [5]
custom_data[Property Name]
Comportement par défaut
Facebook spécifie des règles pour propriétés standard. Le reste est complètement libre.
Par défaut, nous renseignons custom_data comme suit :
Nous copions tous les CommandersAct Event propriétés dans
custom_data(sauf certains champs contextuels commesource_key)Ensuite, nous mappont les propriétés standard selon le tableau ci‑dessus (peuvent écraser 1. valeurs)
Enfin, nous écrasons avec
integrations.facebook.custom_data.<property>si existe
Écraser custom_data
custom_dataLe meilleur choix serait d'utiliser Properties Transformation pour modifier vos propriétés d'événement qui seront copiées dans custom_data.
Mais vous pouvez remplacer la valeur finale en utilisant integrations.facebook.custom_data.<property>.
Exemple :
cact('trigger', 'purchase', {
"currency": "EUR",
"value": 101,
"integrations": {
"facebook": {
"custom_data": {
"content_name": "some_custom_name",
"your_field": "your_value"
}
}
}
});Mapping : app_data
app_dataad_tracking_enabled [1]
advertiser_tracking_enabled [*]
application_tracking_enabled [1]
application_tracking_enabled [*]
context.campaign.name
campaign_ids
install_referrer [2]
install_referrer
installer_package [2]
installer_package
url_schemes [2]
url_schemes
windows_attribution_id [2]
windows_attribution_id
type [1]
extinfo[0] [3]
app.namespace [1]
extinfo[1]
app.build [1]
extinfo[2]
app.version [1]
extinfo[3]
os.version [1]
extinfo[4]
model [1]
extinfo[5]
language [1]
extinfo[6]
[No default field] [4]
extinfo[7]
network.carrier [1]
extinfo[8]
screen.width [1]
extinfo[9]
screen.height [1]
extinfo[10]
screen.density [1]
extinfo[11]
[No default field] [5]
extinfo[12]
[No default field] [6]
extinfo[13]
[No default field] [7]
extinfo[14]
timezone [1]
extinfo[15]
integrations.facebook.* dépréciation
integrations.facebook.* dépréciationintegrations.facebook.* l'utilisation sera dépréciée.
La fonctionnalité fonctionne toujours, mais il est recommandé d'utiliser les paramètres de destination à la place pour des raisons de maintenance et de fiabilité.
Vérifier les résultats sur l'interface Facebook
Pour voir la qualité de matching sur l'interface Facebook, allez ici : Events manager > sélectionnez l'événement > View Details > Event Matching > Rating Background
Comment envoyer des conversions offline
La façon recommandée est d'utiliser le HTTP Tracking API source pour envoyer vos événements offline depuis vos serveurs (ou tout autre émetteur).
Vous devez simplement envoyer un purchase event avec le type propriété égale à offline
Plus de détails sur le mappage automatique ici : Mapping action_source
Mis à jour
Ce contenu vous a-t-il été utile ?