Facebook Conversions API
Aka Facebook CAPI
Facebook est un service en ligne de médias sociaux et de réseautage social appartenant à Meta. Cette destination vous permet d'envoyer tout type d'événement directement à Facebook via 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 les campagnes liées à un produit spécifique aux utilisateurs qui l'ont déjà acheté, ou vous pouvez également envoyer des campagnes aux utilisateurs ayant 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 connector.
Où puis-je trouver le Pixel ID ?
Vous devez remplir le pixel ID sur notre connector, c'est l'ID du pixel que vous venez de créer aux étapes ci-dessus.
Vous pouvez trouver cet ID lorsque vous cliquez sur le nom du pixel et à droite du graphique d'activités. Vous pouvez aussi le trouver dans l'onglet paramètres.

Vous pouvez maintenant copier et coller cet ID sur notre connector.
Ensuite, vous avez besoin de l'Access Token
Où puis-je trouver l'access token ?
Vous pouvez définir votre access token de deux manières :
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 les identifiants de votre compte Facebook.
Allez dans les paramètres de votre destination et sélectionnez vos credentials ajoutées 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 d'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 utilisant notre produit TRUST Commander :
TRUST Commander est notre Consent Management Platform. (Plus d'informations : https://www.commandersact.com/en/solutions/trustcommander/)
Sur le connector, 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 tags d'événements, 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é au JSON ou au CSV pour préciser les IDs des catégories de consentement de l'utilisateur. Ensuite, dans les paramètres du connector, 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,
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 connector.
Comment la déduplication entre le pixel et le server est-elle gérée ?
L'utilisation conjointe du pixel et du server est recommandée par Facebook car elle peut éviter la perte de données.
Pour que cela fonctionne, vous devez avoir la même configuration pour le pixel et le server, en utilisant les mêmes paramètres Facebook.
event_id devrait être le même
Sur le pixel, event_id est automatiquement généré par notre Commanders Act Tag et nous récupérons la même valeur pour le server sur integrations.facebook.event_id. En conséquence, ces 2 valeurs doivent être identiques.
Event_name devrait être le même aussi.
Fbp le paramètre est automatiquement récupéré pour conserver la même valeur entre le pixel et le server.
La déduplication fonctionne lorsque le même événement est envoyé d'abord depuis le navigateur et puis depuis le server, 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 automatiquement généré.
Sur le server :
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 to Facebook Standard Events
Le Facebook CAPI Destination transformera l'événement Commanders Act 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 é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 mappages suivants sont entièrement automatisés et ne nécessitent pas de configuration supplémentaire par défaut. Vous pouvez toujours 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 App tracking
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 aux événements du 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 associé nommé. Sinon, il sera envoyé sans 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 (sans 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 App tracking 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 devez é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 matcher 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'apparier un événement avec d'autres événements. Mais pour faire correspondre un utilisateur, un de ces événements devra contenir des informations supplémentaires (em et ph sont les mieux adaptées pour le matching)
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 content type
custom_data.content_type [3]
status
custom_data.status
items.length
custom_data.num_items
Envoyez toutes les propriétés de votre é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 standard properties. Le reste est complètement libre.
Par défaut, nous remplissons custom_data comme suit :
Nous copions tous les CommandersAct Event propriétés dans
custom_data(à l'exception de certains champs de contexte commesource_key)Ensuite nous mappons les propriétés standard selon le tableau ci-dessus (peut écraser 1. valeurs)
Enfin, nous remplaçons avec
integrations.facebook.custom_data.<property>si existe
Remplacer custom_data
custom_dataLe meilleur choix serait d'utiliser Properties Transformation pour modifier les propriétés de votre é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 hors ligne
La méthode recommandée est d'utiliser le HTTP Tracking API source pour envoyer vos événements hors ligne 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 mapping automatique ici : Mapping action_source
Mis à jour
Ce contenu vous a-t-il été utile ?