shopify meta conversions api

Meta Conversions API on Shopify: set it up, then prove it's working

Turn on Meta's Conversions API through Shopify's Facebook & Instagram channel, check server events and deduplication, and raise Event Match Quality.

Key takeaways

  • In Shopify, the Conversions API is switched on by a data sharing level: Enhanced or Maximum. Standard sends browser pixel data only.
  • Remove any Meta pixel code from theme.liquid and other apps before connecting, or you'll double-count events.
  • In Events Manager, the Purchase event should show both Browser and Server, with deduplication working.
  • Event Match Quality depends mostly on email and phone. Collect them earlier and the score goes up.

Why the pixel alone undercounts

The Meta pixel runs in the shopper's browser, so ad blockers, privacy settings and consent banners can all stop it from firing. Every purchase it misses is a purchase Meta can't credit to an ad and can't learn from. That makes your reported ROAS lower than reality and your campaigns slower to find buyers.

The Conversions API fixes the gap by sending events from Shopify's servers to Meta's. Shopify's help center puts it plainly: data sent server to server "can't be blocked by browser-based ad blockers". On Shopify you don't need an app or a developer for this. It's a setting in the Facebook & Instagram channel, though the setting alone isn't enough. You also have to check that it works.

Turn it on: data sharing levels

Go to Sales channels → Facebook & Instagram → Settings → Data sharing settings. Turn on Customer data sharing, choose a level and connect your Meta pixel.

LevelWhat Shopify sends
StandardMeta pixel only. Browsing behaviour from the browser, so ad blockers can stop it.
EnhancedConversions API plus pixel. Adds customer details: name, location, email, phone.
MaximumSame as Enhanced, plus what Shopify calls Meta's "latest advertising technology".

If you run Meta ads, choose Maximum when it's offered. Shopify notes that the levels you see depend on when you installed the channel, so update the channel if one is missing.

Once connected, Shopify tracks PageView, ViewContent, Search, AddToCart, InitiateCheckout, AddPaymentInfo and Purchase. You're responsible for telling customers how their data is shared, so update your privacy policy to mention Meta.

Remove every other copy of the pixel first

The most common Shopify tracking problem isn't missing data. It's double data. Before or right after connecting, remove the pixel from everywhere else:

  1. Theme code: Online Store → Themes → … → Edit code → theme.liquid. Search for fbq( or connect.facebook.net and delete the Meta pixel snippet in the <head>. Duplicate the theme first.
  2. Old preferences field: Online Store → Preferences. If a Meta pixel ID is set there, remove it.
  3. Custom pixels: Settings → Customer events. Check for a custom pixel that loads Meta's script.
  4. Apps and agencies: tracking apps, page builders and some review or upsell apps can fire their own Meta events. Ask your agency whether they installed anything.

You can often spot double-counting without opening any code. Meta reports more purchases than Shopify has orders for the same day. Reported ROAS looks better than your bank account. Cost per purchase drops overnight after an app install, with no change to the ads. Any one of these means find the second pixel before you trust another number in Ads Manager.

Then check from the outside. Install Meta's Pixel Helper browser extension, load a product page, and confirm one pixel ID fires one PageView and one ViewContent.

Prove it's working in Events Manager

Open Meta Events Manager, choose your dataset (pixel) and go to Overview. Wait at least a day of normal traffic after setup, then check:

  1. Connection method. Click Purchase. It should list both Browser and Server. Browser only means the Conversions API isn't sending purchases, so recheck the data sharing level.
  2. Deduplication. When the same purchase arrives from browser and server, Meta merges them using a shared event name and ID. Meta's best practices explain the mechanics. In the Purchase event details, the deduplication section should show the overlap is handled. If Meta reports duplicate events, you still have a second pixel somewhere.
  3. Purchase counts. Compare yesterday's Purchase events in Events Manager with yesterday's orders in Shopify Analytics. Server events should land close to your order count. Expect some difference from orders created by staff, POS or wholesale, which don't come from the online store.
  4. Diagnostics tab. Read every warning. Two common ones are "events missing parameters" (usually fine for PageView) and anything about mismatched domains.

If server events still don't appear after 48 hours, disconnect and reconnect the pixel in the data sharing settings, then contact Shopify support with screenshots of Events Manager. Merchants in the Shopify Community report getting bounced between Meta and Shopify, so screenshots save a round trip.

Raise Event Match Quality

Events Manager gives each server event an Event Match Quality score out of 10. It measures how well the customer details attached to the event can be matched to a Meta account. Meta's documentation says only matched events are used for attribution and ad delivery optimisation. A low Purchase score means fewer of your sales teach the algorithm anything.

Meta lists email and phone as the strongest matching parameters, then IP address, name and the first-party browser cookies. On Shopify, Maximum sends what checkout collects. So the lever is what you collect, and how early:

  • Make phone number required at checkout in Settings → Checkout, if your delivery carriers already need it. Purchases then carry a phone as well as an email.
  • Capture email before checkout with a newsletter or back-in-stock form. Visitors who identify themselves earlier get richer AddToCart and InitiateCheckout events.
  • Encourage customer accounts for repeat buyers, because logged-in sessions carry known details.
  • Check your consent banner. In regions where consent is required, marketing tracking waits for it. A banner that's hard to accept lowers both browser and server signal.

Watch the Purchase score weekly for a month after any change. Upper-funnel events such as PageView usually score lower than Purchase, and that's normal.

Use the better numbers

Once purchases are counted properly, your reported ROAS will usually rise. That isn't more profit, just better counting. Before you scale budgets on the new numbers, work out what return you actually need: put your margin, shipping and fees into the break-even ROAS calculator, then check one full order in the profit calculator. To see which creatives competitors keep running, the winning ads spy pulls their live Meta ads.

Recheck Events Manager after every theme change, checkout change or new app install. Those are the moments a second pixel tends to come back.

Shopify questions

What's the difference between Enhanced and Maximum data sharing?

Both add the Conversions API to the Meta pixel and share customer details such as name, email and phone. Shopify describes Maximum as also using Meta's latest advertising technology. If both are offered, Maximum is the usual choice for stores running Meta ads.

Why don't I see Enhanced or Maximum in my settings?

Shopify says the levels on offer depend on when you installed the Facebook & Instagram channel. Make sure the channel is up to date and a pixel is connected. If the levels still don't appear, contact Shopify support.

What Event Match Quality score should I aim for?

Meta scores each server event out of 10 and doesn't publish a pass mark. Treat your current Purchase score as the baseline and aim to raise it. Collecting email and phone more reliably moves it most.

Do I need a third-party app for the Conversions API on Shopify?

Not to get started. Shopify's own Facebook & Instagram channel sends server events once data sharing is Enhanced or Maximum. Look further only if Events Manager shows server events missing after you've followed the checks in this guide.