Meta Pixel and Conversions API for Shopify: How to Set Up Tracking That Records Every Sale (2026)
In short: The Meta pixel runs in your shopper’s browser and the Conversions API sends the same events from Shopify’s servers, and you want both, because the browser copy gets blocked and the server copy does not. On Shopify you do not install either by hand: the Facebook & Instagram by Meta sales channel does both, and the data-sharing level you pick decides which you get. Standard gives you the pixel alone. Enhanced and Maximum add the Conversions API. The mistake that costs merchants most is not choosing the wrong level, it is leaving an old pixel behind in theme code, in the checkout Additional Scripts box, or in a second app, so the same purchase gets counted twice and every number built on it is wrong.
If you already have your Meta product catalogue syncing, this is the other half of the job. The catalogue tells Meta what you sell. The pixel and the Conversions API tell Meta what shoppers did about it, and that is what its optimisation runs on.
The setup, settings, and dates in this guide are current as of August 2026. Meta and Shopify both change this area often, so check the current state in your own admin before relying on any specific figure.
One thing to check before anything else. Shopify’s developer documentation sets 26 August 2026 as the date script tags are sunset on the Thank you and Order status pages for stores on non-Plus plans. Plus stores passed the equivalent milestone on 28 August 2025. Purchase tracking wired into those pages the old way stops reporting, and it stops without an error. There is a section on it below. Whether that date is ahead of you or behind you as you read this, the check is the same and it is worth doing first.
The quick checklist
- You want both the pixel and the Conversions API, not one or the other. The browser pixel is blocked for a meaningful share of shoppers; the server-side copy is not.
- Install through the Facebook & Instagram by Meta sales channel. No theme editing, no pasting code.
- The data-sharing level decides what you get. Standard is pixel only. Enhanced and Maximum both add the Conversions API.
- Enhanced and Maximum share customer personal information with Meta, including name, location, email address, and phone number. That is what makes the matching work, and it is a decision you are making on your customers’ behalf.
- Remove any pixel you added by hand to
theme.liquidbefore connecting one through the channel, or your store runs two. - Check
Settings > Checkout > Additional Scriptsfor forgotten tracking code, andSettings > Customer eventsfor app pixels doing the same job twice. - Seven events fire automatically: PageView, ViewContent, Search, AddToCart, InitiateCheckout, AddPaymentInfo, and Purchase.
- Purchase values use the order’s total price, including duties, taxes, and discounts.
- Non-Plus stores: check the 26 August 2026 script tag cutoff on the Thank you and Order status pages, whether that date is ahead of you or behind you.
- Verify with a real test order in Meta’s Events Manager rather than assuming the green tick means it works.
- Your privacy policy is your responsibility, not Shopify’s and not Meta’s.
What the pixel and the Conversions API each actually do
They send Meta the same information by two different routes, and the difference between them is the route.
The Meta pixel is JavaScript that runs in your shopper’s browser. When somebody views a product or reaches your thank-you page, the browser tells Meta. It is quick to set up and it captures things the server never sees, which is why it is still worth running.
It also fails often. Ad blockers stop it. Privacy browsers stop it. iOS restrictions limit what it can carry. A shopper who closes the tab before the page finishes loading never reports anything. None of those failures announce themselves: the sale still happens in your Shopify admin, and Meta simply never hears about it.
The Conversions API sends the same events from Shopify’s servers straight to Meta’s, with no browser in the middle. As Shopify puts it in its data-sharing documentation, data sent server to server cannot be blocked by browser-based ad blockers. If the order exists in Shopify, Meta gets told about it.
Run both. The two copies are not additive; Meta reconciles the browser and server versions of the same event and keeps one. What you gain is coverage: the server copy catches what the browser missed, and the browser copy carries session signals that help Meta connect the event to a person and to the ad that brought them.
This matters beyond reporting. Meta’s automated bidding optimises toward the conversions it is told about. A store sending only browser events is not just under-reporting, it is teaching Meta to bid against a partial and skewed sample of its own customers.
How to install both on Shopify
Everything below happens in your Shopify admin. You do not need a developer and you should not be editing theme code.
Before you start, remove any pixel you added yourself. If you or a previous developer pasted Meta pixel code into theme.liquid, take it out first. Shopify is explicit that leaving it in place gives your store more than one pixel, which produces duplicate or incorrect data. Go to Online Store > Themes, open Edit code, open theme.liquid, and delete the pixel code between the <head> and </head> tags. Also check Online Store > Themes > Preferences, which has its own Meta pixel field.
Then connect the real thing:
- From your Shopify admin, go to
Sales channels > Facebook & Instagram. - Click
Settings, thenShare data settings. - In the Customer data-sharing section, turn on the
Enable data-sharingtoggle. - Choose your data-sharing level: Standard, Enhanced, or Maximum.
- Select an existing pixel from the list, or create a new one.
- Click
Confirm.
That is the whole installation. The channel adds the pixel to your store and, at Enhanced or Maximum, starts sending the server-side events too.
If you work with an agency or run an app that manages your Meta ads, check with them before you connect a pixel here. Shopify flags this specifically, because two systems sending the same events is the most common way tracking gets broken by someone trying to fix it.
The three data-sharing levels
| Level | What it sends | What Meta receives about your customers |
|---|---|---|
| Standard | Meta pixel only | Browsing behaviour in your online store. A browser ad blocker can stop it. |
| Enhanced | Meta pixel plus the Conversions API | Browsing behaviour, plus name, location, email address, and phone number, used to match shoppers to Meta accounts. |
| Maximum | Meta pixel plus the Conversions API, and Shopify says the store is kept updated with Meta’s latest advertising technology | The same personal information as Enhanced. |
Two honest observations about that table.
The difference between Enhanced and Maximum is not well documented. Shopify’s own descriptions of the two are near identical, and the only stated distinction is that Maximum keeps the store updated with Meta’s latest advertising technology, which is not specified anywhere. Most guides on this subject tell you to choose Maximum without mentioning that they cannot tell you exactly what it adds. Neither can we. What is documented is that both send the Conversions API and both share the same categories of personal information.
Shopify also notes that the levels behave differently depending on when you installed the channel. If your store has had the Facebook & Instagram channel for years, the level you are on may not do what a fresh install of the same level does. If your reported conversions look thin, that is worth checking before you go looking for a technical fault.
The step up from Standard is the significant one, and it is a genuine decision rather than a formality. Enhanced and Maximum work by sending Meta your customers’ personal details so Meta can match them to accounts. That improves your results. It is also information your customers gave you to buy a product, and how you handle it is your call and your legal exposure, not Shopify’s.
What Shopify sends automatically
Once the pixel is connected, Shopify tracks seven events without any further setup.
| Event | Fires when |
|---|---|
| PageView | A visitor views a page |
| ViewContent | A visitor views a product |
| Search | A visitor searches your store |
| AddToCart | A visitor adds a product to the cart |
| InitiateCheckout | A visitor clicks the checkout button |
| AddPaymentInfo | A visitor enters payment information in the checkout |
| Purchase | A visitor completes a purchase and reaches the thank-you page |
Purchase is the one your advertising is graded on, and its value is the order’s total price, which includes duties, taxes, and discounts. Worth knowing, because it means the revenue Meta reports is not the same figure as your product revenue, and the gap widens on stores with high shipping or tax.
The mistake that actually breaks stores: two pixels
Choosing the wrong data-sharing level costs you some accuracy. Running the same pixel twice corrupts everything downstream, and it is far more common.
Meta can reconcile the browser and server copies of one event, because they arrive carrying a shared identifier and it knows they are the same event. It cannot do that with a second, independent installation. Those events arrive with no shared identifier, so they are simply two conversions. Your purchase count doubles, your reported revenue doubles, your cost per acquisition halves, and your ROAS looks superb. Then you scale spend against a number that was never real.
Four places to check, in order of how often they cause it:
Settings > Customer events. Every app that tracks anything installs a pixel here. Klaviyo installs one, a review app installs one, the agency added a custom one. Open it and read the list; stores accumulate these and nobody removes them.theme.liquid. Hand-pasted pixel code from before the channel existed.Settings > Checkout, the Additional Scripts box. The classic hiding place, and easy to miss because you have not opened that screen in two years. Old content survives there even after a newer setup was layered on top.Online Store > Themes > Preferences. A separate Meta pixel field that is easy to forget.
The symptom is a purchase count in Meta higher than your Shopify order count for the same period. Compare the two for a completed week. They will never match exactly, for reasons covered in the ad attribution guide, but Meta reporting roughly double your actual orders is a duplicate pixel, not an attribution quirk.
The script tag cutoff for non-Plus stores: 26 August 2026
Shopify has been retiring the old way of customising checkout for several years, in waves. Per Shopify’s developer documentation, checkout.liquid and additional scripts were sunset for the Thank you and Order status pages on 28 August 2025, and script tags were sunset on those pages on the same date for Plus stores. Shopify’s stated date for sunsetting script tags on those pages for stores on non-Plus plans is 26 August 2026.
Why it matters here: the thank-you page is where the Purchase event fires. Tracking still wired into those pages the old way stops reporting, and it stops quietly. Nothing errors. Your ads keep running, your orders keep arriving, and Meta simply stops being told about the sales, which looks exactly like your advertising suddenly getting worse.
Shopify upgrades stores that have not upgraded themselves, and legacy customisations are not preserved when it does. So the check is the same whichever side of the date you are on. Only the question changes: beforehand you are asking what will break, and afterwards you are asking what was removed.
- Open
Settings > Checkoutand look at the Additional Scripts box. Tracking code sitting there needs replacing rather than keeping, and old content survives in that field even after a newer setup has been layered on top. - Open
Settings > Customer eventsand check what is installed and what each pixel covers. - If your Meta tracking runs entirely through the Facebook & Instagram channel, you are already on the supported path, and this is a check rather than a migration.
- Place a test order and confirm the purchase arrives in Meta with the right value. This is the step that actually tells you whether anything broke, and it is worth doing whether or not you think you were affected.
Dates in this area have moved before, including this one for Plus stores. Treat Shopify’s admin as the authority on your own store rather than any published date, including this guide’s.
Checking it actually works
A green tick in the Shopify admin means the connection exists. It does not mean events are arriving with the right values.
Place a real test order and watch it land. In Meta’s Events Manager, the Test Events tab shows events arriving live. You are looking for the Purchase event to appear, with the correct value and currency, and for it to show as arriving from both browser and server if you are on Enhanced or Maximum.
Do not panic if the Meta Pixel Helper browser extension shows nothing on a server-side event. That extension only sees browser traffic. An event delivered by the Conversions API is invisible to it by design, which sends a lot of merchants hunting for a fault that does not exist.
Give it time before you judge. Shopify notes that after you add a pixel you need to wait for customer activity before data appears, and Meta’s own reporting lags. A quiet first hour is normal.
Then check the number, not the setup. Compare Meta’s reported purchases against your Shopify orders for a completed week. Meta will report fewer, because some shoppers cannot be matched, and it may report more if you have a duplicate. Either way the comparison tells you more than any status indicator.
Privacy is your obligation, not Shopify’s
Worth stating plainly, because it is easy to click through. Enhanced and Maximum send Meta your customers’ names, locations, email addresses, and phone numbers. Shopify is explicit that because you decide how your customers’ personal information is shared, it is on you to make sure they understand how it is collected and processed, and to reflect that in your privacy policy.
Data sharing is a choice, and choosing the most permissive option without updating your policy is the kind of thing that is fine until it is not. Whatever level you pick, make sure your privacy policy describes it accurately.
Frequently asked questions
How do I install the Meta pixel on Shopify?
Through the Facebook & Instagram by Meta sales channel, not by editing theme code. Go to Sales channels, Facebook & Instagram, Settings, then Share data settings. Turn on data sharing, choose a level, select or create a pixel, and confirm. If you previously pasted pixel code into your theme, remove it first or your store will run two pixels.
What is the difference between the Meta pixel and the Conversions API?
They send Meta the same events by different routes. The pixel runs in the shopper's browser and can be stopped by ad blockers, privacy browsers, and iOS restrictions. The Conversions API sends events from Shopify's servers directly to Meta, where a browser cannot block them. Run both: the server copy fills the gaps and the browser copy carries the session signals Meta uses to match events to people.
Which Shopify data-sharing level should I choose for Meta?
Standard sends the pixel only. Enhanced and Maximum both add the Conversions API, and both share customer name, location, email address, and phone number with Meta so it can match shoppers to accounts. The step from Standard to Enhanced is the one that changes your coverage materially. Shopify describes Maximum as additionally keeping your store updated with Meta's latest advertising technology, without specifying what that includes.
Does the Conversions API double count my conversions?
Not on its own. Meta reconciles the browser and server copies of the same event and keeps one. Double counting comes from running a second, separate pixel installation, such as leftover code in your theme, an old script in the checkout Additional Scripts box, or another app sending the same events. Those arrive with nothing tying them together, so Meta treats them as separate conversions.
Why does Meta report more purchases than Shopify shows orders?
Almost always a duplicate pixel. Check Settings, Customer events for app pixels doing the same job, your theme.liquid file for hand-pasted code, the Additional Scripts box under Settings, Checkout, and the Meta pixel field under Online Store, Themes, Preferences. Meta reporting roughly double your order count is a duplicate, not an attribution quirk.
What events does Shopify send to Meta automatically?
Seven: PageView, ViewContent, Search, AddToCart, InitiateCheckout, AddPaymentInfo, and Purchase. No extra configuration is needed. Purchase values use the order's total price, including duties, taxes, and discounts.
Why can't the Meta Pixel Helper see my events?
Because it only sees browser traffic. Events delivered by the Conversions API go from Shopify's servers to Meta's without touching the browser, so the extension cannot detect them. Use the Test Events tab in Meta's Events Manager instead, which shows events from both sources.
What is the 26 August 2026 Shopify deadline?
It is Shopify's stated date for sunsetting script tags on the Thank you and Order status pages for stores on non-Plus plans. Plus stores passed the equivalent milestone on 28 August 2025. Purchase tracking wired into those pages the old way stops reporting without any error, and Shopify upgrades stores that have not upgraded themselves, without preserving legacy customisations. Check the Additional Scripts box under Settings, Checkout, and your installed pixels under Settings, Customer events, then place a test order to confirm purchases still arrive.
Do I still need the Meta pixel if I have the Conversions API?
Yes. Sending only server events reduces Meta's ability to match conversions to people, because it loses the browser signals that connect an event to a session and to the ad click that started it. Meta's own recommendation is to run both, and on Shopify the native channel does that for you at Enhanced or Maximum.
Does this replace my Meta product catalogue?
No, they are separate jobs and you need both. The catalogue is what Meta advertises, and the pixel and Conversions API are how Meta learns what shoppers did with those ads. Setting up one does not set up the other.
Keeping it honest
Tracking is not a thing you install once. Apps get added, themes get replaced, developers come and go, and every one of those is a chance for a second pixel to appear or a working one to stop firing. None of it announces itself, which is why the only reliable check is the arithmetic: once a month, compare Meta’s reported purchases against your actual Shopify orders for a completed period, and make sure the gap is one you can explain. A store that does that catches a tracking fault in weeks. A store that trusts the green tick catches it a quarter later, after the budget has already been spent against numbers that were never real.
Sources
- Facebook data sharing (Shopify Help Center, 2026)
- Meta pixel (Shopify Help Center, 2026)
- checkout.liquid (Shopify developer documentation, 2026)
- Upgrading and replacing your Thank you and Order status pages (Shopify Help Center, 2026)
- About the Conversions API (Meta for Business, 2026)
shopAds runs and optimises your Google Ads for Shopify automatically, working from clean product data and tracking that actually records your sales. It keeps that discipline working for you wherever your customers are shopping, from search to social feeds to AI shopping surfaces. It is performance-priced, so you only pay a share of the revenue it brings you, and nothing at all unless it beats a 200% return. Get your tracking right, and shopAds puts it to work.
See how shopAds works