If you run Meta ads, you have probably seen this. Ads Manager shows 40 purchases, your store shows 60 orders, and nobody can explain the gap. A big part of it comes from browser tracking. Ad blockers, iOS privacy settings and slow pages all stop the pixel from firing sometimes. The Meta Conversions API is how most advertisers fill that gap. This guide covers what it does, how to set it up, where Google Ads enhanced conversions fit in, and why your numbers still won’t match perfectly afterwards.
What does the Meta Conversions API actually do?
The Meta pixel runs in the visitor’s browser. The Meta Conversions API sends the same events from your server, or from a tool connected to your store’s backend, straight to Meta. So if the browser blocks the pixel, the server event can still go through.
Meta’s own advice is to run both together. The browser event adds extra signals, and the server event adds reliability. Since the same purchase now arrives twice, Meta needs a way to count it once. That is called deduplication, and it comes up in the setup steps below.
One thing people miss. A server event isn’t stopped by an ad blocker, but it still needs customer details to be useful. If you send a purchase with no email, no phone number and no browser cookie, Meta can’t tell who bought.
Server-Side Tracking in Plain Words:
Server-side tracking just means your server sends the conversion data, instead of the visitor’s browser doing it. You decide what gets sent, to which platform, and when. Pages can also get a bit lighter because fewer scripts run in the browser.
It does not let you skip consent. If a visitor said no to tracking, that choice still applies on the server side. With India’s DPDP Act at home and GDPR for overseas traffic, check your cookie banner and make sure your server events follow it.
Which Setup Path Should You Pick
| Setup path: | Best for: | Effort: | Watch out for: |
| Partner integration (Shopify, WooCommerce and similar) | Small and mid-size stores | Low | Less control over what data is sent |
| Server-side Google Tag Manager | Agencies and brands sending data to Meta and Google together | Medium to high | Needs a hosted server and someone who knows GTM |
| Direct API or Meta’s Gateway option | Custom-built sites | High | Needs a developer and regular upkeep |
Most D2C brands on Shopify should start with the first one. Move to server-side GTM when you advertise on several platforms and want one place to control all the data.
Before You Start:
- Admin access to your Meta Business portfolio and the pixel
- A list of the events you track, usually PageView, ViewContent, AddToCart, InitiateCheckout, Purchase and Lead
- A check for old pixel code sitting in your theme, plugins or apps
- A clear idea of which customer details you collect and have permission to use
Step-by-Step Setup in Events Manager:
- Open Events Manager, pick your pixel and go to the Settings tab.
- Scroll to the Conversions API section. Choose a partner setup, or set it up manually and generate an access token. Keep that token private.
- Send events from your server with the customer details you have. Email and phone numbers need to be hashed with SHA256 before sending. Partner tools usually do this for you.
- Give every event an event_id. Use the same event_id and the same event name on the browser event and the server event. If the names differ, Meta counts two events.
- Open the Test Events tab and do an action on your site. You should see a browser version and a server version.
- After a few days, check Event Match Quality and the deduplication view. Meta scores match quality out of 10, and sending more customer details usually pushes it up.
Meta only deduplicates events that arrive within 48 hours of each other. If you resend old events in bulk, they get counted again.
How to Set Up Conversions API on Shopify
For most store owners, setting up the Conversions API on Shopify comes down to a few clicks because Shopify’s Meta channel does most of the work.
- In the Shopify App Store, add Facebook and Instagram by Meta.
- Connect your Meta business portfolio, ad account and pixel.
- Open the channel’s settings and find Data sharing. Choose Enhanced or Maximum. These two levels turn on the Conversions API next to the browser pixel.
- Remove any pixel code you pasted into the theme by hand or left behind by older apps. Duplicate pixels often inflate numbers.
- Place a test order and check that the Events Manager shows a purchase event from both the browser and the server.
The native channel covers the standard events. If you need custom ones that Shopify doesn’t send on its own, like a COD order confirmed later by phone, then setting up Conversions API on Shopify becomes a job for server-side GTM or a developer.
How Do We Look at It at 360 Digital Idea
We have been running paid campaigns for over 10 years at 360 Digital Idea, and Meta Conversions API setup is part of our Meta Ads and PPC services. On a Shopify store, I always check the data-sharing level and look for an old pixel in the theme before anything else. Either one can quietly mess up the numbers.
Google Ads Enhanced Conversions: The Google Side:
Meta isn’t the only platform losing conversions. Google Ads enhanced conversions work in a similar way. When someone buys or fills a form, your conversion tag picks up first-party details like email, phone, name or address, hashes them with SHA256 and sends them to Google. Google uses that to match the conversion to the ad click.
You can set it up through the Google tag, through Google Tag Manager, or through an API. There are two types. One is for sales and sign-ups on your website. The other is for leads, where you later import offline results from your CRM. The diagnostics report inside Google Ads tells you if the data is arriving properly.
One catch: enhanced conversions don’t work with conversions imported from GA4, so use the Google Ads conversion tag.
If you want Meta and Google both fed from one place, server-side tracking through server-side GTM does that. You set up the customer data once and send it to both platforms, which saves a lot of repeated work.
Why Meta Conversions Don’t Match GA4
Even with everything set up properly, the numbers will not be equal. That is normal. Here is why Meta conversions don’t match GA4 in most accounts:
- Different attribution rules. Meta credits a conversion to an ad click within 7 days or an ad view within 1 day by default. GA4 uses data-driven attribution across all channels.
- View-through conversions. Meta counts people who saw the ad, didn’t click, and bought later. GA4 can’t see these.
- Different dates. Google Ads can count a conversion on the click date, while GA4 uses the day of the purchase.
- Lost sessions. Missing UTMs, blocked analytics scripts, and consent choices can drop sessions in GA4 even when the sale happened.
- Failed deduplication. If the event_id doesn’t match, Meta may count one sale twice.
Take an example. Ads Manager shows 120 purchases, GA4 shows 70, and Shopify shows 95 orders from all sources. None of them is wrong. Meta is counting view-throughs, GA4 is splitting credit across channels, and Shopify counts every order no matter who sent it.
My usual way to work out why Meta conversions don’t match GA4 is to put all three numbers in one sheet, then switch the Meta view to 7-day click only and compare again. Treat your real order count as the base. Look at trends over weeks, not exact numbers on one day.
Mistakes That Waste a Good Setup:
- Sending the same event from the browser and server without a shared event_id
- Using different event names on each side, like ‘Purchase’ on one and ‘Purchase’ on the other
- Sending emails or phone numbers that are badly formatted before hashing, which means they never match
- Leaving the old pixel code in place after turning on the native channel
- Skipping the test step after a theme change or a new app install
- Sending data from visitors who didn’t give consent
Final Thoughts
The Meta Conversions API is not hard, but small details like event IDs and duplicate pixels decide whether it works. Start with the simplest path for your platform, test with a real order, and check match quality after a few days. Add Google Ads enhanced conversions next, so both platforms get cleaner data. And if you’re still working out how to set up the Conversions API on Shopify or why Meta conversions don’t match GA4 after you did, our team at 360 Digital Idea can look at your tracking as part of our Meta Ads management.
FAQs
Q1. What is the Meta Conversions API?
It is a way to send conversion events from your server to Meta, so tracking doesn’t depend only on the browser.
Q2. Do I need both the pixel and the Meta Conversions API?
Meta recommends using both. A server-only setup works, but you lose some browser signals.
Q3. What is server-side tracking?
Your server, not the visitor’s browser, sends the conversion data to ad platforms. Consent choices still apply.
Q4. How to set up the Conversions API on Shopify?
Add Facebook and Instagram by Meta, connect your pixel, choose Enhanced or Maximum data sharing, remove the old pixel code and test with an order.
Q5. What is Event Match Quality?
It is a score out of 10 showing how well Meta can match your events to people. Sending more customer details, like email and phone, usually improves it.
Q6. How do I check that deduplication is working?
Use the deduplication view in Events Manager. Events need the same event_id and event name and must arrive within 48 hours.
Q7. Do Google Ads enhanced conversions replace my conversion tag?
No. They add hashed customer data on top of your existing conversion tracking.
Q8. Why don’t Meta conversions match GA4 after I set up the Conversions API?
The two tools use different attribution rules, windows and view-through counting. Setup improves accuracy but never makes them identical.
Q9. Is server-side tracking allowed under privacy rules?
Yes, if you respect consent and only send data you have permission to use. Check your cookie banner and local rules.