Guide
Meta Conversions API, explained for small businesses
The Meta pixel only sees the browser. The Conversions API lets you tell Meta who actually bought — including sales that happen on the phone or in your CRM.
By Mike Usry · Updated
What it is
The Conversions API (CAPI) is a server-to-server connection between your business and Meta. Instead of relying on a script in the visitor’s browser (the pixel), your server tells Meta directly: this person became a lead, this person bought, this is what they paid.
Why the pixel alone falls short
The pixel runs in the browser, so it loses signal to:
- Ad blockers and privacy extensions
- iOS and Safari restrictions on tracking and cookie lifetime
- Anything that happens off the website: phone orders, booked jobs, signed contracts, in-store sales, invoices paid a week later
For a lot of small businesses, that last group is where most of the revenue is. If Meta only sees the form fill, it optimizes for people who fill out forms, not people who pay.
The two jobs CAPI does
1. Backfill website events. Your server sends the same Lead or Purchase event the pixel sends. When the browser drops it, the server copy still lands.
2. Send events the browser never sees. A sale closed in your CRM, a job completed in your
field-service software, an invoice paid in QuickBooks. These go to Meta with an
action_source that says where they happened.
Deduplication: send it twice, count it once
When the pixel and the server both send the same event, Meta needs to know it’s one event. You give both copies the same event name and the same event ID. Meta keeps one.
Get this wrong and your reported conversions double, which is worse than missing some.
Matching: how Meta knows who it was
Each server event carries customer information so Meta can match it to a real account:
- Hashed with SHA-256 before sending: email, phone, first and last name, city, state, ZIP, and your own customer ID
- Sent as-is: the visitor’s IP address and user agent, plus the
fbp(browser ID) andfbc(click ID) values from the pixel’s cookies
Normalize before hashing: lowercase and trim emails, digits-only phone numbers with country code. A sloppy phone format is the most common reason matches fail.
Meta grades web events with an Event Match Quality score from 0 to 10. More good identifiers, higher score, better optimization.
Revenue, not just events
Send value and currency on every purchase or closed-job event. Then Meta can optimize
for value and report return on ad spend from real revenue, not from a guess you typed into
Ads Manager.
What a small-business CAPI setup looks like
- Pixel on the site, with event IDs on key events.
- A server endpoint (we often use a Cloudflare Worker) that mirrors those web events with hashed customer data.
- A nightly or real-time bridge from your CRM or store that sends downstream events like booked, sold, and paid, with value.
- Customer lists synced as audiences, including exclusions of current customers. See Customer Match and custom audiences.
Native integrations vs. a custom bridge
Shopify, some CRMs, and some field-service tools ship a Meta integration that covers the basics. Use it if it does what you need. The gaps are usually the same: phone and offline sales aren’t included, the value sent isn’t the real revenue, and refunds never come back. That’s where a custom bridge earns its keep.
Questions we get
- Is the Conversions API the same as Facebook CAPI?
- Yes. Facebook Conversions API, Meta Conversions API, and CAPI are the same thing. Meta renamed the company, the API stayed.
- Do I still need the Meta pixel if I use the Conversions API?
- Usually yes. Meta recommends running both. The pixel captures browser behavior and the fbp and fbc identifiers; the Conversions API fills the gaps and carries events the browser never sees. Matching event IDs keep them from double counting.
- What happened to Meta offline conversions?
- Meta discontinued its Offline Conversions API on May 14, 2025. Offline and CRM events now go through the Conversions API with an action source that says where the event happened, like a physical store or a phone call.
- How far back can I send events?
- Web events should be sent within 7 days of when they happened. Physical-store transactions can be sent up to 62 days after the conversion. Faster is better either way: Meta's delivery system learns from recent signal.
Keep going
Shopify to Google Ads and Meta, with the orders Shopify never sees.
Shopify's built-in apps send online purchases. Your ads also need the phone orders, the refunds, the margin, and which customers come back.
See the integration → Integration · Home servicesServiceTitan, Housecall Pro, and Jobber, wired into your ads and website.
Your field software knows which calls became paid jobs. Your ads and your website should too.
See the integration → GuideClick IDs explained: gclid, gbraid, wbraid, fbclid, msclkid
That random string on the end of your ad URLs is the key to sending sales back to the ad platform. Most businesses throw it away.
Read the guide → GuideServer-side tracking: what it fixes and what it doesn't
Moving tracking to a server recovers lost conversions and makes your data yours. It doesn't fix bad data, skip consent, or see sales that happen off the website.
Read the guide → GuideCustomer Match and Meta custom audiences from your CRM
Your customer list is the best targeting data you own. Synced daily, it stops you paying to reach people who already buy and helps the platforms find more like your best ones.
Read the guide →Want this wired up for your business?
Tell us what system your customers live in and where you advertise. We'll tell you what's possible.