You open Google Ads and it reports one revenue figure. You open GA4 and it reports another. Neither matches your Shopify sales, and you want to know which one is lying.
None of them is lying. They are answering three different questions about the same orders. This guide walks through exactly where the numbers split, how far apart is normal, and how to tie them back to real profit.
How far apart is "normal"?
Before you debug anything, calibrate your expectations. One analytics team puts the routine gap between Google Ads conversions and GA4 key events at 10–30%, and says a gap in that band "isn't, by itself, evidence of a bug."
Timing matters too. The same source recommends waiting at least three days before comparing, because GA4's standard reports commonly take a day or two to finish processing a day's data.
So if you compare yesterday's Google Ads revenue to yesterday's GA4 revenue and panic, stop. Compare trailing 7- to 14-day windows, three days after they close, and only then judge the gap.
Why the two numbers drift: the methodology gaps
These are structural. No tracking fix closes them, because the tools are designed to count differently. The same idea sits under why your Google Ads orders don't match GA4 and why your ROAS doesn't match either.
Click-date vs conversion-date reporting
Google Ads logs a conversion on the date of the ad click. GA4 logs it on the date of the actual purchase (nicelookingdata).
Say a shopper clicks your ad Monday and buys Thursday. Google Ads books that revenue on Monday; GA4 books it on Thursday. Daily columns will never line up even when the weekly totals eventually agree.
Different attribution models and lookback windows
Both platforms run their own data-driven attribution independently, with different lookback windows and different definitions of a touchpoint (nicelookingdata). Google Ads credits the ad interaction; GA4 spreads a single conversion's credit fractionally across every channel it saw.
Here is the effect, framed as an example. Say one order is worth $40 in product revenue. Google Ads may claim the full $40 because its ad got a click. GA4's data-driven model might hand paid search only $24 of that order and split the remaining $16 across email, organic, and direct.
That's $40 versus $24 for one identical sale — no error, just two credit systems. Multiply across a week and a large "revenue gap" appears out of nowhere.
View-through and cross-device conversions
Google Ads counts view-through conversions — a sale after someone saw an ad (often on Display or YouTube) without clicking. GA4 has no equivalent concept (nicelookingdata).
Google Ads also stitches cross-device journeys — phone click, laptop purchase — that GA4 can only see when Google Signals is enabled. Both effects push Google Ads revenue above GA4.
Customer Lifecycle Value Optimization: the hidden inflator
This one surprises people. Google Ads has a setting called Customer Lifecycle Value Optimization that adds incremental value to new-customer conversions, inflating reported revenue above the real order amount.
In one documented case, a $32.99 order was reported by Google Ads as $148.95 — an extra $115.96 padded onto every new customer by a setting a prior agency had left on (Conner Crowe). If your Google Ads revenue looks impossibly high, check Tools & Settings → Conversions and set "Incremental conversion value for new customers" and "high value new customers" to zero.
Where data actually gets lost: the tracking gaps
These are real losses, and better plumbing narrows them.
Consent mode and modeled conversions
When a shopper declines cookies, neither platform observes the sale directly — each estimates it with its own modeling engine. Because Google Ads and GA4 use different consent-modeling engines, they fill the same gap with different guesses (nicelookingdata).
Modeled revenue is not fake — it estimates real but unobservable sales. But two different estimates of the same hidden orders guarantee two different totals.
Double-counting from duplicate tags
If you run a native Google Ads conversion tag and an imported GA4 key event, both set to Primary, the same purchase gets counted twice (nicelookingdata). Revenue inflates on the Google Ads side with no matching orders behind it.
If Google Ads suddenly shows roughly double GA4, suspect duplicate tags before you suspect a real surge.
Timezone and currency mismatches
Google Ads reports in the ad account's timezone; GA4 reports in the property's configured timezone. Orders near midnight land on different calendar days in each tool.
If your GA4 property currency doesn't match your Google Ads account currency, one side may be doing an implicit conversion, so revenue drifts by whatever the exchange rate moved. Confirm both settings explicitly.
A worked example: one week, three numbers
Say your store gets 100 real orders in a week. Average order is $40 product + $5 shipping + $4 tax = $49 total. Numbers below are illustrative; the arithmetic is exact.
Shopify (source of truth): 100 orders × $49 = $4,900 in total sales. This is how many sales happened and how much money came in.
Google Ads reports about $2,400. Suppose it attributes 45 orders to paid search, passes product subtotal only ($40 each) = $1,800, books them on the click date, adds view-through and cross-device conversions, then Customer Lifecycle Value Optimization pads $600 across new customers. Total: 1,800 + 600 = $2,400.
GA4 reports about $1,650. It loses some orders to ad blockers and consent declines, then its data-driven model gives paid search only a fraction of each remaining order. If it credits paid search $30 average across 55 observed orders, that's 55 × $30 = $1,650, with the rest spread to other channels.
Three tools, one week of 100 orders: $4,900, $2,400, $1,650. All internally correct. This platform-versus-store split is also why Google Ads sessions rarely match GA4.
How to reconcile Google Ads and GA4 to profit
The winning move is to stop treating the two ad tools as each other's referee. Neither is your accounting system. Reconcile both against your order and payment data — the full method for reconciling your ecommerce data walks the whole stack.
A practical loop:
- Take Shopify order count and total sales as ground truth for what happened.
- Read Google Ads revenue as "sales my ads plausibly influenced" — never expect it to equal Shopify.
- Read GA4 as a directional channel-mix view, and watch for a stable ratio, not equality.
- Then subtract product cost, shipping, fees, and ad spend to get the only number that pays you: profit per order.
That last step is where most merchants stop, because it means joining four or five tools by hand every week. This is exactly what PodVector is built to remove. It connects Shopify, Meta Ads, Google Ads, Printify, and Printful, and computes your true per-order profit after every fee and ad dollar — so the "which revenue number is real" argument stops mattering.
Inside it, Victor is an AI employee that reads your ad data and your store data, flags where Google Ads is over-claiming or a product is quietly unprofitable, and proposes moves. Victor reads your ad numbers but does not touch your ad account — the actions he executes are Shopify-side, and only with your approval. It is not a dashboard you have to babysit; it is an employee that does the reconciliation for you.
Once you sell across channels, the same discipline extends further — for example, keeping marketplace and store orders in one ledger when you send Etsy orders to your Shopify store.
FAQs
Why is my Google Ads revenue higher than GA4?
Usually view-through conversions, cross-device attribution, and click-date reporting — all of which Google Ads counts and GA4 doesn't. A hidden Customer Lifecycle Value Optimization setting can inflate it further by padding new-customer conversions (Conner Crowe). Check that setting first if the gap is large.
Why is my GA4 revenue lower than Google Ads?
GA4 is client-side and loses sales to ad blockers, consent declines, and tabs closed before the confirmation page loads. On top of that, its data-driven attribution only credits paid search a fraction of each conversion, so the paid-search row is smaller by design (nicelookingdata).
How big a gap between Google Ads and GA4 is acceptable?
Roughly 10–30% is common and not, by itself, a sign of a broken setup. Compare trailing multi-day windows rather than single days, and wait about three days for GA4 to finish processing before you judge.
Should I make Google Ads and GA4 match exactly?
No — it's structurally impossible because they use different attribution models, windows, and modeling engines. Aim for a stable ratio over time, and reconcile both against your Shopify orders and Stripe payouts, which are your real source of truth for sales and cash.
Does fixing my tracking make the numbers match?
Better tracking (server-side tags, consent mode, clean UTMs) narrows the tracking gaps — lost and modeled events. It does nothing for the methodology gaps like view-through and fractional attribution, which will keep the two numbers apart no matter how clean your setup is.