Knowledge Centre

Tracking Accuracy

Your Facebook and Instagram sales numbers do not match your real sales. Here is why.

Tracking Accuracy. LDC Knowledge Centre. A plain guide for Shopify store owners.

You look at Meta and it reports a number of sales. You look at Shopify and the number is different. Sometimes Meta shows more, sometimes it shows fewer, and either way it leaves you unsure which one to trust. So you make decisions half blind. You pause an ad that might have been working. You keep spending on one that is not.

If that is the situation, the problem is almost never your ads or your creative. It is the tracking underneath them. And the good news is that it is fixable once you understand what is actually happening.

Why the numbers drift apart

Your store reports sales to Meta in two different ways, and most owners only have one of them working properly.

The first way runs inside your customer's browser. When someone buys, a small piece of code in their browser tells Meta a sale happened. This is the older method, and on its own it is now half blind. Ad blockers stop it. Apple's privacy settings on iPhones stop a large share of it. Browsers themselves are quietly closing the door on this kind of tracking every year. So a real sale happens, but the message never reaches Meta. Meta does not know it earned you that customer.

The second way sends the same information a different route: straight from your store's own server to Meta, without depending on the customer's browser at all. Meta calls this the Conversions API. It is far harder to block, so it catches the sales the browser method misses.

When only the browser method is running, Meta is missing a chunk of your real sales. It is optimising on an incomplete picture, and the gap between Meta's numbers and your Shopify numbers is that missing data showing up.

Why this matters more than a mismatched report

It is tempting to treat this as a reporting annoyance. The ads still run. Shopify still shows the real money. So why worry about what Meta thinks.

Here is why. Meta does not just report on the data it receives. It learns from it. Meta decides who to show your ads to based on who it believes is buying. When half your sales never reach Meta, it is learning from half the story. It cannot see many of your real customers, so it struggles to go and find more people like them. Your cost to get a sale creeps up, slowly, for a reason that never shows as an error anywhere.

So the poor tracking is not only making your reports wrong. It is quietly making your advertising more expensive, because the system making the decisions is working from bad information.

The one mistake to avoid

When owners realise their tracking is off, the instinct is to add more of it. Install another tracking app. Add a second tool that promises better numbers. Stack them up and surely the data gets better.

It usually gets worse.

If two tools both report the same purchase to Meta, and they are not properly matched to each other, Meta counts that one sale twice. Now your numbers are inflated instead of missing. You are making decisions on sales that did not happen. Running three tools can triple the same sale. More tracking is not better tracking. Correct tracking is better tracking, and correct means the browser method and the server method are matched so that one real sale is counted exactly once.

If you take one thing from this article: before you add anything, first find out what you already have running and whether it is matched.

What to check first

Work through this calmly, in order.

One. Confirm both feeds are actually running. In your Meta Events Manager, look at your Purchase event. You want to see it arriving from two sources, described as browser and server, not from the browser alone. If it is browser only, your server feed is not active yet, and that is the first thing to switch on.

Two. Turn on the setting that activates it. In Shopify, open your Facebook and Instagram sales channel and find the customer data sharing setting. Set it to Maximum. This is the setting that switches on the server feed together with the extra matching that helps Meta recognise your customers. Any lower setting leaves you on the browser method alone. This step shares hashed customer information with Meta, so your privacy policy needs to say that it does. Getting your consent and privacy wording right sits alongside this, and it matters in the EU.

Three. Confirm the two feeds are matched, not doubled. This is the step people miss. Both feeds must carry a shared identifier for each sale, so Meta can see that the browser message and the server message are the same sale and merge them into one. Shopify's own connection handles this for you. The danger comes when a second tracking app is also firing its own purchase message with no shared identifier. That is what produces double counting. As a rule, run one server side method, not two.

Four. Check how well Meta can match your sales to real people. Inside Events Manager, Meta rates the quality of your Purchase data. You are aiming for a strong rating. If it is weak, it usually means not enough customer information is reaching Meta, and the Maximum setting from step two is what improves it.

Five. Stop trusting a single dashboard. Once the tracking is clean, compare three numbers for the same period: what Meta reports, what Shopify actually recorded, and what your server feed sent. They will never match to the penny, and that is normal. The point is to understand the gap rather than be surprised by it. Use Meta's numbers to judge how Meta is delivering, and use Shopify to judge your real revenue. Do not let one screen be the only source of truth.

When to get help

Some of this is a ten minute change. Switching the data sharing setting to Maximum is quick and safe. Other parts are not. If you have several tracking tools running and you are not sure which is firing what, or your numbers are already so far off that you cannot tell real sales from doubled ones, untangling it on a live store is delicate. A wrong move can leave you worse off than the missing data did.

If you are not sure which situation you are in, that is exactly what a diagnosis is for. Before you change anything, it is worth getting a clear read on what is running, what is matched, and what is being counted twice, because with tracking the order of the steps matters as much as the steps themselves.

If you want to see where your own setup stands, there is a free Shopify and Meta Health Score that takes a few minutes and shows you, in plain terms, whether your tracking is a quick cleanup or something that needs proper attention. You can find it at loisdavidsonconsulting.com, or book a free 30 minute consultation at calendly.com/loisdavidson18/30min.


Not sure where your setup actually stands?
Run the free Shopify and Meta Health Score. It takes a few minutes and shows you, in plain terms, whether your tracking is a quick cleanup or something that needs proper attention.

Book a free consultation at calendly.com/loisdavidson18/30min

Lois Davidson Consulting. Digital Commerce and Global Procurement. This is general guidance, not a full technical diagnosis of your specific account.