Install Shopify's official Facebook & Instagram sales channel, set Data sharing to Maximum to enable Conversions API alongside the browser Pixel, then verify in Meta Events Manager's Test Events tab that Browser and Server events both fire and deduplicate correctly for the same purchase. This no-code setup is the fastest way to close most of the tracking gap left by ad blockers and browser privacy restrictions.
Setting up Meta ad tracking on Shopify used to mean pasting a pixel snippet into your theme and hoping for the best. That approach misses a large share of real conversions today. Here's the current, step-by-step way to do it properly, using Shopify's own native integration rather than custom code.
You'll need admin access to your Shopify store (to add sales channels), and admin-level access in Meta Business Suite to the Business Portfolio you want to connect, including permissions for the Pixel, ad account, Page, and verified domain. Decide in advance which Pixel and ad account you intend to connect. Picking the wrong one is one of the most common setup mistakes and can be tedious to unwind later.
In Shopify admin, go to Settings > Apps and sales channels > Add apps, then search for "Facebook & Instagram by Meta" and install it. This is Shopify's official, no-code integration, and it's the fastest path to correct tracking for most stores. During setup, connect the Business Portfolio, Pixel, ad account, and Page you decided on beforehand.
Inside the Facebook & Instagram app's settings, find Data sharing (sometimes labeled Customer data sharing) and set it to Maximum (or Enhanced, depending on how Shopify is labeling it at the time you set this up). This is the setting that actually turns on server-side events through Meta's Conversions API (CAPI) in addition to the standard browser pixel. Leaving this on a lower setting is one of the most common reasons merchants think they've "installed CAPI" when they haven't.
Keep the browser pixel enabled alongside CAPI rather than replacing it. The pixel still drives real-time browser signal and retargeting audience data; CAPI fills in what the browser misses. Running both, with correct deduplication (covered below), is the standard recommended setup, not an either-or choice.
In Meta Events Manager, select your Pixel or dataset and open the Test Events tab. Enter your store's URL and open it in a private or incognito window with ad blockers disabled. Walk through a real customer journey: view a product, add it to cart, start checkout, and, if you're comfortable doing so, complete a small real or test purchase.
Back in Test Events, you should see each of those actions appear twice, once labeled Browser and once labeled Server, for the same event name. If you only ever see Browser events, CAPI isn't actually sending data yet, even if the setting looked correct. If you only see Server events with no Browser entries, check that the Pixel itself is still firing (a duplicate pixel install or leftover custom code in theme.liquid can sometimes suppress it).
When Browser and Server both report the same purchase, Meta needs to recognize they're the same event, not two separate sales. It does this by matching a shared event_id and event_name between the two. With Shopify's native integration, this matching is handled automatically, and in Events Manager you should see the pair marked as deduplicated, sometimes shown as "1 event from 2 sources."
If instead you see what looks like double the expected conversions, or two separate entries with no deduplication indicator, that's the signal something is misconfigured, most often a second, unmanaged pixel install running alongside the official app.
Event Match Quality is Meta's score, shown per event in Events Manager, for how confidently it can match a server-side event to a real person. Turning on Automatic Advanced Matching in Events Manager, and making sure Shopify's data sharing is set to Maximum so it forwards identifiers like hashed email and phone number, are the two biggest levers for improving this score. Multiple industry guides treat a score above roughly 7 out of 10 as a reasonable target, though this is a general benchmark rather than a fixed threshold Meta publishes as a strict requirement.
Running more than one tracking source for the same platform. If you have a legacy pixel snippet hardcoded in theme.liquid alongside the official app, or a third-party tracking app also sending events to the same Pixel, you can end up with triple-counted conversions that deduplication can't fully untangle, since the extra source doesn't share the same event_id logic.
Leaving data sharing on a conservative default. If Meta's dashboard still looks pixel-only after setup, this is almost always the cause. Go back into the app's Data sharing setting and confirm it's actually set to Maximum.
Skipping verification. It's tempting to install the app, flip the setting, and move on. The five or ten minutes spent in Test Events confirming Browser, Server, and deduplication are all present is what actually tells you the setup worked, rather than assuming it did.
Give it a few days after setup, then compare your Meta-reported conversions against your actual Shopify order volume for the same period. You should see the gap between the two narrow noticeably compared to pixel-only tracking, though it's normal for some gap to remain, since Meta's attribution model and Shopify's order data will never match to the last dollar. If the gap barely moves at all, revisit the data sharing setting and the Test Events check above before assuming CAPI simply doesn't help in your case.
Install the official "Facebook & Instagram by Meta" sales channel from Shopify's app store, connect your Business Portfolio, Pixel, and ad account, then set Data sharing to Maximum in the app's settings. This turns on both browser pixel and server-side Conversions API tracking without writing any code.
The Pixel is a browser-side JavaScript tracker that fires when a visitor takes an action on your site. Conversions API (CAPI) sends the same kinds of events directly from the server, bypassing the browser entirely. Running both together, with matching event IDs so Meta deduplicates them, gives more complete coverage than either alone.
In Meta Events Manager's Test Events tab, check whether matching Browser and Server events for the same purchase are marked as deduplicated (sometimes shown as "1 event from 2 sources"). If you instead see two separate, non-deduplicated entries, or conversion counts roughly double what your Shopify orders show, a second untracked pixel or app is usually the cause.
EMQ is Meta's score for how well it can match a server-side event to a real person, based on identifiers like hashed email or phone number. Higher scores generally improve Meta's ability to attribute conversions and optimize campaigns. Turning on Automatic Advanced Matching and setting Shopify's data sharing to Maximum are the two most direct ways to improve it.