KPIHelm — Your KPIs. Our insight. Your future.
All articles

Why does Meta show 0 purchases when my Shopify store is getting orders?

Either the ads have stopped selling or Meta has stopped seeing the sales; to tell them apart, count the Shopify orders that came in through a Meta link in the last 7 days and compare them with the purchases Meta counted for the same days. If Meta counted fewer than one in ten of those orders, the problem is the counting, not the ads: check whether your purchase event is reaching Meta and whether your attribution settings changed.

This is not a bookkeeping detail. Meta tunes your ads to the sales it sees; if it sees none, it cannot learn who buys, and its own report shows your results as incomplete. Reading that report, you could switch off an ad that is working. You do not need a new tool to find out: Shopify already records which link brought each customer in.

Step 1: Tell a normal gap from broken counting

Meta and Shopify never agree exactly. Meta can count sales from people who saw an ad without clicking it, it books a sale on the day of the click, and it adds some sales by estimate. So Meta sometimes counts more than your store and sometimes a little less. Why Meta and Shopify report different numbers explains that normal gap.

Broken counting looks different: within a few days Meta's number drops to almost zero, while orders keep arriving in your store through Meta links. That is not a measurement difference. It is a loss.

Open an order in Shopify. The Conversion summary section on the order page shows which source and which page the customer arrived from.

  • Open the last 7 days of orders one by one and count those whose source is Facebook or Instagram. For a store with a few dozen orders a week, this takes about fifteen minutes.
  • Look at the link too. A visit from Facebook or Instagram usually lands on a URL that carries an fbclid tag. Meta adds that tag to unpaid posts as well, so what you are counting is orders that came in through a Meta link — not all of them necessarily from an ad. If you post a lot, keep that in mind.
  • Empty summaries are normal. Private browsers and apps that block cookies leave some orders without a source. So your number is a floor: at least this many orders came from Meta.

Step 3: Take Meta's number for the same days

In Meta Ads Manager, select the same 7 days and read the purchases column. Leave out yesterday: Meta books a sale on the day of the click, so the last day's number can still rise a day later.

Step 4: Compare the two numbers

  • Meta's number is close to yours, or above it: counting works. Any difference is the normal gap.
  • Meta counted fewer than one in ten of your orders: counting is very likely broken. For example, 14 orders came in through a Meta link and Meta counted 0 or 1.
  • Don't decide on a handful of orders. If only 2 or 3 orders came through Meta links, a zero from Meta can be chance. Wait for at least 5 before you decide.

Step 5: Where to look if counting is broken

  • Check whether the purchase event reaches Meta. In Meta Events Manager, open Test Events, place a test order yourself and see whether a Purchase event arrives.
  • Check your attribution settings. If the attribution setting on the ad set changed, Meta counts the same sales differently.
  • Think about recent changes. A theme update, a new checkout app, a new cookie consent banner or reconnecting the Meta channel in Shopify — does one of them line up with the day the counting stopped?

Until counting is fixed, don't cut budget based on Meta's report. For those days, read which ads are selling from your store's own records.

How does KPIHelm know this without a pixel?

It does automatically what you did by hand in Step 2.

  • The store side comes from Shopify. KPIHelm reads your orders through Shopify, with the permission you approve when you install. For each order it checks only whether the link the customer arrived on carries an ad platform's tag: fbclid for Meta, gclid for Google, ttclid for TikTok, or a UTM marked as a paid ad. It does not read the customer's name, address or email. It does not keep the link — only the count.
  • The platform side comes from your ad account. The sales the platform itself counted are read from the ad account you connect. It is the platform's own number, not an estimate of ours.
  • Nothing is added to your store. No pixel, no script, no theme change.

It has two limits. The number is a floor: orders whose source was not recorded are not counted. And it shows which link a customer came through, not which platform caused the sale. That is why KPIHelm uses this number only to ask whether a platform is counting, never on its own for a budget decision.


KPIHelm's SUYLA plan makes this comparison every morning, for every ad platform you connect. If a platform counts fewer than one in ten of the orders that came in through its own link, two mornings in a row, it tells you. It needs at least 5 such orders and 50 clicks to judge. There is no pixel to install, and it tells you again when the counting is back. Install it free on the Shopify App Store or see a sample report.