WhatsApp us
Tracking

Meta Conversions API on Shopify: a step-by-step setup and testing guide

How to set up Meta pixel and Conversions API on Shopify, deduplicate events, raise event match quality, handle third-party checkouts and test it all properly.

Key takeaways
  • Run the Meta pixel and Conversions API together; the pixel alone misses purchases from ad blockers, iOS and in-app browsers.
  • On Shopify, the Facebook & Instagram app at its highest data-sharing level sends both browser and server events for you.
  • Browser and server events are deduplicated only when event name and event ID match, so never add a second pixel by hand.
  • Third-party checkouts popular in India can bypass Shopify's pixel entirely and need their own Meta integration.
  • Event match quality improves when more hashed customer details reach Meta, especially phone numbers with the 91 country code.
  • Test with Pixel Helper, Test events and a real order before you trust any ROAS number.

Why the pixel alone isn't enough any more

If your Shopify orders don't match what Ads Manager reports, or Meta's algorithm seems to be optimising blind, the problem is usually tracking. Setting up Meta Conversions API on Shopify alongside the pixel is the fix, and on most stores it takes an afternoon, not a developer.

The Meta pixel is a browser script. It fires when a shopper's browser loads your pages, and it fails whenever that browser blocks it: ad blockers, iOS privacy restrictions after App Tracking Transparency, Safari's cookie limits, slow connections that drop before the script loads, and in-app browsers inside Instagram and Facebook.

Conversions API (CAPI) sends the same events from a server instead. Your store tells Meta directly that an order was placed, along with hashed customer details. Nothing in the shopper's browser can block it.

This matters for more than reporting. Advantage+ sales campaigns and every conversion-optimised ad set learn from the purchases Meta can see. Missing purchases mean the algorithm learns from a skewed sample, finds fewer buyers like your real ones, and your cost per purchase rises. Good tracking is the foundation of any Meta ads account.

How Meta pixel and Conversions API work on Shopify

On Shopify, the recommended route is Meta's own Facebook & Instagram app, which installs as a sales channel. It connects your Business portfolio, ad account, catalog and pixel (Meta now calls pixels datasets in Events Manager), then sends events from both the browser and Shopify's servers.

Since Shopify moved all stores to checkout extensibility, the old method of pasting pixel code into the order status page's additional scripts no longer works. Tracking now runs through Shopify's Customer events, where apps and custom pixels run in a sandbox. The Facebook & Instagram app plugs into this automatically.

MethodBest forEffortTrade-offs
Facebook & Instagram app, highest data sharingMost Shopify stores using Shopify checkoutLow: settings onlyLimited control over custom events and parameters
Server-side tagging (server GTM or a tracking app)Stores needing custom events, multiple platforms or offline dataMedium to highMonthly hosting or app cost, needs someone to maintain it
Checkout provider's own Meta integrationStores using a third-party one-click checkoutLow to mediumMust be deduplicated carefully against Shopify's events
Meta's Conversions API GatewayBrands wanting a managed server without writing codeMediumCloud hosting cost; setup through Events Manager

Meta Conversions API Shopify setup, step by step

Before you start, make sure you have admin access to the Business portfolio that owns the ad account and pixel, and that nobody else has added pixel code to the theme. Then work through these steps in order.

  1. Audit what's already firing. Install the Meta Pixel Helper Chrome extension and browse your store. Note every pixel ID it finds. More than one, or the same one firing twice, needs cleaning up first.
  2. Remove hard-coded pixels. Check theme.liquid, Customer events for old custom pixels, Google Tag Manager and any other tracking apps. Delete duplicates so only one source sends Meta events.
  3. Install the Facebook & Instagram app from the Shopify App Store and connect your Facebook account, Business portfolio, Page, ad account and the pixel you actually want to keep.
  4. Set data sharing to the highest level. In the app's data sharing settings, choose the maximum option. This turns on Conversions API alongside the browser pixel. The lower levels send browser events only or limited data.
  5. Accept the customer data terms in Events Manager if prompted, so Meta can use hashed customer information for matching.
  6. Check your privacy policy says you share data with advertising partners like Meta. India's Digital Personal Data Protection Act is phasing in, so ask your legal adviser what consent your store needs.
  7. Verify your domain in Business settings (see the section below).
  8. Run a test order and confirm events in Test events, then check match quality after a few days of real traffic.

Once connected, the app sends the standard e-commerce events: PageView, ViewContent, Search, AddToCart, InitiateCheckout, AddPaymentInfo and Purchase. Each should appear in Events Manager with both Browser and Server listed as connection methods.

The Indian catch: third-party checkouts

Many Indian Shopify stores use one-click or COD-focused checkouts such as GoKwik, Shiprocket Checkout or Razorpay Magic Checkout. They often raise conversion rate, but they replace Shopify's checkout, so Shopify's own pixel may never see InitiateCheckout, AddPaymentInfo or even Purchase from the browser.

The usual symptom: Ads Manager shows far fewer purchases than Shopify, or Purchase shows up only as a server event with poor match quality. The opposite also happens, where both the checkout provider and Shopify send Purchase without matching event IDs, and purchases are counted twice.

  • Ask your checkout provider exactly which Meta events they send, from browser, server or both.
  • Confirm which system owns the Purchase event, and make sure only that one sends it, or that both use the same event ID.
  • Check that they pass order value in INR, content IDs that match your catalog, and customer phone and email.
  • Place a real prepaid order and a real COD order and watch both arrive in Test events.

Event deduplication: how Meta avoids counting orders twice

When the pixel and Conversions API both report the same purchase, Meta needs to know it's one order, not two. It deduplicates when two events have the same event_name and the same event_id, arriving within 48 hours of each other.

The Facebook & Instagram app handles this for you by generating a shared event ID for each browser and server pair. Deduplication breaks when something else sends events outside that pairing: a leftover pixel in the theme, a GTM tag, a second tracking app or a checkout provider.

To check deduplication, open the Purchase event in Events Manager and look at the event details for deduplication information and the diagnostics tab for duplicate or missing event ID warnings. Then compare a week of Meta purchases with Shopify orders. Meta will rarely match exactly, because of attribution windows, but it shouldn't be dramatically higher than your actual order count.

Event match quality: getting Meta to recognise your buyers

Event match quality (EMQ) is a score out of 10 that Events Manager shows for each server event. It estimates how well the customer details you send let Meta match the event to a real account. Higher match quality means more purchases attributed and better optimisation.

Customer details are sent as hashed values, so Meta never receives raw emails or phone numbers. The more of these a Purchase event carries, the better it matches:

ParameterWhat it isIndia note
phPhone numberOften the strongest match in India. Must include country code 91, digits only, before hashing.
emEmailMany COD buyers skip email, so don't make it your only identifier.
fn, lnFirst and last nameLowercase, no spaces or punctuation, before hashing.
ct, st, zp, countryCity, state, pin code, countryUse the shipping address; country as in.
external_idYour customer IDLinks repeat orders to the same person.
fbp, fbcMeta browser and click cookiesfbc carries the ad click ID and matters most for attribution.
IP address and user agentBrowser detailsSent unhashed with server events.

Purchase events on a well-set-up store typically score in the good range because checkout collects phone, name and address. Upper-funnel events like ViewContent score lower because anonymous visitors haven't shared anything yet. That's normal; focus your effort on Purchase, InitiateCheckout and AddToCart.

  • Collect phone number early, for example in a WhatsApp opt-in or login popup, so more events carry it.
  • Make sure the checkout, including any third-party checkout, passes phone with the 91 prefix.
  • Keep the ad click ID intact: avoid redirects or link shorteners that strip the fbclid parameter from ad URLs.
  • Re-check EMQ after any theme change, checkout switch or app install.

Domain verification and Aggregated Event Measurement

Domain verification proves to Meta that your Business portfolio owns your store's domain. It gives you control over who can edit link previews and attribute events to your domain, and it's still worth doing on every store.

  1. In Business settings, go to Brand safety and then Domains, and add your root domain, for example yourbrand.in.
  2. Choose a verification method. A DNS TXT record at your domain registrar is the cleanest; a meta tag in theme.liquid works too but can be lost in a theme switch.
  3. Add the record, wait for DNS to update, then click Verify.
  4. Assign the domain to the pixel or dataset you use for your ads.

Aggregated Event Measurement (AEM) is how Meta measures conversions from iOS users who opted out of tracking. It used to require you to rank up to eight events per domain. Meta has since removed that manual prioritisation for most advertisers, and AEM now runs in the background. If you still see an old event configuration screen, leave Purchase at the top.

How to test your Meta pixel and CAPI setup

Never trust a tracking setup you haven't watched fire. Work through this in one sitting, on both desktop and a mobile phone, since most Indian traffic arrives from phones and in-app browsers.

  1. Open Events Manager, select your pixel, and go to Test events.
  2. Enter your store URL and open it from the Test events screen so browser events are tagged as test traffic.
  3. View a product, add it to cart, start checkout and complete a real order with a small product or a 100% discount code.
  4. Confirm each event appears once from Browser and once from Server, with a matching event ID, and that Meta marks them deduplicated.
  5. Open the Purchase event and check value, currency INR, content IDs matching your catalog, and the number of customer parameters received.
  6. Repeat with a COD order if you offer COD, and through your third-party checkout if you use one.
  7. After 48 hours of real traffic, check the Diagnostics tab and the event match quality score for Purchase.

Troubleshooting common problems

SymptomLikely causeFix
Meta purchases much higher than Shopify ordersDuplicate pixel or events without matching event IDsRemove extra pixels and tracking apps; confirm one Purchase source
Meta purchases much lower than Shopify ordersThird-party checkout not sending Purchase, or data sharing below maximumEnable maximum data sharing; set up the checkout provider's Meta integration
Purchase value shows zero or wrong currencyCheckout integration not passing value and currencyFix the event payload; currency must be INR
Low match quality on PurchasePhone or email missing or badly formattedPass phone with 91 prefix, add name and address fields
Catalog ads show no product matchesContent IDs don't match catalog IDsUse the same product or variant ID format in events and catalog

Going further: COD, RTO and offline events

On Shopify, Purchase fires when an order is placed, including COD orders that later come back undelivered. For a brand with high RTO, Meta is partly optimising towards people who order and then refuse delivery.

Once your basics are solid, you can send a custom event for delivered or prepaid orders through server-side tagging or your logistics platform's integration, and later test optimising for it. Treat this as a second-stage project: it only helps once the event has enough volume for the algorithm to learn from, and it affects how you read ROAS. Our guide to what a good ROAS is shows how RTO changes your break-even number.

Good tracking also sharpens everything upstream. With accurate purchases, your creative tests pick real winners, and your audiences and catalog ads have cleaner data to work with. It's one of the first things we check when auditing an e-commerce account.

Frequently asked questions

Does Shopify support Meta Conversions API?

Yes. Meta's Facebook & Instagram app for Shopify sends Conversions API events from Shopify's servers when you set data sharing to the highest level. It sends browser pixel events at the same time and handles deduplication between them. You don't need a developer or custom code if you use Shopify's native checkout.

Do I need both the Meta pixel and Conversions API?

Yes, Meta recommends running both. The pixel captures browser behaviour and cookie data that improve matching, while Conversions API captures events the browser misses because of ad blockers, iOS restrictions or in-app browsers. Together, with deduplication, they give Meta the most complete picture of your conversions.

What is a good event match quality score?

Event match quality is scored out of 10. For Purchase events, aim for the good or great range Meta shows in Events Manager, which is realistic because checkout collects phone, name and address. Top-of-funnel events like PageView will score lower since visitors are anonymous. Improve scores by sending phone numbers with the 91 country code and more address fields.

Why is Meta showing more purchases than Shopify?

The most common cause is duplicate tracking: a pixel hard-coded in the theme, a GTM tag or a checkout app sending Purchase without an event ID that matches the Shopify app's event. Attribution windows and view-through conversions also add some difference. Remove extra pixels and confirm only one source sends each Purchase.

Is domain verification still required for Meta ads?

It's no longer needed to configure event priorities, since Meta removed manual Aggregated Event Measurement setup for most advertisers. It's still recommended because it proves your Business portfolio owns the domain and controls link editing and event attribution for it. Verify with a DNS TXT record so it survives theme changes.

Written by Arnav Kumar

Arnav is the founder of Adynic Technologies, a New Delhi performance marketing agency and software company. He and the team run Meta ads, Google ads and SEO for D2C brands, local businesses and B2B companies across India. About Adynic

Want us to look at your account?

A senior media buyer goes through your Meta or Google account and shows you where the budget leaks, with a 60-day plan to fix it. Free, with no commitment.

Keep reading

Related guides.