Data & Tracking
Meta Conversions API: zo zet je CAPI correct op naast je Pixel
Kopieer voor AI
De Meta Conversions API (CAPI) is een server-naar-server-koppeling die conversies zoals een lead, een demo-aanvraag of een aankoop rechtstreeks vanaf je server of CRM naar Meta stuurt. Je zet hem op naast de Meta Pixel, geeft elk event hetzelfde ID in browser en server zodat Meta dubbels wegfiltert, en test het resultaat in Events Manager. Zo leert Meta Ads op meer en betere conversiedata dan de browser alleen doorgeeft.
Deze gids gaat over de serverkant. Wil je eerst begrijpen wat de Pixel zelf meet en welke events er bestaan, lees dan onze uitleg over de Meta Pixel. Dit artikel begint waar dat artikel stopt: hoe je CAPI kiest, opzet, ontdubbelt en controleert.
Wat doet de Meta Conversions API precies?
Volgens de documentatie van Meta legt de Conversions API een verbinding tussen de marketingdata van een adverteerder, vanaf de server, het websiteplatform, een app of het CRM, en de systemen van Meta die targeting en levering optimaliseren. Server-events worden gebruikt voor meting, rapportage en optimalisatie, net zoals Pixel-events.
Het verschil zit in de route. De Pixel draait in de browser van je bezoeker. Daar spelen adblockers, Safari’s tracking-beperkingen en scripts die niet laden. CAPI vertrekt vanaf jouw kant: je eigen server, je server-side tagging-container of je CRM. Dat heeft drie gevolgen die voor B2B tellen:
- Minder gemiste leads. Een formulier dat de browser niet doorgeeft, kan je server nog wel melden.
- Conversies die buiten de website gebeuren. Een lead die drie weken later een gekwalificeerde opportunity wordt in je CRM, kun je als event terugsturen.
- Controle over wat je deelt. Je bepaalt zelf welke velden vertrekken, gehasht en wel.
Welke opzet kies je: partner, Gateway of server-side GTM?
Meta noemt drie manieren om CAPI te koppelen: een partnerintegratie, de Conversions API Gateway en een directe integratie. In de praktijk zien we bij Belgische en Nederlandse bedrijven vier varianten.
| Opzet | Hoe het werkt | Past bij | Let op |
|---|---|---|---|
| Partnerintegratie | Je CMS of shop (Shopify, WooCommerce-plug-in) stuurt events zelf door | Webshops met een standaardplatform | Weinig controle over eventnamen en deduplicatie |
| Conversions API Gateway | Een door Meta beheerde server in je eigen cloudomgeving | Teams zonder eigen tagging-server | Alleen Meta, geen andere platformen |
| Server-side Google Tag Manager | Je GTM-servercontainer stuurt events naar Meta, LinkedIn, Google Ads | B2B met meerdere advertentiekanalen | Vraagt hosting en een schone data layer |
| Directe integratie vanuit je CRM | Je CRM of backend roept de API aan | Offline en late conversies (SQL, deal) | Ontwikkelwerk en onderhoud |
Voor de meeste B2B-bedrijven die ook op Google Ads en LinkedIn adverteren, is server-side GTM de logische basis. Je bouwt één server-side laag en voedt daar alle platformen mee. Hoe die laag werkt, lees je in onze gids over server-side tracking.
Zit je met late conversies (een lead wordt pas na een salesgesprek gekwalificeerd), dan komt de CRM-route erbij. Let daarbij op de tijdslimiet: in de parameterdocumentatie van Meta staat dat event_time tot 7 dagen in het verleden mag liggen. Een deal die na zes weken sluit, stuur je dus niet meer als website-event door.
Hoe zet je de Meta Conversions API op, stap voor stap?
Dit is de volgorde die we bij elke opzet volgen.
- Breng je conversies in kaart. Welke events tellen echt? Voor B2B is dat meestal Lead (formulier), Schedule of een custom event voor een geboekte demo, en eventueel CompleteRegistration voor een webinar. Een paginaweergave is geen conversie.
- Zorg voor een data layer. Elk formulier pusht een event met dezelfde naam en een uniek event-ID in de data layer. Zonder dat ID kan Meta niet ontdubbelen. Hoe je formulieren zonder bedankpagina betrouwbaar meet, staat in onze gids over formulierconversies zonder bedankpagina.
- Stuur hetzelfde event via de Pixel. De Pixel-tag krijgt het event-ID mee als eventID.
- Stuur hetzelfde event via de server. In je server-side container of integratie gaat het event naar CAPI met event_name, event_time, event_id, action_source website, event_source_url en de klantgegevens.
- Voeg klantgegevens toe. Een gehasht e-mailadres (em), telefoonnummer (ph), de fbp- en fbc-waarden en het IP-adres en de user agent van de bezoeker. Meta vereist client_user_agent voor website-events en vraagt om contactgegevens met SHA-256 te hashen, terwijl fbp, fbc, IP en user agent niet gehasht worden, zo staat in de documentatie over klantparameters.
- Respecteer toestemming. De server-side tag vuurt alleen als de bezoeker toestemming gaf voor marketing. Daarover meer verder in dit artikel.
- Test en controleer. Gebruik de testeventscode in Events Manager voor je live gaat, en volg daarna de deduplicatie en de matchkwaliteit op.
Hoe werkt deduplicatie tussen Pixel en CAPI?
Stuur je hetzelfde event via browser en server, dan ontvangt Meta het twee keer. Deduplicatie zorgt dat het maar één keer telt. De regels staan in de deduplicatiegids van Meta:
- het eventID van de Pixel moet gelijk zijn aan het event_id van CAPI;
- de eventnaam van de Pixel moet gelijk zijn aan event_name in CAPI;
- events worden alleen ontdubbeld als ze binnen 48 uur na het eerste event met dat ID binnenkomen;
- Meta houdt meestal het event dat eerst binnenkwam.
Het ID maak je in de browser aan, op het moment dat het formulier verstuurd wordt, en je geeft het via de data layer door aan zowel de Pixel-tag als de server-side tag. Een timestamp alleen is geen goed ID: twee leads in dezelfde seconde krijgen dan hetzelfde nummer.
Meta beschrijft ook een alternatieve methode met event_name plus fbp of external_id. Die werkt, maar is minder voorspelbaar. Wij gebruiken altijd een expliciet event-ID.
Welke fouten zien we het vaakst bij CAPI?
In accounts die we nalopen, komen telkens dezelfde problemen terug:
- Dubbel tellen. Pixel en CAPI sturen hetzelfde event zonder gedeeld ID. Het aantal leads in Ads Manager verdubbelt, de kost per lead halveert op papier, en het algoritme leert op een vertekend beeld.
- Twee bronnen voor hetzelfde event. De Shopify- of WordPress-plug-in stuurt CAPI-events én je server-side container doet het ook. Eén bron per event, niet twee.
- Geen klantgegevens. CAPI-events zonder e-mail, fbp of fbc kan Meta slecht aan een persoon koppelen. Ze tellen dan nauwelijks mee voor optimalisatie.
- Ongehashte of verkeerd gehashte velden. Een e-mailadres met hoofdletters of spaties hashen geeft een andere hash. Normaliseer eerst (kleine letters, spaties weg), hash daarna.
- Elke formulierklik als Lead. Ook nieuwsbriefinschrijvingen en sollicitaties komen dan als lead binnen. Meta optimaliseert vervolgens op de goedkoopste, niet op de beste. Dit lijkt sterk op wat we beschrijven in valse positieve conversies opschonen.
- Toestemming omzeilen. “Het is server-side, dus de cookiebanner telt niet” is een misverstand. Daarover hieronder meer.
Hoe test je of de Conversions API werkt?
Controleer in deze volgorde:
- Test Events in Events Manager. Vul je testeventscode in je server-side tag in, verstuur een testformulier en kijk of het event via browser én server binnenkomt.
- Deduplicatie. In het overzicht van je dataset zie je per event of browser- en server-events ontdubbeld worden. Zie je er twee los van elkaar, dan klopt het ID of de eventnaam niet.
- Matchkwaliteit. Events Manager toont per event een score voor de kwaliteit van de klantgegevens. Is die laag, kijk dan of e-mail, fbp en fbc meegaan.
- Preview in GTM. In de preview van je web- en servercontainer zie je of het event-ID in beide tags hetzelfde is.
- CRM-vergelijking. Leg het aantal Meta-leads per week naast het aantal leads uit Meta in je CRM. Een groot verschil wijst op dubbels of gemiste events.
Een volledige check van je meting, inclusief Google Ads en GA4, doen we in een tracking-audit. Wil je zelf beginnen, gebruik dan onze checklist voor een conversietracking-audit.
Mag je CAPI gebruiken zonder cookietoestemming?
Nee, niet voor marketing. De Belgische Gegevensbeschermingsautoriteit stelt dat geen cookie of andere tracker geplaatst of gelezen mag worden zonder voorafgaande informatie en toestemming, behalve wat strikt noodzakelijk is. In Nederland hanteert de Autoriteit Persoonsgegevens dezelfde lijn. Dat de data via je server loopt, verandert niets aan het doel: advertentiemeting en targeting. Laat je server-side tag dus afhangen van dezelfde toestemming als je Pixel.
Wat CAPI wel oplost: de verliezen die niet door weigering komen, zoals adblockers, browserbeperkingen en scripts die te laat laden. Hoe je je banner en Google-signalen goed inricht, lees je in onze gids over Consent Mode v2 en in is een cookiebanner verplicht in België. Dit artikel is geen juridisch advies: leg je opzet voor aan je DPO of jurist.
Hoe stuur je CRM-data terug naar Meta?
Voor B2B is de echte winst niet het formulier, maar wat erna gebeurt. Een lead die nooit opneemt, is voor Meta even waardevol als een lead die klant wordt, tenzij je het verschil terugstuurt.
- Bewaar bij elke lead de fbc-waarde (afgeleid van de fbclid in de URL), de fbp-cookie en een gehasht e-mailadres in je CRM.
- Bepaal welke CRM-fase je terugstuurt, bijvoorbeeld “gekwalificeerd” of “demo gehouden”.
- Stuur die fase als event met action_source system_generated of website, binnen de termijn die Meta toelaat.
- Optimaliseer je campagnes op dat diepere event zodra er genoeg volume is.
Dezelfde logica gebruiken we voor Google Ads in offline conversies importeren uit je CRM. Bij Kaizo bouwden we de Meta-meting op dezelfde geboekte demo als Google Ads, zodat beide kanalen op dezelfde gebeurtenis optimaliseren: lees de Kaizo-tracking case. En hoe één kapotte formulier-listener tegelijk GA4, Google Ads, Meta en LinkedIn stillegde, lees je in de Suivo-case.
Wanneer heb je de Conversions API (nog) niet nodig?
Adverteer je nauwelijks op Meta, of komen je leads vooral via Lead Ads-formulieren binnen Facebook en Instagram, dan levert CAPI voor websiteformulieren weinig op. Bij heel lage volumes (een handvol leads per maand) is een correcte Pixel met goede eventnamen en een schone CRM-registratie belangrijker dan een server-side laag. Begin daar, en voeg CAPI toe zodra Meta een echt kanaal wordt in je Meta Ads-aanpak.
Wil je CAPI laten opzetten samen met je Google Ads-, LinkedIn- en GA4-meting, dan doet onze tracking specialist dat in één server-side opzet, op maat en op aanvraag. Neem contact op voor een eerste check.
Adverteer je op meerdere platformen, lees dan ook onze gidsen over de LinkedIn Insight Tag, de TikTok Pixel, server-side tagging en Stape.
Veelgestelde vragen
Wat is het verschil tussen de Meta Pixel en de Conversions API?
De Pixel meet in de browser van de bezoeker, de Conversions API stuurt events vanaf je server of CRM. Meta raadt aan om beide te gebruiken en ze te ontdubbelen met een gedeeld event-ID.
Heb ik server-side Google Tag Manager nodig voor CAPI?
Nee. Een partnerintegratie of de Conversions API Gateway kan ook. Server-side GTM is vooral interessant als je naast Meta ook Google Ads, LinkedIn of TikTok server-side wilt voeden vanuit één container.
Waarom zie ik dubbele conversies na het installeren van CAPI?
Meestal ontbreekt het gedeelde event-ID, verschilt de eventnaam tussen Pixel en server, of sturen twee integraties (bijvoorbeeld een plug-in en je servercontainer) hetzelfde event.
Kan ik offline conversies via de Conversions API sturen?
Ja, zolang het event binnen de termijn valt die Meta toelaat. Voor late B2B-conversies bewaar je fbc, fbp en een gehasht e-mailadres bij de lead in je CRM, zodat Meta de conversie aan de juiste persoon kan koppelen.
Werkt CAPI als een bezoeker cookies weigert?
Technisch kan de server events sturen, maar in België en Nederland mag je dat voor marketing niet zonder toestemming. CAPI herstelt vooral verliezen door adblockers en browserbeperkingen, niet door weigering.
Gratis website-scan
Geef je website in en krijg binnen enkele minuten een automatische scan met concrete technische en SEO-verbeterpunten. Geen verkooppraatje.
Je gegevens gebruiken we alleen voor je scan. Geen spam, uitschrijven kan altijd.