Aller au contenu

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_id au 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.

Avant de commencer

  • GA4 qui passe par votre conteneur serveur (leçon 4).
  • Un accès administrateur à votre Meta Pixel (dataset) dans l'Events Manager.
  • Consent Mode configuré (leçon 6) si vous avez besoin du consentement pour les balises marketing.

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 Purchase des deux côtés.
  • L'event_id doit être identique des deux côtés : il doit donc être créé une seule fois, dans le navigateur, puis partagé.
  • Les cookies _fbp et _fbc aident 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.

js
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. 1 Dans le conteneur web, créez une Data Layer Variable nommée event_id.
  2. 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 Purchase et le champ Event ID sur {{DLV - event_id}}.
  3. 3 Ouvrez la balise d'événement GA4 qui envoie purchase et ajoutez un paramètre d'événement event_id avec la valeur {{DLV - event_id}}. L'ID voyage désormais jusqu'au conteneur serveur dans le hit GA4.
  4. 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. 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. 2 Créez une nouvelle balise à partir du modèle. Saisissez votre Pixel ID et le access token.
  3. 3 Faites correspondre le nom de l'événement (purchase côté GA4 vers Purchase côté Meta) si le modèle ne le fait pas pour vous.
  4. 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. 5 Déclenchez la balise sur un déclencheur CustomClient Name est égal à GA4 et Event Name est égal à purchase.

04 Testez dans l'Events Manager

  1. 1 Dans l'Events Manager, sélectionnez votre Pixel et ouvrez Test events. Copiez le code de test (il ressemble à TEST12345).
  2. 2 Collez-le dans le champ Test Event Code de la balise serveur et publiez, ou testez dans le Preview serveur.
  3. 3 Déclenchez l'événement sur votre site. Un événement Browser et un événement Server doivent apparaître.
  4. 4 Vérifiez qu'ils sont marqués comme dédupliqués. Sinon, comparez le nom de l'événement et l'event_id des deux.
  5. 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