Shopify and Google Ads: why the numbers never match
By Manu Santana Founder of Nexprix · Meet the teamIn 30 secondsShopify reports 87 orders on a Monday and Google Ads says 102 conversions. It's not a technical error: it's by design, and it's worth understanding why so you don't chase the wrong number. Three reasons explain almost all of the gap: different conversion windows (Shopify counts the order on the payment day, Google Ads counts the conversion on the click date with a 30-day window), VAT and returns handling (Google usually reports with VAT, Shopify by default without it — a 21% difference in Spain) and the attribution model (Google uses data-driven, Shopify last-click). The sensible way to reconcile is to always compare closed periods, use Shopify as the single source of total revenue, and use Google Ads only for the split across campaigns. Accept a 5-10% deviation as normal; beyond that, there's a technical problem (a misconfigured pixel, duplicate events, enhanced conversions without deduplication).
You have 87 orders in Shopify this Monday. Google Ads says 102 conversions. If you're convinced something is broken, it isn't. It's by design, and it's worth understanding why so you don't chase the wrong number.
Reason 1: different conversion windows
Shopify counts the order when the customer pays. Google Ads counts the conversion when the customer clicks an ad and buys within the next 30 days, counting the sale on the click date, not the purchase date.
The result: on any given day the numbers will never match. There's a natural lag between the two systems that only reconciles when you look at longer windows (30, 60, 90 days).
Reason 2: VAT, discounts and returns
Google Ads usually reports revenue with VAT included. Shopify separates it by default. If you compare gross figures, you get a 21% difference in the Spanish market without anything being wrong.
- Check whether Google Ads is receiving revenue with or without VAT
- Verify whether returns are deducted from the revenue reported to Google
- Confirm how discounts are handled: as a reduction in revenue or as the product's original value
Reason 3: attribution model
By default Google Ads uses data-driven attribution (DDA). Shopify attributes 100% to the last-click channel. For the same order, Google may split credit across 3 campaigns while Shopify assigns it entirely to a single source.
How to reconcile
- Always compare closed periods (a full calendar month), not stray days
- Use Shopify as the single source of total revenue — it's the only thing that takes the money
- Use Google Ads to understand the split across campaigns, not to measure total revenue
- Accept a 5-10% deviation as normal — beyond that, there's a technical problem (a misconfigured pixel, duplicate events)
The two tools measure different things for different purposes. Wanting them to match to the euro is like wanting the bank's balance to match the store's receipt to the cent — there will always be fees, VAT, rounding. What matters is that the magnitude is consistent.
Sources
- Google Analytics Help
Modelos de atribución en Google Analytics 4 - Shopify Help
Analítica e informes en Shopify (discrepancias de datos)
Frequently asked questions
What do I do if the difference is 30%+?
Something is technically wrong. The two most common causes: Google's pixel isn't measuring all sales (the purchase event is misconfigured) or Google is duplicating conversions (enhanced conversions without deduplication).
Which of the two numbers do I report to the CFO?
Shopify. It's the one that matches the billing. Google Ads is for tactical campaign optimization, not financial reporting.
Is there a way to make them match to the euro?
Only if you use last-click attribution in both systems and disable data-driven in Google Ads. But then you lose Google's more sophisticated read. The 5-10% deviation is the price you pay for using a better attribution model.