Why GA4 and Shopify report different revenue
Which gap is normal and which is a bug.
Insight
A gap between Shopify orders and Google Ads conversions is normal. A gap in the wrong direction, or one that keeps growing, is a bug that is costing you money. Here is how to tell which you have.
Short answer
Google Ads will never match Shopify exactly: it only counts orders it can attribute to an ad click, inside its attribution window, from visitors whose browsers allowed tracking. A shortfall is expected. Google Ads showing more purchases than Shopify is always a bug — usually two purchase conversion actions both set to primary. The fastest diagnosis is to compare specific days and specific order IDs rather than monthly totals.
| What you see | What it usually means |
|---|---|
| Google Ads reports more purchases than Shopify | Duplicate tracking — always a bug |
| Google Ads reports somewhat fewer | Normal: attribution, consent, blockers, other channels |
| Google Ads reports far fewer, or zero | Tag not firing, conversion action misconfigured, or checkout change broke tracking |
| Counts match, values do not | Tax, shipping, currency or discounts handled differently |
Fix: keep one primary purchase action, set the others to secondary or remove them, and make sure the transaction ID is sent.
Some of this is correct and should not be "fixed":
And some of it is a bug:
If Google Ads only shows a reporting difference in a dashboard, it costs you nothing. If Smart Bidding or Performance Max is learning from the wrong numbers, it costs you money every day: double-counted purchases make targets look easy and bids rise; missing purchases make good campaigns look bad and budgets fall.
For the GA4 side of the same problem, see why GA4 and Shopify report different revenue. If you would rather have it fixed, that is the first thing a Google Ads audit checks.
There is no single number, because Google Ads only counts ad-attributed orders. What matters is consistency: a stable shortfall is normal; Google Ads reporting more than Shopify, or a gap that changes suddenly, is a fault.
Most often the conversion action is set to secondary, the tag is not firing on the order status page after a checkout change, or the action is waiting for its first conversion. Check Goals → Conversions and run a test order with Tag Assistant.
Either can work. The common failure is using both as primary purchase actions.
They reduce it by matching more conversions using hashed customer data. They do not fix duplicate tags or misconfigured actions.
Which gap is normal and which is a bug.
Tracking checked against real orders, then everything else.
Enhanced conversions, consent mode and sGTM.
Google and Meta for Shopify stores.
Let's Talk
Book your free performance analysis call. No pressure, no obligations, just honest insights about your marketing performance.
Let’s Talk