Your Meta ads show 12 leads this week, but your inbox shows 20. Or the opposite: Meta reports sales that never happened. Browser tracking alone misses events because of ad blockers, privacy settings and cookie limits, and your campaigns end up learning from half the picture.
The fix is sending conversions from your server as well as the browser. This guide walks through a Meta Conversions API setup for small and mid-sized businesses: which method to pick, which events and data to send, how to avoid double counting and how to test it.
Quick answer: A Meta Conversions API setup sends conversion events from your server, website platform or CRM directly to Meta, alongside the Meta Pixel. Pick a method (platform plugin, Conversions API Gateway, server-side Tag Manager or direct integration), send the same events as your Pixel with a matching event ID, include hashed customer data, then test in Events Manager.
What Is the Meta Conversions API?
Meta describes the Conversions API as a connection between your marketing data, from your server, website platform, app or CRM, and Meta’s systems. Instead of relying only on a script in the visitor’s browser, your server tells Meta when someone submits a form, books a call or buys something.
Meta recommends running it together with the Pixel in what it calls a “redundant setup.” The Pixel catches browser events, the Conversions API catches server events, and Meta removes the duplicates.
Why It Matters for Your Ads
Meta’s delivery system learns from the conversions you report. When events go missing, three things happen:
- Reported results look worse than reality, so you may cut campaigns that actually work.
- The algorithm optimizes on less data, which can push up cost per lead.
- Retargeting and lookalike audiences shrink, because fewer converters are recorded.
If you’re fighting rising lead costs, better tracking is often the first fix. I cover other causes in my guide on how to lower cost per lead on Facebook.
Choose Your Meta Conversions API Setup Method
There’s no single right way. The best method depends on your platform, budget and technical comfort.
| Method | Best for | Coding needed | Ongoing cost |
|---|---|---|---|
| Platform plugin or partner integration | WordPress, Shopify and similar sites | None | Usually free |
| Conversions API Gateway | Businesses wanting Meta’s guided option | None, but cloud setup | Cloud or partner fees |
| Server-side Google Tag Manager | Sites already using GTM, several ad platforms | Some | Server hosting |
| Direct API integration | Custom sites, CRMs, offline sales | Developer required | Developer time |
Plugins and partners. On WordPress, Meta’s own Meta Pixel for WordPress plugin has 400,000+ active installs and includes Conversions API support. Its rating is low, though, so test it carefully. Shopify and many booking tools have built-in Meta integrations too.
Conversions API Gateway. Meta’s Gateway guide calls it a self-serve option in Events Manager that sends events through the Pixel and Conversions API in a redundant setup. It runs on a server in your cloud account (like AWS or Google Cloud), and Meta says the only cost is the cloud resource or partner fees.
Server-side GTM. Good if you also send data to Google Ads and GA4. It needs a hosted server container and more setup time.
Direct integration. Best when conversions happen outside your website, like a signed contract in your CRM.
Step-by-Step Meta Conversions API Setup
1. Check Your Pixel and Dataset
Open Events Manager and confirm your Pixel (now part of a “dataset”) is firing on the right pages. Note which events it already tracks. The Conversions API should send the same events, not a different set.
2. Decide Which Events to Send
For most service businesses, focus on the actions that matter:
- Lead for form submissions
- Contact for calls or chats
- Schedule for booked appointments
- Purchase for online sales, with value and currency
Don’t send every page view through the server at the start. Get your key conversions right first. If you run Facebook ads for local business leads, Lead and Contact usually matter most.
3. Connect Your Chosen Method
Install the plugin, launch the Gateway or build the server container, then connect it to your dataset in Events Manager. If you use a direct integration, generate an access token in Events Manager and store it securely on your server, never in front-end code.
4. Set Up Deduplication
This is where most setups go wrong. Meta’s deduplication guide says events are matched by ID and name: the Pixel’s eventID must match the Conversions API event_id, and the event name must match too.
In practice, generate one unique ID when the conversion happens and pass it to both the Pixel and the server event. Meta only deduplicates events received within 48 hours of the first one, so send server events promptly.
5. Send Customer Information Correctly
Customer data helps Meta match events to real accounts. The customer information parameters page sets clear rules:
| Parameter | Example | Hash it? |
|---|---|---|
| Email (em) | Lowercase, no spaces | Yes, SHA256 |
| Phone (ph) | Digits with country code | Yes, SHA256 |
| First and last name (fn, ln) | Lowercase | Yes, SHA256 |
| City, state, ZIP, country | Normalized | Yes, SHA256 |
| IP address and user agent | From the browser | No |
| fbc and fbp | Meta click and browser IDs | No |
Plugins and the Gateway usually handle hashing for you. If you build it yourself, normalize first, then hash. A phone number like (650) 555-1212 becomes 16505551212 before hashing.
6. Test Before You Trust It
In Events Manager, open the Test Events tab and copy the test code. Add it to your server events, submit a real test form and watch both the browser and server events appear. Check that they show as deduplicated, not counted twice. Remove the test code when you’re done.
7. Monitor Match Quality
After a few days, check each event’s Event Match Quality score in Events Manager. A low score usually means missing customer data, like email or phone not being passed. Also watch for warnings about duplicate or missing events.
Common Meta Conversions API Setup Mistakes
- No shared event ID, which doubles your reported conversions
- Different event names on Pixel and server, like “Lead” vs. “lead_submit”
- Hashing IP address or fbp, which Meta says not to hash
- Sending unhashed emails or phone numbers
- Forgetting consent rules. In the EU, UK and similar regions, follow your cookie consent choices for server events too.
- Never checking Events Manager again after launch
If your ads have stopped spending entirely, tracking may not be the cause. My guide on Facebook ads not delivering covers the other common reasons.
Frequently Asked Questions
Do I still need the Meta Pixel if I use the Conversions API?
Yes, in most cases. Meta recommends a redundant setup with both. The Pixel captures browser activity, while the Conversions API sends events from your server that the browser might miss. Use a shared event ID so Meta can remove duplicates and count each conversion once.
How long does a Meta Conversions API setup take?
A plugin on WordPress or Shopify can take under an hour, plus testing. The Conversions API Gateway or server-side Tag Manager usually takes a few hours to a day. A direct integration with a CRM depends on your developer and systems. Always allow time to test deduplication before relying on the data.
Is the Meta Conversions API free?
Meta doesn’t charge for the API itself. Your costs come from how you run it: plugins are often free, the Gateway needs cloud hosting or a partner, server-side Tag Manager needs a hosted server and direct integrations need developer time.
What is a good Event Match Quality score?
Meta gives each event an Event Match Quality score in Events Manager. Higher is better, because it means more of your events can be matched to real Meta accounts. The easiest way to improve it is to send more customer data, like hashed email and phone, along with IP address, user agent, fbc and fbp.
Can I send offline conversions with the Conversions API?
Yes. Meta says the API can connect data from your CRM as well as your website. You can send events like a qualified lead or a closed sale, so your campaigns learn which leads became paying customers, not just who filled in a form.
Final Thoughts
A proper Meta Conversions API setup doesn’t change your ads overnight, but it gives Meta more complete data to learn from and gives you numbers you can trust. Pick the simplest method your platform supports, match your events and IDs, pass good customer data and test before you rely on it.
If you’d like help, my Meta ads management service includes a Pixel and Conversions API check, and my analytics and tracking setup service covers full tracking builds. You can also send me a message for a free review.




Comments
Be the first to share your thoughts or ask a question.
Leave a comment
Your email will not be published. Comments appear after review.