On this page
- 01 · The setup, in one paragraph
- 02 · Standard, Enhanced or Maximum: which data sharing level to choose
- 03 · How to set it up in Shopify
- 04 · Stop double counting: remove old pixels first
- 05 · The Australian catch: your purchase value includes GST
- 06 · How to check it is working
- 07 · Cookie banners and customer privacy settings
- 08 · Questions we get about the Meta pixel on Shopify
- 09 · Sources
The setup, in one paragraph
In your Shopify admin, open Sales channels, then Facebook & Instagram, then Settings and the data sharing settings. Turn on customer data sharing, choose Maximum and connect your pixel. That single setting runs the Meta pixel in the browser and the Conversions API from Shopify's servers, so you do not need a developer, a tag manager or a paid tracking app for a standard store.
Then remove any older pixel code from your theme, because a second pixel is the most common reason a Shopify store over-reports purchases. Finish with a real test order and a comparison of Meta purchases against Shopify orders. If those numbers still look wrong, our attribution gap diagnostic helps you find where the gap sits.
Standard, Enhanced or Maximum: which data sharing level to choose
Shopify offers three levels. Choose Maximum, or Enhanced if Maximum does not appear on your store. Shopify says the levels offered can differ depending on when you installed the app.
| Level | What runs | Customer data shared | Blocked by a browser ad blocker? |
|---|---|---|---|
| Standard | Meta pixel | Browsing behaviour only | Yes |
| Enhanced | Meta pixel and Conversions API | Behaviour, plus name, location, email and phone | The server purchase event gets through |
| Maximum | Conversions API and Meta pixel, updated with Meta's latest advertising technology, in Shopify's words | The same as Enhanced | The server events get through |
Two details the ranking guides get wrong or skip:
- Maximum does not collect more customer fields than Enhanced. Shopify's data sharing page says it collects the same customer data, so the choice is about Meta's newer technology. Guides saying Maximum adds phone and address are not reading Shopify's page, which lists phone number under Enhanced too.
- Shopify's two help pages word this differently. Its pixel page lists name, location and email for the higher levels, while its data sharing page adds phone number. Work from the longer list when you write your privacy policy.
Whichever level you pick, Shopify asks you to keep your privacy policy up to date so customers know how their data is shared. Review yours the day you change this setting.
How to set it up in Shopify
Have your Shopify admin login ready, along with access to the Meta business portfolio that owns your pixel. Then:
- From the Shopify admin, go to Sales channels and open Facebook & Instagram.
- Click Settings, then open the data sharing settings. Shopify's help pages call this both Share data settings and Data sharing settings, so look for either.
- In the Customer data sharing section, turn data sharing on. You have to do this before you can add a pixel.
- In the level section, select Maximum.
- Pick your pixel from the list. Use the pixel your ads already optimise on, so you keep its history.
- Confirm.
Once connected, Shopify tracks these events for you: PageView, ViewContent, Search, AddToCart, InitiateCheckout, AddPaymentInfo and Purchase. Those cover the optimisation events a Shopify store needs, so resist adding your own copies of them.
To swap to a different pixel later, go back to Settings, click Change in the data sharing section, then connect or create another one. Check first whether your live campaigns optimise on the old pixel. Moving them to a new pixel starts their learning again, which we cover in our guide to Learning limited.
Stop double counting: remove old pixels first
Meta removes duplicates between a browser event and a server event when both carry the same event name and the same event ID (eventID in the pixel, event_id in the Conversions API), and they arrive within 48 hours. Shopify's help pages do not describe the IDs its app sends, so confirm the pairing yourself in the checks further down.
Meta does not deduplicate events when they all come from one source. Two browser copies of a purchase, one from the app and one from old theme code, can both count. That is why cleaning up matters more than any setting. Check these three places:
- Theme code. Go to Online Store, your current theme, Edit code, then
theme.liquid. Delete any Meta pixel code between the<head>tags and save. Shopify warns this old code can leave your store with more than one pixel and incorrect report data. - Online Store preferences. Go to Online Store, then Preferences, and delete the pixel in the Meta pixel section if one is there.
- Other tools. Look in Google Tag Manager, in your Shopify custom pixels under Settings and Customer events, and in any tracking app. Anything sending Purchase to the same pixel is a second source.
A custom pixel in Shopify's pixel manager runs in the browser and does not give you the Conversions API. For a standard store we recommend the app, and leaving custom pixels for events the app does not send. Name any custom event differently so it can never be mistaken for Purchase.
The Australian catch: your purchase value includes GST
Shopify says events that track order value use the order total, which includes duties, taxes and discounts. For an Australian store with GST-inclusive prices, the revenue Meta reports therefore has GST in it. Your real revenue is lower than Ads Manager shows, and so is your real return.
Here is a worked example. A store spends A$5,000 and Meta reports A$20,000 in purchase value.
| Measure | Sum | Result |
|---|---|---|
| Reported ROAS | 20,000 / 5,000 | 4.00 |
| GST inside the purchase value | 20,000 / 11 | A$1,818.18 |
| Purchase value before GST | 20,000 - 1,818.18 | A$18,181.82 |
| ROAS before GST | 18,181.82 / 5,000 | 3.64 |
Set your break-even ROAS on the same basis as the number you compare it with. If you work out break-even on prices before GST, compare it with 3.64, not 4.00. Our Shopify ecommerce calculator works through margin, fees and the return you need.
Shopify's page does not say how shipping is treated, so check it on your own store. Place a test order with paid shipping, then compare the value on the Purchase event with the order total.
How to check it is working
- Run Test events. In Meta Events Manager, open your pixel, then Test events. Browse your store and place a real order, then confirm PageView, AddToCart, InitiateCheckout and Purchase appear once each.
- Check for browser and server. On the Purchase event you should see both connection methods. Meta calls this a redundant setup and recommends it for events the pixel can miss through network issues or page loading errors.
- Read the Diagnostics tab. Events Manager lists setup problems and fixes here. Clear anything about duplicates or missing parameters first.
- Check Event Match Quality. Meta scores your web events out of 10 for how well the customer information you send can match to an account. Email, IP address, name and phone are the parameters it names. Standard sends no server events to score, so moving to Enhanced or Maximum is the fix inside Shopify.
- Compare against orders. Take seven full days and count Shopify orders, then count Purchase events in Events Manager for the same days. More purchases than orders points to a second source, so return to the checks above. Far fewer points to a level still on Standard or to a consent setting.
Use the Events Manager count here, not the attributed purchases in Ads Manager. Attribution is a separate question, covered in why your revenue reports disagree. For the wider system of events, GA4 and your backend, read the paid media measurement stack.
Cookie banners and customer privacy settings
Shopify's pixels respect its customer privacy settings. In a market where you require consent, Shopify says web pixels run only when visitors have given the permissions the pixel needs, and new pixels need Marketing and Analytics permissions by default. You set this for each country and region you sell to.
So a consent banner switched on for Australia, or for an overseas market you sell into, changes what the browser sends. Re-run the seven-day order comparison whenever you change a banner or privacy setting, and record the date so you can explain any step change in your reporting. If you would like the tracking, the reconciliation and the ads handled in one place, that is the job we do.
Questions we get about the Meta pixel on Shopify
Do I need a paid app for the Conversions API on Shopify?
No. Shopify's Facebook & Instagram app includes the Conversions API at the Enhanced and Maximum data sharing levels. Paid tracking apps can add control for unusual setups, but a standard store gets the server connection from the free channel app.
What is the difference between Enhanced and Maximum data sharing?
Both use the pixel and the Conversions API and collect the same customer data. Shopify describes Maximum as updated with Facebook's latest advertising technology. We choose Maximum, and Enhanced if Maximum is not offered on your store.
Why does Meta show more purchases than Shopify?
Check for a second pixel first: old code in theme.liquid, a pixel in Online Store preferences, a tag manager, a custom pixel or another app. Meta only deduplicates between browser and server copies, so two browser copies can both count. Attribution windows also credit purchases differently, so compare Events Manager counts rather than Ads Manager results.
Does the Meta purchase value include GST?
Yes for GST-inclusive prices. Shopify says order value events use the order total including duties, taxes and discounts. Divide by 11 to find the GST in a GST-inclusive figure, so A$20,000 includes A$1,818.18 of GST.
Can I keep my existing pixel when I connect the app?
Yes. Select your existing pixel in the data sharing settings so it keeps its history, then delete any copy of the code from your theme. Leaving both in place is what creates duplicates.
How do I check my Meta pixel if I do not have access to the ad account?
Install Meta Ads Data Advisor, the tool Meta names for this. It shows which pixel and events it found on a page and whether they loaded.