You opened Google Ads and it claimed a certain number of conversions. You opened GA4 and saw fewer. Then you opened Shopify and saw a third number entirely.
None of them is broken. Each tool is answering a different question about the same pile of orders. Once you see which question each one answers, the gap stops feeling like a bug and starts being useful.
The short version: three tools, three questions
Google Ads answers: how many sales did my ads plausibly drive? It is generous on purpose, because it wants to credit itself for influence.
GA4 answers: how did buyers reach my store across every channel? It splits credit and only sees what its browser script managed to send.
Shopify answers: how many orders actually happened, and for how much? It records completed checkouts server-side, so it is the only one that owns the real order count.
Expecting these three to agree is like expecting a weather forecast, a thermometer, and a calendar to print the same number. They measure related things, not the same thing. This is the same structural problem behind why Google Ads ROAS doesn't match GA4 — different denominators, different credit rules.
Why Google Ads and GA4 count orders differently
Click date versus conversion date
This is the single biggest cause. Google Ads attributes a conversion to the date of the ad click, not the date the order was placed.
So a click on Monday that becomes an order on Thursday shows up in Google Ads on Monday. GA4 files that same order on Thursday. Compare a single day and the numbers can't line up; compare a rolling week or two and they converge. Always reconcile on trailing windows, never on one day.
Different attribution models
Both tools use data-driven attribution, but each runs its own model on its own slice of data. Google Ads, by default, uses a click-through window of about thirty days, crediting the ad interaction.
GA4 spreads a single order's credit across organic, email, direct, and paid touchpoints. So one order Google Ads counts as a whole "1" might appear as a fraction in GA4's paid-search row because other channels also touched that buyer. The rows were never meant to be equal.
View-through and cross-device orders
Google Ads can credit an order to someone who saw a Display or YouTube ad and never clicked, and it can stitch a buyer who saw the ad on a phone and checked out on a laptop. GA4 structurally cannot see a conversion from a user who never clicked.
That means Google Ads has categories of credited orders that GA4 has no way to count. This is a permanent, one-directional gap — no plumbing closes it.
Consent mode and modeled conversions
When a buyer declines cookies, both tools estimate the lost conversion with a model rather than counting it. But they use different modeling engines with different signal pools, so they recover different amounts — GA4's modeling recovers only about half to two-thirds of consent-denied conversions.
Add browser ad blockers and tracking prevention, which silently kill the GA4 script for an estimated ten to twenty-five percent of users while Shopify still records the sale server-side. GA4 undercounts; Shopify doesn't.
Double-counting (the one that inflates Google Ads)
If you left the native Google Ads conversion tag firing and imported the same purchase as a key event from GA4 — with both set as primary conversions — Google Ads counts each order twice.
If your Google Ads number is roughly double your Shopify orders, this is almost always the cause. It is a setup error, not a windfall. The same trap appears in Facebook's Pixel-plus-CAPI setup, where a missing deduplication key double-counts every sale.
What gap is normal — and when to worry
Use these bands as a health check, not a target:
- Ten to thirty percent between Google Ads and GA4 is normal and expected, per Kissmetrics' reconciliation guidance.
- On the GA4-versus-Shopify side, a fifteen to thirty percent shortfall is healthy; forty percent or more signals a real tracking break worth fixing.
- A gap of two or three times, or numbers trending in opposite directions week over week, means something is misconfigured — usually double-counting or a broken tag.
The goal is a stable ratio, not equality. If Google Ads consistently runs a quarter above GA4, that is your known delta. When the delta suddenly jumps, that is your signal to investigate.
A worked example: one week, three numbers
Say your store, "Trailhead Mugs," gets 100 real orders in a week at a $40 subtotal, and Shopify is your ground truth.
- Google Ads reports ~85 conversions. It credits click-through orders on their click date, adds view-through and cross-device orders GA4 can't see, and uses "every" conversion counting for ecommerce. Some of those 85 landed on last week's calendar because of click-date reporting.
- GA4 reports ~70 conversions. It loses buyers to ad blockers and consent declines, recovers some by modeling, and then splits the survivors fractionally across channels — so its "Paid Search" row is smaller still.
- Shopify reports 100 orders. Every completed checkout, recorded server-side, last-click attributed.
Three numbers — 85, 70, 100 — for one week of 100 real sales. All three are internally correct.
Now attach the profit, because that's what the numbers are for
Here is the part the ranking articles skip. The reason the mismatch matters is that you make spend decisions on these numbers.
Say each $40 mug costs you $12 to make and ship through Printify, and Shopify Payments takes its standard 2.9% plus 30¢ on the $40 = $1.46. You spent $1,000 on Google Ads that week.
Work the real per-order math against Shopify's true 100 orders:
- Ad cost per order: $1,000 ÷ 100 = $10.00
- Gross margin per order: $40 − $12 − $1.46 = $26.54
- True per-order profit: $26.54 − $10.00 = $16.54
Now watch what happens if you trust Google Ads' number instead. Its reported cost per order looks like $1,000 ÷ 85 = $11.76 — flattering, but it is dividing spend by an inflated, click-dated, view-through-padded count. Cut a campaign because GA4's 70 makes its CPA look worse than it is, and you may kill orders that Shopify shows were real and profitable.
The mismatch is not an analytics curiosity. It is the difference between scaling a winner and starving one. That is exactly why reconciling your ecommerce data around a single source of truth matters more than making two ad dashboards agree.
How to actually reconcile
You don't fix the gap. You frame it.
- Anchor on Shopify. Order count and total sales in Shopify are the truth for how many and how much. Every other number is an estimate of influence.
- Add UTM tags to your paid links. Consistent
utm_sourceandutm_mediumtags let GA4 and Shopify classify Google Ads traffic the same way, so your channel rows stay comparable. The same discipline keeps Google Ads sessions closer to GA4. - Kill double-counting. Pick one conversion source in Google Ads — the native tag or the GA4 import, never both as primary.
- Compare on trailing windows. Seven or fourteen days, never a single day, to absorb the click-date lag.
- Track your delta over time. A steady ratio is health; a sudden swing is your alarm. This same reconciliation muscle is what surfaces Klaviyo conversions that don't match Shopify, too.
Where PodVector fits
Reconciling by hand across Google Ads, GA4, and Shopify is a spreadsheet chore that goes stale the moment you close it. PodVector removes the chore by computing the number that actually decides your spend: true per-order profit.
PodVector connects Shopify, Meta Ads, Google Ads, Printify, Printful, and Stripe, then stitches each order to its ad cost, product cost, and processing fees in a live data warehouse. So instead of squinting at 85 versus 70 versus 100, you see what each order actually netted.
Victor, the AI operator inside PodVector, reads that connected data and proposes moves — and with your approval, executes the Shopify-side ones. Victor is not a dashboard, and Victor does not touch your ad account; he reads your ad data and hands you the profit picture the platforms won't. Connect your store and see your real per-order profit.
FAQs
Should I trust Google Ads or GA4 for my order count?
Neither — trust Shopify for the count. Google Ads is best for optimizing campaigns and bids because it is built for that. GA4 is best for seeing the full cross-channel path. But the authoritative "how many orders happened" number lives in Shopify, recorded server-side.
Why does Google Ads show more orders than GA4?
Three structural reasons: Google Ads counts view-through and cross-device conversions GA4 can't see, it reports on the click date so some orders land in a different window, and its "every" counting can log multiple conversions per click. GA4 also loses events to ad blockers and consent declines that Shopify never loses.
Is a thirty percent gap between Google Ads and GA4 a problem?
No. A ten-to-thirty-percent gap is normal and expected because the two tools use different attribution and counting. Worry when the gap hits two or three times, or when the two numbers start moving in opposite directions.
My Google Ads conversions are roughly double my Shopify orders — what's wrong?
That is the classic double-counting signature. Check whether both the native Google Ads conversion tag and an imported GA4 key event are set as primary conversions; if so, every order is counted twice. Keep one as primary and demote the other.
Will fixing my tracking make the numbers match?
No. Better tracking narrows the tracking gaps — blocked pixels, closed tabs, consent declines. It does nothing to the methodology gaps like click-date reporting, view-through credit, and fractional attribution. A structural gap remains no matter how clean your setup is, so aim for a stable, explainable delta instead of a perfect match.