🙌 Our latest webinar is live!
Aug 30
Analytics & Reporting

Shopify vs Google Ads Conversion Mismatch: A Reconciliation Guide

Andre Sottil
Founder & CEO, Admira

A Shopify vs Google Ads conversion mismatch happens because the two platforms count different things. Shopify records every completed order, while Google Ads records only the orders it can attribute to a Google click inside its attribution window. Add duplicate tags, consent loss, date-of-click reporting and modeled conversions, and a gap is guaranteed. Shopify is your ground truth for totals; Google Ads is a claim about which of those orders Google influenced. Reconciliation means explaining the gap, not forcing the two numbers to match.

First, know which number answers which question

Shopify answers "how many orders did I get and how much revenue came in." Google Ads answers "how many of those orders followed a Google ad click, by Google's rules." Those are fundamentally different questions, so a mismatch is expected even in a perfectly configured account. Treating the two as if they should be identical is the root of most reconciliation headaches.

Problems only start when the gap is larger than the setup explains, or when Google Ads reports more purchase conversions than Shopify has orders. That second case is never a rounding difference; it always signals a tagging or counting error that needs fixing before you trust any campaign metric.

The usual causes of the mismatch

  • Attribution scope. Google Ads only claims orders after a Google click. Orders from email, organic search, direct or Meta will never appear in Google Ads. This is the biggest structural cause of the gap.
  • Attribution window and report date. Google Ads typically reports the conversion on the date of the click, not the purchase date. A Monday click converting on Friday shows up under Monday, so daily comparisons drift out of sync.
  • Duplicate or misfired tags. A Google tag firing on page reloads of the thank-you page, or both a legacy tag and the Google and YouTube channel integration counting the same purchase, inflates Google Ads numbers.
  • Counting setting. Purchase conversions should count "every" conversion, but deduplication depends on a unique transaction ID being passed. Missing transaction IDs cause the same order to be counted twice.
  • Consent mode and blockers. Visitors who reject cookies or use ad blockers still complete orders Shopify records, but Google's tag never sees them. Google partially fills this gap with modeled conversions, which adds estimation noise.
  • Enhanced conversions and modeling. Modeled and enhanced conversions are statistical estimates. They improve coverage but mean Google's figure is partly inferred rather than directly observed.
  • Cancellations, refunds and test orders. Shopify totals shift with refunds; Google Ads conversions usually are not adjusted retroactively unless you upload adjustments, and stray test orders can quietly inflate either side.

Most stores never see a single cause acting alone. A typical gap is a stack: attribution scope removes the email and organic orders, the click-date reporting shifts a slice of conversions into the wrong day, and consent loss trims a few percent that modeling only partly restores. Once you can name each layer, the number stops looking broken and starts looking explainable, which is the entire point of reconciliation.

A step-by-step reconciliation process

  1. Fix the time frame by purchase date. Pull 30 days of Shopify orders. In Google Ads, switch to the "by conversion time" columns so both sources are aligned on purchase date rather than click date.
  2. Check the ceiling. Google Ads purchase conversions must be less than or equal to Shopify orders. If Google reports more, hunt for duplicate tags first: look for multiple purchase conversion actions marked primary, and verify that a transaction ID is passed on every purchase event.
  3. Segment Shopify orders by source. Using UTMs or an attribution layer, estimate how many orders had any paid-search touch. This gives you the realistic pool of orders Google could plausibly claim.
  4. Compare Google's claim to that pool. If Google claims well above the pool, over-crediting from modeling or a long window is likely. If it claims far below, look for consent loss, tag coverage gaps, or express-checkout flows the tag misses.
  5. Document the expected gap. After cleanup, write down the structural reasons and the rough percentage each one contributes. Future anomalies then stand out immediately instead of restarting the whole investigation.

When each source is the right one to use

Shopify is better when you need real revenue, order counts, average order value, margin or refund-adjusted performance. For an ecommerce store it is the ledger that reconciles with your bank account, so it wins any argument about totals.

Google Ads is better when you are optimizing inside Google: comparing campaigns, keywords and bidding strategies against each other. Smart Bidding also learns from that conversion data, so keeping the tag clean matters even if you never report from it directly.

Neither is enough when you are deciding how much budget Google deserves versus Meta, email or influencers. That question needs an independent layer: multi-touch attribution on first-party data, marketing mix modeling, or incrementality testing, and it is the same reason platform-reported ROAS overstates each channel. Tools like Triple Whale and Northbeam approach it from pixel-based attribution; platforms like Admira combine attribution with MMM and lift testing so the cross-channel answer does not depend on any single platform grading its own homework.

If you would rather stop reconciling Shopify against Google Ads by hand every month, that is what Admira automates. It ties your store orders to deduplicated multi-touch attribution, MMM and incrementality in one place, so the gap is explained for you and budget decisions rest on one source of truth instead of two conflicting dashboards. Book a demo to see your own reconciliation live.

FAQ

Google Ads shows more purchases than Shopify has orders. How is that possible?

That is almost always duplicate counting. The usual culprits are two purchase conversion actions both set as primary, a Google tag firing on thank-you page refreshes, or missing transaction IDs that prevent deduplication. Audit your conversion actions before touching anything else, because Google Ads should never report more purchases than Shopify records as real orders.

Should Shopify's marketing attribution replace Google Ads data?

No. Shopify's built-in attribution is a useful third opinion, but it is still largely last-click oriented and blind to view-through influence and cross-device journeys. Use it as another directional source, keep Shopify order totals as your only ground truth, and use Google Ads data for optimizing inside Google rather than for cross-channel budget decisions.

Do refunds explain part of the gap?

Yes. Shopify revenue reflects refunds and cancellations as they happen, while Google Ads conversions normally do not adjust retroactively unless you actively upload conversion adjustments. High-refund categories like apparel see a persistent gap from this factor alone, so always compare net figures if you want the two sources to line up more closely.

How often should I reconcile Shopify and Google Ads?

A monthly reconciliation is enough for most stores, plus an extra check after any tagging change, theme migration, or checkout update, since those are the exact moments tracking silently breaks. Document the expected gap once so that future anomalies stand out immediately instead of triggering a fresh investigation every month.

Which number should I report to leadership?

Report Shopify order and revenue totals as the source of truth, and present Google Ads conversions as a within-platform optimization metric, never as incremental sales. For the question of how much credit Google actually deserves versus other channels, use an independent measurement layer such as attribution on first-party data, marketing mix modeling, or incrementality testing.