Meta Conversions API via sGTM

La Conversions API (CAPI) envoie vos événements à Meta depuis le serveur, en parallèle ou en remplacement du pixel navigateur. Résultat : une mesure plus robuste face aux bloqueurs et à ITP, à condition de bien gérer la déduplication.

Server-Side Niveau : intermédiaire ~25 min

Pourquoi la CAPI ?

Prérequis

Étape 1 — Installer le template

1

Dans le conteneur serveur : Templates → Rechercher dans la galerie, cherchez « Meta Conversions API » (template officiel Meta) et ajoutez-le.

2

Créez ensuite un tag : Tags → Nouveau → Meta Conversions API.

Étape 2 — Configurer le tag

ChampValeur
Pixel IDVotre ID de pixel (ex. 1234567890)
API Access TokenLe token généré dans Events Manager
Action Sourcewebsite
DéclencheurLes événements à relayer (ex. purchase, generate_lead)

Le template mappe automatiquement les événements GA4 vers les événements Meta standards :

Événement GA4Événement Meta
purchasePurchase
add_to_cartAddToCart
begin_checkoutInitiateCheckout
view_itemViewContent
generate_leadLead
🔒
Ne mettez jamais l'access token côté clientLe token CAPI vit uniquement dans le conteneur serveur. S'il apparaît dans le code de la page ou le conteneur web, régénérez-le immédiatement.

Étape 3 — Déduplication avec event_id

Si le pixel navigateur et la CAPI envoient tous deux le même événement, Meta doit pouvoir les dédupliquer. La règle : même event_name + même event_id sur les deux canaux.

JavaScript — purchase avec event_id partagé
// Générer un event_id unique, partagé pixel + CAPI
var eventId = "evt_" + Date.now() + "_" + Math.random().toString(36).slice(2, 10);

dataLayer.push({ ecommerce: null });
dataLayer.push({
  event: "purchase",
  event_id: eventId,          // repris par le tag CAPI côté serveur
  ecommerce: {
    transaction_id: "T-2026-0042",
    currency: "EUR",
    value: 159.80,
    items: [{
      item_id: "SKU_HOODIE_VERT",
      item_name: "Hoodie ABconsent Green",
      price: 69.90,
      quantity: 1
    }]
  }
});

// Si le pixel navigateur tourne aussi, il doit utiliser le même ID :
fbq('track', 'Purchase',
  { value: 159.80, currency: 'EUR' },
  { eventID: eventId }
);

Étape 4 — Données utilisateur (user_data)

Pour améliorer le matching, transmettez des identifiants hachés en SHA-256. Le template CAPI hache automatiquement les champs standards s'ils arrivent en clair côté serveur — mais rien n'empêche de hacher en amont.

JavaScript — user_data au format GA4 (haché côté serveur)
dataLayer.push({
  event: "generate_lead",
  event_id: "evt_lead_" + Date.now(),
  lead_type: "demande_demo",
  user_data: {
    email_address: "prospect@example.com",   // haché en SHA-256 côté serveur
    phone_number: "+33612345678",
    address: {
      first_name: "Jean",
      last_name: "Dupont",
      city: "Paris",
      postal_code: "75002",
      country: "FR"
    }
  }
});
⚠️
Consentement requisL'envoi de user_data à Meta relève de ad_user_data (Consent Mode v2). Conditionnez le tag CAPI au consentement publicitaire recueilli par votre CMP — voir le tuto Consent Mode.

Étape 5 — Tester avec Test Events

1

Dans Events Manager → Test Events, récupérez le code de test (ex. TEST12345) et renseignez-le dans le champ Test Event Code du tag CAPI.

2

Déclenchez un événement (depuis le site ou le playground) et vérifiez qu'il apparaît dans Test Events avec la mention « Traité » et le bon canal (Server).

3

Contrôlez la déduplication : dans le détail de l'événement, Meta indique si un doublon pixel/serveur a été fusionné grâce à l'event_id.

🧪 À rejouer en démo : l'événement generate_lead du playground inclut event_id et user_data — parfait pour illustrer la déduplication et le hachage.

Ouvrir le playground