Open GA4, Meta Ads Manager and your store on the same morning and you will usually find three different numbers for yesterday's sales. Founders often assume one tool is broken. More often, all three are working as designed and simply counting different things. Understanding the differences is the first step to trusting any of them.

They are not measuring the same event

Your store counts orders: a payment went through, an order number exists. That is the closest thing you have to the truth.

GA4 counts purchase events that its tag managed to send from the browser. If the tag fired twice on a page refresh, you get two purchases. If a customer used an ad blocker, closed the tab too early or declined cookies, you get none. GA4 is usually a little under the store, and sometimes a lot.

Meta counts conversions it believes its ads influenced. A purchase from someone who clicked an ad in the last seven days, or merely saw one in the last day, is attributed to Meta. Google Ads does the same with its own windows. Add the platforms together and they will happily claim more sales than you made.

Attribution windows do the rest

Each ad platform decides how long after a click or a view it is allowed to take credit. Meta's default is seven days after a click and one day after a view. Google Ads defaults to thirty days for clicks. GA4 uses its own data-driven model. None of them talk to each other, so a customer who clicked a Google ad on Monday, saw a Meta ad on Wednesday and bought on Thursday is counted by both, and possibly by neither in GA4 if the tag failed.

Timezones and currencies add a smaller layer of noise. A platform reporting in Pacific time and a store reporting in Eastern time will disagree about which day a late-evening order belongs to.

Which number should you trust?

Pick one source of truth for the business and one for each channel, and give them different jobs.

  • The store (or your accounting) is the truth about revenue. Everything else is an estimate of what caused it.
  • GA4, once it is firing correctly, is your best view across channels: where sessions came from and how they behaved.
  • Platform numbers are directional. Use them to compare one campaign with another inside the same platform, not to total up the business.
If two tools disagree about the same day, the question is not which one is lying. It is what each one was asked to count.

When the gap is a real problem

Some disagreement is normal. A GA4 purchase count within a modest margin of the store is healthy. The signs that something is actually broken:

  • GA4 shows more purchases than the store. Something is firing twice.
  • Meta reports far more purchases than your total sales, even after you account for view-through attribution.
  • Google Ads conversions include form submissions, page views or test orders that are not real sales.
  • The numbers changed sharply on the day a developer touched the site, a theme updated, or a consent banner went live.

How a tracking fix brings them back in line

The repair is unglamorous but it is finite. Map every tag and event, rebuild the handful that the business runs on so they fire once with the right value, deduplicate Meta's browser and server events, import the correct conversion into Google Ads, configure consent properly, and then check every number against the store. Write the setup down so the next site change does not undo it.

After that, the tools still will not match to the dollar. They are not supposed to. But each number will mean something, and you will know which one to open when you need to make a decision.

If this sounds familiar, our tracking fix service starts with a free tracking check.

All articles