What is the Meta Conversions API (CAPI)?
The Meta Conversions API (CAPI) is a way to send conversion events, such as a lead, a purchase or a booked call, from your server or CRM directly to Meta, instead of relying only on the Meta Pixel running in the visitor’s browser. Meta processes these server events like Pixel events, so they can be used for measurement, reporting and ad optimization (Meta for Developers).
Why the Meta Conversions API matters
The Pixel depends on the browser. Ad blockers, browser privacy features and short cookie lifetimes stop some events from ever reaching Meta.
For B2B, CAPI matters for a second reason: your best conversions happen offline, often several stages into your marketing automation flow. A demo becomes a sales-qualified lead in your CRM days later. CAPI lets you send that event back to Meta so campaigns learn what a valuable lead looks like.
How CAPI works with the Pixel
Meta’s recommended setup runs both. The Pixel catches what the browser can; CAPI catches the rest and adds events the browser never sees. Because many events arrive twice, Meta has to deduplicate them.
| Step | What happens |
|---|---|
| 1. Visitor submits a form | The Pixel fires a Lead event with eventID “lead-8F3K2” |
| 2. Your server processes the form | It sends a Lead event via CAPI with event_id “lead-8F3K2” and event_name “Lead” |
| 3. Meta receives both | It matches the Pixel’s eventID and event to the server’s event_id and event_name |
| 4. Deduplication | Meta keeps one event, if the duplicate arrives within 48 hours of the first |
Source: Meta deduplication guide. Meta also documents a fallback method that matches on event_name plus fbp or external_id, but it generally only works when the browser event arrives first. Use event_id. If you route events through a tag server, see server-side tracking.
Example: a deduplication bug
A hypothetical SaaS company launches CAPI and sees Leads in Events Manager jump from 100 a week to 190. Sales says nothing changed. The cause: the Pixel sends eventID as the form’s timestamp, while the server sends its database row ID. The IDs never match, so 90 events are counted twice.
The fix is to generate one ID when the form loads, pass it to the Pixel call and in the form submission, and send the same value as event_id from the server. After the fix, reported leads settle at about 110 a week: the 100 the Pixel saw plus roughly 10 it had been missing.
The setup step people skip is checking deduplication on day one. Before anyone looks at cost per lead, I want someone on our team to submit a test form and confirm Events Manager shows one event, not two. If the event IDs don't match, every number after that is inflated, and the campaign gets optimized against leads that never existed.
How to set up the Meta Conversions API
CAPI setup checklist
- Choose a route: a partner integration (CRM, ecommerce platform), Meta's gateway, or server-side tracking through a tag server
- Send the same events from Pixel and server with matching event_name values
- Generate one unique event_id per event and send it from both sides
- Include customer information parameters you have consent to send, hashed as Meta specifies
- Pass fbp and fbc browser IDs from cookies to the server where available
- Respect consent: only send events your privacy notice and consent choices allow (see Consent Mode v2 for Google's equivalent)
- Send CRM stage changes, such as qualified lead or closed deal, as offline events
- Check Events Manager for deduplication and match quality before you scale spend
Myth vs fact
- MythOnce you have CAPI, you can remove the Meta Pixel.
- FactMeta recommends running both with deduplication. The Pixel captures browser context; CAPI fills the gaps and adds offline events. Together they give the most complete signal.
Clean CAPI data is what makes Advantage+ campaigns optimize toward real pipeline.
Frequently asked questions
What is event_id in the Conversions API?
event_id is a unique identifier you assign to each event. Meta uses it, together with event_name, to recognize when the Pixel and the server report the same action, and keeps only one. The Pixel parameter is called eventID.
How long does Meta wait to deduplicate events?
Meta deduplicates events with the same event_id and event_name received within 48 hours of the first one. Events outside that window are counted separately.
Does CAPI get around consent rules?
No. Server-side sending changes where data travels, not whether you may send it. You still need a lawful basis and must honor the visitor's consent choices.
Do I need a developer to set up CAPI?
Not always. Many CRMs, ecommerce platforms and tag managers offer CAPI integrations. Custom forms and CRM stage events usually need some developer or automation work.
