Why Google Ads Revenue Doesn't Match Your Shopify Numbers

Open Google Ads conversion reporting next to your Shopify dashboard for the same date range, and the revenue numbers rarely match. Sometimes the gap is small enough to ignore. Sometimes it's large enough to make you question whether Google Ads is even measuring anything real. Neither dashboard is lying. They're built to answer different questions, and understanding the actual mechanics behind the gap is the difference between reconciling your reporting sensibly and chasing a discrepancy that was never fixable in the first place.

Attribution windows are different by design

Google Ads defaults to a 30-day click, 1-day view attribution window, though this is configurable per conversion action. Shopify, on the other hand, simply records the order at the moment it happens. It has no attribution model attached to it at all, it's a ledger, not a marketing report.

A customer who clicked an ad on day 3 and purchased on day 25 shows up in Google Ads' conversion count today, the day the conversion is recorded and attributed back. Shopify recorded that revenue three weeks ago, on the actual transaction date. If you're comparing "this week's Google Ads conversions" to "this week's Shopify revenue," you are comparing two different cohorts of customers who happened to convert in overlapping but not identical timeframes.

Google Ads counts what it thinks it caused, and can double count

Google's conversion tracking uses its own attribution model to decide which touchpoints deserve credit for a sale, and by default it can attribute a single sale to more than one campaign type if a user interacted with, say, both a Search ad and a Shopping ad before converting. Shopify has no concept of "which channel gets credit." It just knows an order came in, full stop, with no attempt to divide credit across the touchpoints that led there.

This means the sum of individual campaign-level conversions inside Google Ads can, in aggregate, overstate total attributed revenue relative to what Shopify will ever show as total store revenue, even before you bring other channels like Meta or organic search into the picture.

Cancellations, returns, and COD refusals

Google Ads conversion values are typically recorded at the moment of purchase and, unless you've specifically built a refund sync back into your conversion tracking (which most accounts have not), they are not retroactively adjusted when an order is later refunded, cancelled, or refused at the door. Shopify's revenue view, especially if you're looking at net sales rather than gross sales, reflects the true picture after returns are processed.

If you're comparing gross Google-reported revenue to Shopify's net sales figure, they will never match, and that's not a tracking bug to be fixed, it's two fundamentally different definitions of "revenue" being placed side by side as if they were the same number.

New customer vs returning customer attribution

Google Ads conversion tracking, unless specifically segmented, doesn't natively distinguish whether the customer converting was new to your brand or a repeat purchaser who would have come back regardless of the ad. Shopify's customer-level data can tell you this clearly, first order vs repeat order. A brand running retargeting or remarketing campaigns can see Google Ads report strong conversion numbers that are substantially inflated by existing customers who were always going to reorder, a very different situation from genuinely new customer acquisition, and Shopify's raw revenue number won't separate this for you automatically either, you need to build that segmentation yourself using customer tags or a CRM layer.

What this looks like for a jewellery or high-AOV brand

High-consideration categories like jewellery, furniture, or premium electronics often have research-to-purchase windows stretching well beyond a week, sometimes a month or more. A customer researching a specific piece on Search today might not complete the purchase until a retargeting Shopping ad reaches them three weeks later, after comparing prices, reading reviews, and checking a couple of competitor sites.

Google's 30-day attribution window is built to catch exactly this kind of delayed purchase. If your internal reporting window is shorter, say you're only looking at last 7 days of data when evaluating campaign performance, you will systematically undercount Google's real contribution to sales in longer-consideration categories, making the channel look weaker than it actually is.

What this looks like for a fast-repeat category like skincare or supplements

The opposite problem shows up in categories with short consideration windows and frequent repeat purchases. A customer might see a Search ad, buy within the hour, and then reorder a month later triggered by a completely different channel (email, WhatsApp, or organic search for the brand name). Google Ads may claim credit for the reorder if a retargeting ad happened to be shown in that window, inflating the apparent effectiveness of paid search for a purchase that was really driven by product satisfaction and a retention channel, not the ad itself.

How to actually reconcile the two numbers

Start by defining Shopify or a properly configured GA4 property (ideally with server-side tracking to reduce data loss from ad blockers and iOS tracking restrictions) as your single source of truth for revenue reporting to leadership and for board-level decisions. This is the number that reflects what actually happened in the business, net of returns and cancellations.

Use Google Ads' own reporting for directional, in-platform decisions, which campaigns, ad groups, and keywords are performing well enough to keep running or scale, which should be paused. This is a tactical tool, not a source-of-truth revenue figure.

Reconcile the two monthly, not to force them to match, but to understand the size and direction of the gap. If the gap is growing over time, that's worth investigating, it might indicate a tracking implementation issue (conversion tags misfiring, or a change in your checkout flow breaking the pixel), or it might simply reflect a genuine shift in your customer's average consideration window.

Practical steps to reduce (not eliminate) the gap

Set up server-side conversion tracking via Google's Enhanced Conversions or a server-side GTM container, this recovers conversions that browser-based tracking misses due to ad blockers, Safari's Intelligent Tracking Prevention, and other privacy restrictions.

Segment your Google Ads conversion data by new vs returning customer using Shopify customer tags synced into your ad platform, so you're not crediting paid search for reorders that would have happened anyway.

Set your Google Ads attribution window to match your actual category consideration window as closely as possible, rather than leaving the default in place without checking if it fits your business.

Build a simple monthly reconciliation view: Shopify net revenue, Google Ads reported conversion value, and the percentage gap between them, tracked over time so you can spot when the gap is drifting rather than staying roughly stable.

FAQ

Which number should I report to my board or investors? Shopify net revenue (or GA4 with server-side tracking), not Google Ads' reported conversion value. Google Ads numbers are a tactical optimization tool, not a financial reporting source.

Is a large gap between the two always a problem? Not necessarily, some gap is structurally expected given attribution windows and return rates. What matters is whether the gap is stable and explainable or growing unexpectedly, which would suggest a tracking or checkout flow issue worth investigating.

Does this apply the same way to Meta Ads? The same underlying principle applies, platform-attributed conversions and store revenue are measuring different things, though Meta's attribution mechanics and default windows differ from Google's.

Should I turn off Google Ads' own conversion tracking and rely only on Shopify? No, you need Google Ads' conversion data to actually optimize campaigns inside the platform, bidding algorithms depend on it. The fix isn't to abandon platform tracking, it's to stop treating it as your revenue source of truth.

The takeaway

Use Shopify or a properly configured analytics source as your revenue source of truth, and use Google Ads reporting for the directional signal on which campaigns and keywords are working, not as the revenue figure you report upward. Reconcile monthly so you understand the gap. Don't try to force the two numbers to match exactly, they were never designed to.