← InsightsDiagnosis

Why You Can't Trust Your Analytics Numbers (And How to Fix It)

Google Analytics says one number. Google Ads says another. Your store's own sales ledger says a third. None of them are lying to you.

If your Google Analytics conversions don't match Google Ads, your ad platform's numbers don't match Facebook's, or your analytics revenue doesn't match your Shopify or POS ledger, you are not alone and you are probably not doing anything wrong. This is a structural feature of how these systems are built - not a sign that someone configured something incorrectly, though a real misconfiguration can also make it worse.

This isn't a bug. It's how the systems are built.

Every platform that reports a number about your marketing or sales is applying its own rules for what counts, when it counts, and who gets credit. Those rules are reasonable in isolation and inconsistent with each other by design.

  • Different attribution windows. One platform might credit a conversion to a click from seven days ago; another only looks back one day. The same purchase can appear attributed to different channels, or not attributed at all, depending on which window it falls inside.
  • Different definitions of "conversion." A platform's own conversion event and your business's real definition of a sale are not guaranteed to be the same thing - one may count an add-to-cart, another only a completed and paid order.
  • Client-side data loss. Ad blockers, browser privacy restrictions (like Safari's Intelligent Tracking Prevention), and consent choices all reduce what client-side tracking can see - without reducing what actually happened.
  • Self-attribution bias. Ad platforms have a structural incentive to credit themselves for conversions where credit is ambiguous. This isn't misconduct; it's the default behavior of a system built to demonstrate its own value.
  • Timezone and currency handling. A conversion logged at 11:58pm can land on a different calendar day depending on which timezone a platform reports in, shifting daily totals without any real change in behavior.
  • Refunds, cancellations, and partial payments. A store's sales ledger reflects the full order lifecycle. A tracking platform typically records the moment of checkout completion and often never hears about what happens after.

How to actually fix it

The fix is not chasing every platform's number until it matches another's - that is not achievable, because the platforms are answering different questions. The fix is deciding, in writing, which system is your source of truth for which question, and making every other number's gap to it explainable.

  1. Pick one system (usually your own order or CRM database) as the source of truth for revenue and conversions - not an ad platform.
  2. Document each other platform's attribution window, conversion definition, and known blind spots so a gap can be explained instead of investigated from scratch every month.
  3. Move critical conversion tracking server-side where client-side loss is significant, so the numbers reflect what happened rather than what a browser allowed you to see.
  4. Reconcile on a schedule - weekly or monthly - rather than only when someone notices a number looks wrong.

This is exactly the work we do: a documented tracking architecture with one defined source of truth, consent-aware collection, and server-side data capture where the client side loses signal. It won't make every platform's number identical - it will make every difference explainable.

Specific Discrepancies

Where the numbers usually disagree

Why don't my Google Ads numbers match Google Analytics?

They use different attribution models, different conversion windows, and different definitions of a "conversion." Google Ads tends to credit its own clicks generously; GA4 applies its own attribution model across every channel it sees. Neither is wrong - they are answering slightly different questions.

Why does Google Analytics not match Google Ads spend or conversions?

Beyond attribution-model differences, click IDs can be lost between the ad click and the landing page (redirects, consent banners delaying tag firing, or cross-domain tracking gaps), which causes a real conversion to go unrecorded in GA4 even though Ads counted the click.

Why is my traffic dropping in Google Analytics?

Before assuming a real traffic loss, check for a tracking cause: a consent-mode change reducing measurable traffic, a tag that stopped firing after a site update, bot-traffic filtering changes, or a shift in how a browser blocks measurement. A tracking audit rules these out before you treat it as a marketing problem.

Why is my ROAS wrong?

ROAS is only as accurate as the revenue and cost figures feeding it. Revenue can be overstated by counting test orders, discounts, or refunds incorrectly, or understated when server-side attribution misses purchases that client-side tracking would have caught. Cost figures can also lag if ad platforms revise spend data after the fact.

Why doesn't Google Analytics match my Shopify or store sales?

Analytics platforms typically record a purchase event at checkout completion; your store's own ledger reflects the full order lifecycle, including refunds, cancellations, partial payments, and manually adjusted orders. The two are answering different questions - "what did the tracking see" versus "what actually got paid" - and both can be correct at once.

Get a written account of why your numbers disagree.

A data audit identifies which gaps are structural, which are fixable, and which point to a real tracking problem.