Naar de inhoud

Meta Pixel en Conversions API met deduplicatie

De Meta Pixel draait in de browser, dus adblockers en browserbeperkingen houden een deel van zijn events tegen. De Conversions API (CAPI) stuurt dezelfde events vanuit je servercontainer, en die zijn veel moeilijker te blokkeren. Meta raadt aan om beide te gebruiken. Het nadeel: elke conversie komt dan twee keer binnen, dus je geeft beide kopieën dezelfde event-ID en Meta houdt er een.

Gevorderd 12 min lezen

Wat je leert

  • Meta Pixel-events vanuit de webcontainer sturen met een event_id.
  • Dezelfde event_id met de GA4-hit doorgeven aan de servercontainer.
  • Een Conversions API-tag instellen in de servercontainer.
  • In Events Manager controleren dat browser- en serverevents worden gededupliceerd.

Voordat je begint

  • GA4 dat via je servercontainer loopt (les 4).
  • Beheerderstoegang tot je Meta Pixel (dataset) in Events Manager.
  • Consent Mode ingericht (les 6) als je consent nodig hebt voor marketingtags.

01 Zo werkt deduplicatie

Meta ziet een browserevent en een serverevent als hetzelfde event als ze van dezelfde Pixel komen met dezelfde event_name en dezelfde event_id, en binnen 48 uur na elkaar binnenkomen. Meta houdt er een en laat de andere vallen.

  • De eventnaam moet exact overeenkomen, bijvoorbeeld Purchase in beide.
  • De event_id moet in beide identiek zijn, dus hij moet een keer worden aangemaakt, in de browser, en worden gedeeld.
  • De cookies _fbp en _fbc helpen Meta het serverevent aan de bezoeker te koppelen. Omdat de GA4-hit naar je eigen subdomein gaat, stuurt de browser deze cookies mee en kan de servertag ze lezen.

02 Maak de event-ID in de webcontainer

Genereer een unieke ID als het event plaatsvindt en push die samen met het event naar de dataLayer.

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 Maak in de webcontainer een Data Layer Variable met de naam event_id.
  2. 2 Zet in je Meta Pixel-tag (uit de Community Template Gallery of je bestaande setup) de eventnaam op Purchase en het veld Event ID op {{DLV - event_id}}.
  3. 3 Open de GA4-eventtag die purchase stuurt en voeg een eventparameter event_id toe met de waarde {{DLV - event_id}}. De ID reist nu in de GA4-hit mee naar de servercontainer.
  4. 4 Publiceer de webcontainer zodra Preview in beide tags dezelfde ID laat zien.

03 Voeg de Conversions API-tag toe in de servercontainer

Haal eerst een access token op: selecteer in Events Manager je Pixel, open Settings, scrol naar Conversions API en klik op Generate access token. Houd het token geheim, want het kan events naar je Pixel sturen.

  1. 1 Ga in de servercontainer naar Templates en dan Tag Templates, en klik op Search Gallery. Voeg een Conversions API-template toe, zoals de eigen Conversions API Tag van Meta of die van Stape.
  2. 2 Maak een nieuwe tag van de template. Vul je Pixel ID en het access token in.
  3. 3 Zet Action Source op Website. Meta vereist dat bij elk event.
  4. 4 Koppel de eventnaam (GA4 purchase aan Meta Purchase) als de template dat niet voor je doet.
  5. 5 Zorg dat de event-ID uit de eventparameter event_id komt. De meeste templates lezen die automatisch.
  6. 6 Laat de tag vuren op een Custom-trigger waarbij Client Name equals GA4 en Event Name equals purchase.

04 Test in Events Manager

  1. 1 Selecteer in Events Manager je Pixel en open Test events. Kopieer de testcode (die ziet eruit als TEST12345).
  2. 2 Plak hem in het veld Test Event Code van de servertag en publiceer, of test in de server-Preview.
  3. 3 Activeer het event op je site. Er horen een Browser- en een Server-event te verschijnen.
  4. 4 Controleer of ze als gededupliceerd zijn gemarkeerd. Zo niet, vergelijk dan de eventnaam en event_id van beide.
  5. 5 Verwijder de testcode als je klaar bent. Meta vraagt om hem alleen tijdens het testen te gebruiken, en events met die code tellen nog steeds mee voor targeting en meting.
  • Het Pixel-event en de GA4-hit hebben dezelfde event_id.
  • De server-Preview laat zien dat de Conversions API-tag heeft gevuurd met een 2xx-response.
  • Events Manager toont browser- en serverevents gededupliceerd.
  • De testcode is uit de live tag verwijderd.

Veelgestelde vragen

Kan ik alleen de Conversions API gebruiken en de Pixel weglaten?

Dat kan, maar Meta raadt beide aan. De Pixel verzamelt browsersignalen die de server niet ziet, en de server dekt bezoekers van wie de browser de Pixel blokkeert. Deduplicatie houdt de telling correct.

Waarom telt Events Manager mijn aankopen dubbel?

De twee events delen niet dezelfde eventnaam en event_id. Controleer of beide tags de ID uit dezelfde dataLayer-push lezen, en of de servertag de parameter event_id uit de GA4-hit ontvangt.

Waar komen `_fbp` en `_fbc` op de server vandaan?

De Pixel zet ze in de browser. Omdat je GA4-hits naar een subdomein van je site gaan, stuurt de browser deze cookies mee, en de Conversions API-template leest ze uit het verzoek.

Klaar om het in de praktijk te brengen?

Rol in een paar minuten een GTM-servercontainer uit op je eigen domein. Voor het Gratis-abonnement heb je geen creditcard nodig.

Gratis account aanmaken