# Meta Pixel Not Tracking Purchases on Shopify? What to Check {#post-title}

[cPixel](/blog/#blog-cpixel)

By [B2B Gold](/about/#how-we-write) Published 24 September 2026 Updated 25 September 2026

## Why is my Meta pixel not tracking purchases on Shopify? {#why-is-my-meta-pixel-not-tracking-purchases-on-shopify}

Usually one of four things: the purchase tag lived in Shopify’s Additional scripts, which no longer run on the Thank you page; shoppers declined tracking; the Facebook & Instagram app’s pixel is paused or shares less data than you think; or Meta received the purchase but didn’t credit it to an ad. Events Manager shows which one.

This guide covers Meta showing fewer purchases than Shopify. If Meta shows more, the cause is different: see [Meta counting purchases twice](/blog/duplicate-purchases-meta-shopify/). Work through the checks below in order. Each starts in Shopify’s or Meta’s own tools, and none of the fixes costs anything.

| Symptom | Likely cause | Where to check | Fix |
| --- | --- | --- | --- |
| Events Manager has the purchases; Ads Manager shows fewer | Attribution, not tracking | The ad set’s attribution setting | Compare like with like |
| Purchases fell when the Thank you page was upgraded | The Purchase tag lived in Additional scripts | **Settings** → **Checkout** | Replace it with an app pixel |
| No purchases from the channel app’s pixel | Pixel disconnected, or paused under **Optimized** | **Settings** → **Customer events** | Reconnect it; choose **Always on** |
| Browser purchases arrive, server ones don’t | Data sharing set to **Standard** | The channel’s **Data sharing settings** | Choose **Enhanced** or **Maximum** |
| Gaps mostly from the UK and EEA | Declined consent, or a banner that doesn’t tell Shopify | Pixel test: **Pixel is awaiting consent** | Connect the banner to Shopify |
| Orders with a post-purchase offer missing | The upsell page failed to load | A test order through the offer | Fix the upsell page |
| Purchases in Events Manager, not in your ads | A different dataset | The pixel ID in each tool | One dataset for every sender |

## Is it a tracking gap or an attribution gap? {#is-it-a-tracking-gap-or-an-attribution-gap}

Find out before you change anything: if Events Manager has roughly as many purchases as Shopify has orders and Ads Manager has fewer, tracking works and the difference is attribution.

Meta says Events Manager “shows most events that have been received”, while Ads Manager shows “attributed events” only ([Meta: event counts](https://www.facebook.com/business/help/337196340694086)). A purchase counts for an ad only if it happened within a set number of days after someone saw or clicked it, and by default Meta reports it “based on the attribution setting on the ad set level” ([Meta: attribution](https://www.facebook.com/business/help/458681590974355)). A customer who buys without having seen or clicked one of your ads in that window is a real order that Ads Manager doesn’t credit.

A merchant in the Shopify Community, testing at two or three orders a day, saw only about 60% of purchases in Ads Manager: one day Events Manager had five Purchase events, one of them a sample order, and Ads Manager two ([thread](https://community.shopify.com/t/meta-ads-purchases-not-matching-shopify-orders/581794)). That is the pattern the ad set’s attribution setting produces, and at that volume one uncredited order moves the percentage a lot.

Compare the same days in the same time zone. Shopify warns that “different reporting time zones” cause discrepancies ([Shopify: analytics discrepancies](https://help.shopify.com/en/manual/reports-and-analytics/discrepancies)), and your store’s is set under **Settings** → **General** → **Store defaults** ([Shopify: business settings](https://help.shopify.com/en/manual/intro-to-shopify/initial-setup/setup-business-settings)). Whole weeks are fairer than single days.

## Did your purchase tag live in Additional scripts? {#did-your-purchase-tag-live-in-additional-scripts}

If Meta heard about purchases from a snippet in Additional scripts, it stopped when your Thank you page was upgraded: Shopify’s new Thank you and Order status pages don’t run those scripts.

Plus stores lost Additional scripts and script tags on those pages on 28 August 2025 ([Shopify: checkout.liquid](https://shopify.dev/docs/storefronts/themes/architecture/layouts/checkout-liquid)). For every other store the upgrade deadline was 26 August 2026, and “stores that weren’t upgraded by that date were upgraded automatically” ([Shopify: Thank you and Order status pages](https://help.shopify.com/en/manual/checkout-settings/customize-checkout-configurations/upgrade-thank-you-order-status), checked 24 September 2026). Within hours of the deadline, a Community [thread](https://community.shopify.com/t/meta-reporting-fewer-purchases-than-shopify-after-the-aug-26-checkout-upgrade-is-anyone-else-seeing-this/672772) reported Meta showing fewer purchases than Shopify on some stores and not others. The replacement is a pixel in **Customer events**, which loads on checkout and the Thank you page ([Shopify: pixels](https://help.shopify.com/en/manual/promoting-marketing/pixels/overview)). What to move where is in [the 26 August Thank-you-page change](/blog/shopify-additional-scripts-tracking/), and the two kinds of pixel in [app pixels and custom pixels](/blog/shopify-app-pixels-vs-custom-pixels/).

## Is the Facebook and Instagram app’s pixel connected and sharing? {#is-the-facebook-and-instagram-apps-pixel-connected-and-sharing}

Check two places in Shopify: the pixel’s status and data access under **Customer events**, and the data-sharing level in the channel’s settings.

1. Go to **Settings** → **Customer events**. The Facebook & Instagram pixel should show **Connected** in the status column ([Shopify: testing pixels](https://help.shopify.com/en/manual/promoting-marketing/pixels/custom-pixels/testing)).
2. Click the pixel and look at its data access. **Optimized** has been the default since 13 January 2026, and Shopify “can pause some or all data shared by that pixel until relevant activity resumes” ([Shopify: app pixels](https://help.shopify.com/en/manual/promoting-marketing/pixels/app-pixels)); its announcement describes pausing when it sees “zero signals coming from a pixel over days or weeks” ([changelog](https://changelog.shopify.com/posts/new-default-setting-for-pixel-data-sharing)). Meta recommends **Always on** ([Meta: connect Shopify](https://www.facebook.com/business/help/646757258759189)). To change it, choose **Always on** and click **Save**.
3. Go to **Sales channels** → **Facebook & Instagram** → **Settings** → **Data sharing settings**. At **Standard**, only the pixel sends; **Enhanced** and **Maximum** add the Conversions API, which sends the purchase between Shopify’s and Meta’s servers ([Shopify: Facebook data sharing](https://help.shopify.com/en/manual/promoting-marketing/analyze-marketing/meta-data-sharing)).

Checked 24 September 2026.

## Are shoppers declining tracking? {#are-shoppers-declining-tracking}

Some are, if you sell in the UK or EEA: there, Shopify runs pixels only with the shopper’s consent, so a shopper who declines and then buys is a purchase the pixel doesn’t report.

Shopify sets up its cookie banner for UK and EEA visitors when you have active markets there, and “pixels operate based on the consent obtained in these regions” ([Shopify: privacy settings](https://help.shopify.com/en/manual/privacy-and-security/privacy/customer-privacy-settings/privacy-settings)). New pixels need **Marketing** and **Analytics** permissions by default ([Shopify: pixels](https://help.shopify.com/en/manual/promoting-marketing/pixels/overview)). A third-party banner has to pass each choice to Shopify through the Customer Privacy API; until it does, “non-essential purposes are not allowed by default” wherever consent is required ([Shopify: Customer Privacy API](https://shopify.dev/docs/api/customer-privacy)).

That handover is easy to miss. In August 2026 an EU store’s purchases stopped reaching Google Analytics while page views kept arriving; a reply found the banner never passed consent to Shopify, so Shopify held back the app pixel at checkout while a tag in the theme went on sending page views ([thread](https://community.shopify.com/t/google-youtube-app-not-sending-purchase-events-to-ga4-after-reinstallation/660780)). The Meta pixel is held back the same way. To check, test the pixel from **Customer events**: Shopify’s Pixel Helper shows **Pixel is awaiting consent** until you accept tracking in your banner or click **Give consent to continue test** ([Shopify: app pixels](https://help.shopify.com/en/manual/promoting-marketing/pixels/app-pixels)).

A shopper who declines is a gap to accept, not one to work around.

## Is the purchase reaching Meta at all? {#is-the-purchase-reaching-meta-at-all}

Place one real order with Meta’s test tool open, and run Shopify’s own pixel test to see whether the purchase event fired.

1. In Meta Events Manager, click **Data sources**, select your dataset and open **Test events**. Enter your store’s address, click **Open website** and complete an order. The Facebook & Instagram pixel’s browser Purchase should appear ([Meta: test events](https://www.facebook.com/business/help/2040882565969969)). Server events show there only with a test event code, which real sends don’t carry ([Meta: using the API](https://developers.facebook.com/documentation/ads-commerce/conversions-api/using-the-api)), so with cPixel, whose Purchase goes only from its server, check **Live** and the dataset’s **Overview** instead. The order isn’t hidden from your results: Meta says test activity “will still appear” in Events Manager, Ads Reporting and audiences.
2. In Shopify, go to **Settings** → **Customer events**, click the menu icon beside the Facebook & Instagram pixel and choose **Test**. After your order, `checkout_completed` should show a green dot in Shopify’s Pixel Helper; a red dot marks an error ([Shopify: app pixels](https://help.shopify.com/en/manual/promoting-marketing/pixels/app-pixels)).
3. If you sell a post-purchase offer, test through it. Shopify fires `checkout_completed` once per checkout, on the first upsell page instead of the Thank you page when there is one, and “if the page where the event is supposed to be triggered fails to load”, not at all ([Shopify: checkout_completed](https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_completed)).

Meta’s Chrome extension, Meta Ads Data Advisor (formerly Meta Pixel Helper), can check the pixel too; Meta says to switch off ad blockers first so it can see the events ([Meta: Ads Data Advisor](https://www.facebook.com/business/help/198406697184603)). If it finds no pixel at all, see [why Meta Pixel Helper finds no pixel](/blog/meta-pixel-helper-not-working/).

## Are server events arriving? {#are-server-events-arriving}

Open the Purchase event in Events Manager and compare browser and server events for the weeks before and after the gap began.

Select your dataset, find the Purchase event and click **View details**. **Event overview** shows whether the event arrives from both the browser and the server, and **Data freshness** how quickly server events come in ([Meta: server event details](https://www.facebook.com/business/help/1541268312717919)). Meta offers these breakdowns for website events sent through the Conversions API, so if Purchase has none, check whether any server purchases arrive at all.

Replies in the Community thread on the 26 August drop suggested exactly this comparison. A browser share that collapsed while server events held points to a purchase tag that lived in Additional scripts, and a store whose server copy had only ever covered some purchases lost the rest. One reply warned against reconnecting the channel app blindly, which can create duplicate Purchase events: check its data sharing first, and reconnect only if the server event never arrives ([thread](https://community.shopify.com/t/meta-reporting-fewer-purchases-than-shopify-after-the-aug-26-checkout-upgrade-is-anyone-else-seeing-this/672772)). If server purchases are missing altogether, go back to the data-sharing level above, then [set up the Conversions API on Shopify](/blog/shopify-conversions-api/).

## Is the purchase going to the wrong dataset? {#is-the-purchase-going-to-the-wrong-dataset}

Check that every tool sends to the dataset your ads optimise for. Purchases can arrive in Events Manager and still sit in a dataset your ad sets don’t use.

In Shopify, the channel’s **Data sharing settings** show which pixel the Facebook & Instagram app is connected to ([Shopify: Meta pixel](https://help.shopify.com/en/manual/promoting-marketing/analyze-marketing/meta-pixel)); every other app or custom pixel names its own. In Events Manager, match each one by its ID, not its name. A store that has changed agencies or apps may have more than one.

## When does a tracking app help? {#when-does-a-tracking-app-help}

When the native setup is right but you want a purchase that doesn’t depend on the Thank you page loading, a view of each send, and a warning when sending stops.

If the Facebook & Instagram pixel is **Connected**, data sharing is **Enhanced** or **Maximum**, and Events Manager shows server purchases, the channel app is doing its job and you may need nothing else.

cPixel, which we build, adds three things:

- **The purchase comes from the order.** cPixel builds each purchase from Shopify’s order record on its servers, so it doesn’t depend on the Thank you page loading or on `checkout_completed` firing in the shopper’s browser.
- **Each send as it happens.** During a **Live** session, cPixel shows each event as it’s sent, Meta’s reply to each server send, and the reason for anything it skipped, such as a test order or a shopper who declined tracking: [watch each send in Live](/docs/cpixel/live-events/).
- **A warning when sending stops.** It flags a rejected access token, and orders arriving with no storefront events for 24 hours, on its Home page and by email.

It needs the same rule as any tool: one sender per pixel. If a purchase doesn’t reach Meta with cPixel installed, see [purchases missing in cPixel](/docs/cpixel/purchases-missing/). More about [cPixel, which sends Shopify purchases to seven ad platforms](/shopify/cpixel/).

## Frequently asked questions {#frequently-asked-questions}

### Why does Ads Manager show fewer purchases than Events Manager? {#why-does-ads-manager-show-fewer-purchases-than-events-manager}

Because they count different things. Events Manager shows most purchases Meta received; Ads Manager shows only those it attributes to an ad, within the ad set’s attribution setting ([Meta: event counts](https://www.facebook.com/business/help/337196340694086)). A gap between the two isn’t a tracking fault.

### Why is the purchase value missing? {#why-is-the-purchase-value-missing}

The value comes from whichever tool sends the purchase, so start with that tool. In a Community thread that ran from July 2022 into 2023, merchants saw Events Manager warn about a missing Purchase value parameter ([thread](https://community.shopify.com/t/facebook-pixel-missing-purchase-value-parameter/133944)). When the value is present but differs from Shopify’s reports, check what each tool sends: Shopify’s checkout total includes duties, taxes and discounts ([Shopify: checkout_completed](https://shopify.dev/docs/api/web-pixels-api/standard-events/checkout_completed)).

### Can I send lost purchases again? {#can-i-send-lost-purchases-again}

Only recent ones. Meta accepts a Conversions API event up to 7 days after it happened ([Meta: using the API](https://developers.facebook.com/documentation/ads-commerce/conversions-api/using-the-api)) and may not use events sent later than its maximum time frames ([Meta: delay times](https://www.facebook.com/business/help/801591810609156)), so older purchases stay missing. Resend only purchases that never arrived: Meta matches a resend to the original only when it carries the same event ID within 48 hours ([Meta: deduplication](https://developers.facebook.com/documentation/ads-commerce/conversions-api/deduplicate-pixel-and-server-events)). In cPixel, paid plans can resend a purchase that a **Live** session caught, under its original event ID.

[cPixel Facebook Pixel CAPI GA4](/shopify/cpixel/)

cPixel is a Shopify app that sends your store’s events to Meta, TikTok, Google Analytics 4 and OpenAI’s ChatGPT Ads from shoppers’ browsers and from its own servers, with one shared event ID so each platform can keep a single copy. A live view shows each send, with the platform’s reply to server sends, and alerts flag a rejected token or stalled tracking.

[Install free on the Shopify App Store](https://apps.shopify.com/cpixel?utm_source=b2bgold.app&utm_medium=referral&utm_campaign=blog&utm_content=blog/meta-pixel-not-tracking-purchases-shopify&utm_term=post-cta) [Plans and pricing](/shopify/cpixel/#pricing) [cPixel docs](/docs/cpixel/)

Need help with cPixel? Email [support@b2bgold.app](mailto:support@b2bgold.app).

## More on cPixel {#related-heading}

- 24 September 2026 **[Why Meta Counts Shopify Purchases Twice, and the Fix](/blog/duplicate-purchases-meta-shopify/)** Meta reporting more purchases than Shopify? Find the second source sending your purchase, see how pixel and Conversions API deduplication works, and fix it.
- 24 September 2026 **[How to Set Up the TikTok Pixel and Events API on Shopify](/blog/tiktok-pixel-shopify/)** Add the TikTok pixel to Shopify with the TikTok app or a tracking app, send purchases through the Events API, and stop TikTok counting purchases twice.
- 24 September 2026 **[How to Set Up the Conversions API on Shopify](/blog/shopify-conversions-api/)** Set up Meta's Conversions API on Shopify with the Facebook & Instagram app or a tracking app, and see how TikTok, Google, Pinterest and ChatGPT Ads compare.
