Meta Pixel et Conversions API avec déduplication
Le Meta Pixel s'exécute dans le navigateur : les bloqueurs de publicité et les restrictions des navigateurs arrêtent donc une partie de ses événements. La Conversions API (CAPI) envoie les mêmes événements depuis votre conteneur serveur, bien plus difficile à bloquer. Meta recommande d'utiliser les deux. Le hic : chaque conversion arrive alors deux fois. Vous donnez donc le même ID d'événement aux deux copies, et Meta n'en garde qu'une.
Avancé 12 min de lecture
Ce que vous allez apprendre
- Envoyer des événements Meta Pixel depuis le conteneur web avec un
event_id. - Transmettre le même
event_idau conteneur serveur avec le hit GA4. - Configurer une balise Conversions API dans le conteneur serveur.
- Vérifier dans l'Events Manager que les événements navigateur et serveur sont dédupliqués.
01 Comment fonctionne la déduplication
Meta considère un événement navigateur et un événement serveur comme un seul et même événement lorsqu'ils viennent du même Pixel, avec le même event_name et le même event_id, et arrivent à moins de 48 heures d'intervalle. Il en garde un et écarte l'autre.
- Le nom de l'événement doit correspondre exactement, par exemple
Purchasedes deux côtés. - L'
event_iddoit être identique des deux côtés : il doit donc être créé une seule fois, dans le navigateur, puis partagé. - Les cookies
_fbpet_fbcaident Meta à rattacher l'événement serveur au visiteur. Comme le hit GA4 part vers votre propre sous-domaine, le navigateur envoie ces cookies avec lui et la balise serveur peut les lire.
02 Créez l'ID d'événement dans le conteneur web
Générez un ID unique au moment de l'événement et poussez-le dans le dataLayer avec l'événement.
const eventId = crypto.randomUUID();
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
event: 'purchase',
event_id: eventId,
ecommerce: {
transaction_id: 'T-10293',
value: 129.90,
currency: 'EUR',
items: [{ item_id: 'SKU-1', item_name: 'Shoes', price: 129.90, quantity: 1 }]
}
});- 1 Dans le conteneur web, créez une Data Layer Variable nommée
event_id. - 2 Dans votre balise Meta Pixel (issue de la Community Template Gallery ou de votre configuration existante), réglez le nom de l'événement sur
Purchaseet le champ Event ID sur{{DLV - event_id}}. - 3 Ouvrez la balise d'événement GA4 qui envoie
purchaseet ajoutez un paramètre d'événementevent_idavec la valeur{{DLV - event_id}}. L'ID voyage désormais jusqu'au conteneur serveur dans le hit GA4. - 4 Publiez le conteneur web dès que le Preview affiche le même ID dans les deux balises.
03 Ajoutez la balise Conversions API dans le conteneur serveur
Obtenez d'abord un jeton d'accès : dans l'Events Manager, sélectionnez votre Pixel, ouvrez Settings, descendez jusqu'à Conversions API et cliquez sur Generate access token. Gardez ce jeton secret : il permet d'envoyer des événements à votre Pixel.
- 1 Dans le conteneur serveur, allez dans Templates, puis Tag Templates, et cliquez sur Search Gallery. Ajoutez un modèle Conversions API, comme le Conversions API Tag officiel de Meta ou celui de Stape.
- 2 Créez une nouvelle balise à partir du modèle. Saisissez votre Pixel ID et le access token.
- 3 Faites correspondre le nom de l'événement (
purchasecôté GA4 versPurchasecôté Meta) si le modèle ne le fait pas pour vous. - 4 Assurez-vous que l'ID d'événement provient du paramètre d'événement
event_id. La plupart des modèles le lisent automatiquement. - 5 Déclenchez la balise sur un déclencheur Custom où Client Name est égal à
GA4et Event Name est égal àpurchase.
04 Testez dans l'Events Manager
- 1 Dans l'Events Manager, sélectionnez votre Pixel et ouvrez Test events. Copiez le code de test (il ressemble à
TEST12345). - 2 Collez-le dans le champ Test Event Code de la balise serveur et publiez, ou testez dans le Preview serveur.
- 3 Déclenchez l'événement sur votre site. Un événement Browser et un événement Server doivent apparaître.
- 4 Vérifiez qu'ils sont marqués comme dédupliqués. Sinon, comparez le nom de l'événement et l'
event_iddes deux. - 5 Retirez le code de test quand vous avez terminé, sinon les événements réels continuent d'arriver dans Test events.
- L'événement Pixel et le hit GA4 portent le même
event_id. - Le Preview serveur montre que la balise Conversions API s'est déclenchée avec une réponse 2xx.
- L'Events Manager affiche les événements navigateur et serveur dédupliqués.
- Le code de test est retiré de la balise en production.
Questions fréquentes
Puis-je utiliser uniquement la Conversions API et abandonner le Pixel ?
Vous le pouvez, mais Meta recommande les deux. Le Pixel collecte des signaux navigateur que le serveur ne voit pas, et le serveur couvre les visiteurs dont le navigateur bloque le Pixel. La déduplication garde un décompte correct.
Pourquoi l'Events Manager compte-t-il mes achats deux fois ?
Les deux événements ne partagent pas le même nom d'événement et le même event_id. Vérifiez que les deux balises lisent l'ID depuis le même push dans le dataLayer, et que la balise serveur reçoit bien le paramètre event_id depuis le hit GA4.
D'où viennent `_fbp` et `_fbc` côté serveur ?
Le Pixel les dépose dans le navigateur. Comme vos hits GA4 partent vers un sous-domaine de votre site, le navigateur envoie ces cookies avec eux, et le modèle Conversions API les lit dans la requête.
Prêt à passer à la pratique ?
Déployez un conteneur GTM serveur sur votre propre domaine en quelques minutes. L'offre gratuite ne demande aucune carte bancaire.
Créer un compte gratuit