All articles
Performance Marketing 3 min read

Shopify tracking: four ways it quietly goes wrong

Shopify makes tracking look easy, which is exactly the problem. Two clicks turn a pixel green and nobody checks again.

Media Puppies · · Updated

Shopify tracking is broken in half the accounts we audit, and they are optimising against those numbers anyway. Not slightly wrong — wrong in a direction that changes decisions. The store reports one figure, the ad platform reports another, and somebody is scaling on the wrong one.

These are the four faults we find most often.

1. Customer Events and the sandbox

Shopify moved custom tracking into Customer Events, running pixels in a sandboxed context rather than letting arbitrary script onto the checkout. Hand-installed tracking from the older approach silently stopped working in places.

Many stores never noticed, because the official sales channel app kept firing something. You get partial data that looks complete. The check is to watch what is actually sent from the checkout, not to look at the app’s status light.

2. Purchases counted more than once

A theme-level pixel, plus the sales channel app, plus a tag manager container is three sources for one purchase. Without a shared event ID they do not deduplicate.

The result is the most dangerous kind of error: your conversion count inflates, your ROAS looks excellent, and you scale confidently into a loss. This is far and away the most common cause of an account that "used to work" and now does not reconcile with the bank.

An error that makes the numbers look worse gets investigated in a week. One that makes them look better can run for a year.

3. Currency mismatches under Markets

With Shopify Markets, a customer in Australia pays in Australian dollars while your store currency is something else. If purchase value is sent in the presentment currency while the ad platform assumes your account currency, every ROAS figure for that market is wrong — sometimes flatteringly, sometimes disastrously.

It takes ten minutes to check and almost nobody does. Compare a known order in Shopify against the same order’s reported value in the ad platform. If they differ by roughly an exchange rate, you have found it.

4. Conversions API with nothing to match on

Server-side events matter more on Shopify than on most platforms, because so much buying happens in-app and on Safari where browser tracking is weakest.

But a CAPI sending events with no matchable customer information is doing very little. Look at event match quality rather than whether CAPI is "on". A connection that is live and matching poorly produces a reassuring green tick and thin data.

How to audit Shopify tracking in an afternoon

  1. Take yesterday’s order count from Shopify.
  2. Compare it with purchases reported in Meta and in Google for the same window.
  3. If the platforms report more, you have a deduplication problem.
  4. If they report far fewer, you have a consent or matching problem.
  5. Check one order’s value in both places to catch currency issues.
  6. Check event match quality in events manager.

That sequence finds the large majority of Shopify tracking faults without any specialist tooling.

Then stop trusting platform ROAS anyway

Even with perfect tracking, two platforms will both claim the same sale. Hold a blended view at business level — total revenue against total ad spend — which no amount of attribution generosity can inflate. The blended ROAS and MER calculator gives you that, and the Shopify page covers the rest of the setup.

Questions people ask

Why do Shopify and Meta report different purchase numbers?

Some difference is normal, because the two attribute across different windows. A large, persistent gap usually means purchases are counted more than once, or a pixel is firing in a sandboxed Customer Events block where it cannot see the order.

What causes double-counted purchases?

A pixel installed both through the Shopify app integration and again in the theme or in Customer Events. The order fires twice, reported revenue inflates, and the optimisation is trained on a number that does not exist.

How does Shopify Markets break tracking?

Multi-currency stores can send the local currency value with the wrong currency code, or send a converted figure the platform converts again. Reported revenue then looks plausible and is wrong by the exchange rate.

What makes Conversions API effective?

Match quality. Sending the event without hashed email, phone, click identifier and the rest leaves the platform unable to tie it to a person, so the event adds little. Check the match quality score rather than assuming the integration is enough.

Keep reading

Performance Marketing

Platform ROAS is not profit, and it is not even revenue

Performance Marketing

Teaching the ad platforms what a real customer looks like

Performance Marketing

Marketing says leads are up. Sales says they are rubbish. Both are right.

Start a project