Meta Conversions API: Setup, Shopify and Deduplication
What the Meta Conversions API does, how to turn it on in Shopify, how deduplication and Event Match Quality work, and the 2026 changes to watch.
Sara
Co-founder & CTO

The Meta pixel runs in the shopper's browser, and browsers now have plenty of reasons not to send what it collects. The Meta Conversions API is the server-side route for the same events, and for most online stores it is no longer optional if Meta is expected to see the purchases its ads produce. This guide covers what it is, how to switch it on in Shopify, how to stop it double-counting, and how to check whether what Meta reports matches your orders.
The short answer: run the Conversions API alongside the pixel, and check both with Arktis
The Meta Conversions API, often still called the Facebook Conversions API, sends conversion events from a server or platform to Meta instead of from the browser. Meta recommends running it alongside the Meta pixel, with a shared event ID on each event so the two copies are deduplicated. On Shopify, you switch it on by setting the Facebook & Instagram channel's customer data sharing to Enhanced or Maximum.
The Conversions API improves what Meta receives; it does not tell you whether Meta's numbers are right. For that independent check, Arktis is the clear winner for an online store: it captures the fbclid on landing, syncs Meta ad spend through a direct connection, matches Shopify orders to visitors, and reports return on ad spend and customer acquisition cost per Meta campaign from matched orders. Arktis does not send events to the Conversions API. Plans are $49, $149 and $349 a month, with a 7-day free trial on Growth.
| Meta pixel | Conversions API | Arktis | |
|---|---|---|---|
| Runs in | The visitor's browser | A server, server to server | Your site plus Shopify orders |
| Sends data to | Meta | Meta | You, nothing goes to Meta |
| Browser ad blockers | Can stop it | Cannot block it | Orders still arrive from Shopify; the click behind them can be lost |
| Job | Reporting and ad optimisation | Reporting and ad optimisation | Checking Meta's numbers against orders and spend |
Key takeaways
Pixel only is a partial picture: ad blockers, declined consent and Safari's cookie limits all remove events before they reach Meta. The Conversions API recovers some of that, but only if the server events carry good customer information, which Meta scores as Event Match Quality out of 10, and only if every event pair shares an event_id. Two 2026 changes affect how you read the results: Meta now counts only link clicks as click-through, and Marketing API v24 stops being available on 6 October 2026. Whatever Meta reports, reconcile it against your own orders.
What the Meta Conversions API is
Meta describes the Conversions API as a connection between an advertiser's marketing data, from a server, website platform, mobile app or CRM, and Meta's systems. In practice, a web integration posts events such as Purchase to an events endpoint for your pixel, with the event name, the time, the page and a block of customer information.
That customer information is what makes a server event useful. Meta's documentation lists the fields: email, phone, name, city, postcode and country must be hashed with SHA-256 before sending, while the client IP address, user agent and the fbc and fbp values must be sent unhashed. The fbc value is the Meta click ID stored in the _fbc cookie on your domain, derived from the fbclid on the landing URL, and fbp is the browser ID in the _fbp cookie.
Why the pixel alone under-reports
Three things stop browser events reaching Meta. The first is ad blockers: Shopify's own help page on Meta data sharing says a browser-based ad blocker can prevent the pixel from sharing data, while data sent server to server cannot be blocked that way.
The second is consent. On Shopify, pixels in regions where consent is required, typically the EEA and UK, run only when the visitor has granted the permissions the pixel needs, and new pixels need both marketing and analytics permission by default. That is correct behaviour, and it means the pixel will always see fewer purchases than you took.
The third is storage. WebKit's tracking prevention deletes cookies created in JavaScript after 7 days without interaction with the site, and caps them at 24 hours when a visitor arrives from a site Safari classifies as a tracker, such as Facebook, through a link carrying a click ID. A pixel that relies on a JavaScript cookie to remember the click will lose it sooner in Safari.
Meta's own guidance is to run the Conversions API alongside the pixel rather than replacing it, which it calls a redundant setup, so that one route can cover events the other drops.
How to set up Conversions API on Shopify
For most stores the setup is a setting, not a project. From your Shopify admin, go to Sales channels, then Facebook & Instagram, then Settings, and open the data sharing settings. Turn on customer data sharing, choose a level, and connect or create your pixel. Shopify's help pages label that screen slightly differently, as Data sharing settings on one and Share data settings on another, so look for either.
The three levels do different things. Standard uses the pixel only. Enhanced adds the Conversions API, which sends the purchase event between Shopify's and Meta's servers. Maximum uses the Conversions API and the pixel and, in Shopify's words, is updated with Facebook's latest advertising technology. Enhanced and Maximum both share the customer's name, location, email and phone number to match users on Meta's network. Shopify notes that the options offer different privacy settings depending on when you installed the channel.
Two housekeeping steps finish the job. Remove any Meta pixel code pasted into theme.liquid, because Shopify warns that two pixels on the store cause duplicate or incorrect data. And update your privacy policy, since Enhanced and Maximum share personal information and Shopify asks merchants to keep their privacy policy up to date.
Stores on custom stacks send the events themselves, through a partner integration, server-side tagging or direct calls to the API. If that is you, the version your code calls now matters, which is covered below.
Deduplication with event_id
If the pixel and the server both send a Purchase, Meta needs to know it is one purchase. The rule is exact: the pixel's eventID must match the Conversions API's event_id, and the pixel's event name must match the server's event_name. Meta only deduplicates events received within 48 hours of the first event with that ID, and where the two copies do not differ meaningfully, it generally keeps whichever arrived first.
There is a fallback that compares event_name with fbp or external_id, but Meta documents that it only works when the browser event arrives first and the server event second. Do not rely on it. Generate one ID per order, use it in both places, and check Meta's deduplication key feedback after launch.
Event Match Quality
Event Match Quality is Meta's score, out of 10, for how well the customer information on your server events matches them to Meta accounts. Meta calculates it from which parameters arrive, their quality, and the share of events it can match, and it is currently available only for web events.
The practical levers are the fields above. Send a hashed email and phone on every purchase, pass the fbc and fbp values from the browser, and include the IP address and user agent. Meta's dataset quality metrics sit alongside the score: event coverage, meaning the share of pixel events also covered by the Conversions API, deduplication key feedback, data freshness, and an estimate of additional conversions reported.
What changed in 2026
Meta announced on 3 March 2026 that click-through attribution for website and in-store conversions would include only link clicks, rolling out later that month for campaigns optimising for those conversions. Conversions after shares, saves and other non-link actions move into engage-through attribution, the new name for engaged-view, and an engaged view of a video ad is now 5 seconds rather than 10. Meta said the aim is reporting that aligns better with tools like Google Analytics. If your click-through purchases fell in March, check this before you blame the integration.
For custom integrations, versions matter. Meta's Marketing API changelog lists v24.0 as available until 6 October 2026. Version 26.0 was released on 29 July 2026, and its changelog applies several deprecations to all remaining versions from 27 October 2026. That changelog lists no Conversions API removals, but a server integration pinned to an old version should be moved and retested now rather than in October.
How to check Meta's numbers against real orders
Start with counts, not attribution. Compare purchase events Meta received in a week with the online orders in Shopify for the same week. A gap below your order count is expected; a figure above it means duplicates.
Then compare attributed results. Take a store where Ads Manager reports 150 purchases for a campaign in a month and its own order data ties 110 orders to clicks from that campaign, as an example. The difference is not necessarily an error: Meta also credits engage-through conversions, after shares, saves and engaged video views, while an order-based view only sees the clicks it recorded. The point is to know the size of the gap before spending against it.
Arktis gives you the order-based side. It holds the fbclid and UTM parameters against the visitor across sessions, imports spend from Meta per campaign, and compares first-touch, last-touch, linear, time-decay and position-based credit per ad platform, so you can see how much the answer depends on the model.
Where Arktis does not fit
Arktis is a measurement layer, not a data pipe to Meta. It does not send Conversions API events, so it will not raise your Event Match Quality or give Meta's algorithm more signal. If Meta's optimisation is starved of purchases, the fix is the Conversions API itself, set up through Shopify or a server-side tool.
It also sees only what its tracker and your orders record. A purchase that follows a video view, share or save with no click is invisible to it by design, which is exactly why its numbers and Meta's will never match exactly.
Next steps
To see Meta spend against your own orders, start the 7-day Growth trial, or compare plans on the pricing page. Related reading: Shopify Thank you page tracking after the upgrade, fbclid tracking and attribution and server-side tracking for e-commerce. The free Facebook ads calculator works out the numbers without an account.
Sources
Meta for Developers: Conversions API, what the API is, accessed 24 September 2026
Meta for Developers: deduplicate pixel and server events, the recommendation to run both, event_id rules and the 48-hour window, accessed 24 September 2026
Meta for Developers: customer information parameters, hashing rules and the fbc and fbp values, accessed 24 September 2026
Meta for Developers: Dataset Quality API, Event Match Quality and related metrics, accessed 24 September 2026
Meta: changes to click-through attribution, published 3 March 2026
Meta Marketing API changelog, v24.0 available until 6 October 2026, accessed 24 September 2026
Meta Graph API changelog: v26.0, released 29 July 2026, deprecations applying to all versions from 27 October 2026
Shopify Help Center: Facebook data sharing, the Standard, Enhanced and Maximum levels and setup steps, accessed 24 September 2026
Shopify Help Center: pixels overview, consent behaviour for pixels, accessed 24 September 2026
WebKit: tracking prevention, the 7-day and 24-hour cookie caps, accessed 24 September 2026
Frequently Asked Questions
What is the Meta Conversions API?
The Meta Conversions API, also called the Facebook Conversions API, sends conversion events such as purchases to Meta from a server or platform instead of from the visitor's browser. Meta recommends running it alongside the Meta pixel, with a shared event ID so duplicate events are removed. Because the events travel server to server, browser ad blockers cannot stop them.
How do I set up the Conversions API on Shopify?
In your Shopify admin, go to Sales channels, Facebook & Instagram, Settings, and open the data sharing settings. Turn on customer data sharing and choose Enhanced or Maximum, both of which add the Conversions API to the Meta pixel. Remove any pixel code pasted into your theme, because a second pixel causes duplicate data.
How does Conversions API deduplication work?
Meta treats a pixel event and a server event as one when the pixel's eventID matches the server's event_id and the event names match. Deduplication only applies to events received within 48 hours of the first event with that ID. A fallback using fbp or external_id exists, but it only works when the browser event arrives before the server event.
What is a good Event Match Quality score?
Event Match Quality is scored out of 10 and measures how well the customer information on your server events matches them to Meta accounts. It is calculated from which parameters you send, their quality and the share of events matched, and is available only for web events. Sending a hashed email and phone, the fbc and fbp values, IP address and user agent on every purchase is the practical way to raise it.
Does the Conversions API make Meta's reported conversions accurate?
It makes them more complete, not independently verified. Meta still reports conversions under its own attribution rules, including engage-through conversions after shares, saves and engaged video views, and since March 2026 counts only link clicks as click-through. To check the numbers, compare them against your own orders in a tool that does not depend on Meta, such as Arktis.
Free tools for this topic
From the blog
Try Arktis free for 7 days
Attribution tracking, session recordings, and AI automation in one platform. Set up in 2 minutes, free for 7 days.
Start 7-day free trialWritten by
Sara
Co-founder & CTO
Sara architects Arktis's technical infrastructure, specializing in AI agents and real-time data processing systems.