47.66° N 117.43° W Summit · Profitable Growth
Answer library / Conversion Tracking · Reconciliation
Why don't my Google Ads conversions match my Shopify orders?
Google Ads and Shopify count on different clocks: Google credits the click date, Shopify the order date. On one account in 2026, switching the date basis alone moved the count 5.8 percent. Over thirty days, a count gap inside 10 percent is reconciled, 10 to 25 percent needs a named cause, and above 25 percent is a tracking problem.
The two numbers will never be equal, and an owner who expects them to be ends up chasing a gap that isn’t a defect. The useful question is how wide the gap can be before it stops being attribution and starts being a broken event or a setting. This page holds the band I use for every pair, and the six causes I rule out when a gap sits outside it.
Different clocks, same orders
Google Ads credits a purchase to the day of the click that earned it, inside a click-through window of 1 to 90 days depending on the action, plus a view-through window. Shopify writes the order on the day the card was charged. Same order, two dates, and on a thirty-day report the edges never line up.
That effect alone is measurable. In my Ecommerce Tracking Accuracy Benchmark, switching one account from click-date to conversion-date reporting moved its total by 5.8 percent on count and 7.4 percent on value, with nothing else changed. Then there’s what happens after the sale. On the one account where I could read the store’s order table, about a sixth of orders were refunded inside the window and about a tenth were cancelled, and the ad platform was never sent a restatement for any of them. Google keeps every one as a conversion. Shopify’s net figures drop them.
A gap is the normal state. This is the band I hold every account to, one row per pair.
| Comparison | What’s being compared | Window | Band |
|---|---|---|---|
| Google Ads purchase conversions vs Shopify orders attributed to paid search (GA4 last-non-direct, or Shopify Sales by traffic source) | Count. Google on click date, Shopify on order date, gross orders with refunds and cancellations left in | 30 days | Inside 10 percent, reconciled. 10 to 25 percent, name the cause. Above 25 percent, tracking problem |
| Google Ads conversion value plus Meta purchase value vs Shopify revenue after discounts, before refunds, attributed to paid | Revenue | 30 days | Inside 15 percent, healthy. Above 15 percent, a setting or an event is padding the value |
| GA4 paid-channel conversions vs Shopify paid orders | Count. GA4 sessionizes on last non-direct click | 30 days | Within 20 percent |
| GA4 paid-channel conversions vs Google Ads plus Meta reported conversions | Count | 30 days | Within 15 percent |
| Meta purchases vs Shopify orders | Count. Meta models the iOS share | 30 days | In the accounts I’ve reconciled, Meta reports 10 to 40 percent above Shopify, wider on high-iOS stores |
| Meta purchases vs GA4 paid-social conversions | Count | 30 days | 10 to 30 percent, Meta higher |
| CRM closed-won deals vs offline conversions imported to Google Ads and Meta | Count. Same records on both sides, by deal date | 7 days | Under 5 percent |
The first row is the one this question is about. Between 10 and 25 percent, I want a named cause from the list below before anyone touches a bid. Compare gross to gross, Shopify’s gross orders and gross revenue in the same window, so refunds don’t open a gap on their own. Gross here means order subtotals after discounts and before refunds, not Shopify’s Gross sales line, which is before discounts.
The setting that pads revenue
A Shopify client’s $32.99 order landed in Google Ads as $148.95. The dataLayer was clean and GA4 said $32.99. The prior agency had switched on Customer Lifecycle Value Optimization with a hardcoded $115.96 incremental value for new customers, so every new-customer conversion arrived as revenue plus $115.96, and Smart Bidding had been chasing that number for nine months. The setting is two clicks deep under Conversions, then Summary, and it’s the first thing I check when the count reconciles and the revenue doesn’t. The full receipt is on the blog.
Add-to-cart value counted as revenue
The column reads “Conv. value”. Nothing in the interface says what fed it. On two of the three accounts in the benchmark, measured May to August 2026, between 16.6 and 17.2 percent of counted conversions and between 19.8 and 25.8 percent of reported conversion value came from add-to-cart and begin-checkout events, because those actions had been set to count inside the bidding metric. One Shopping campaign on one of those accounts had no purchase goal at all. In 90 days it reported 5.96 conversions, every one a cart or checkout event, and the algorithm bid to maximize cart value. In my Q3 account benchmark, a separate pull, 0 of 4 purchase-tracked accounts counted cart, page-view or engagement actions as primary, so this is a defect to rule out, not a rate.
This is why the revenue band sits at 15 percent rather than 25. The smallest value defect I have measured was 19.8 percent, and a wider band would call it normal. Open the conversion-action list and read the category of every action that counts. The name tells you nothing.
Two purchase events, one order
Three purchase-category conversion actions were live at once on one benchmark account: the store sales-channel tag, a tag-manager deployment, and an analytics-imported purchase event. Over their common live window they recorded 382.02, 321.59 and 266.99 purchases for the same store, a 30.1 percent spread between the highest and the lowest. The account counted only one of them. The other two existed to disagree with it.
The same defect shows up on Meta when the browser pixel and the Conversions API both fire a purchase without a shared event_id, which counts one order twice and inflates reported ROAS with it. Inside Google Ads the tell is a conversion rate far above the account’s own history on a high-volume campaign, which usually means branded overlap or a de-duplication failure. The dedup contract, one event ID shared by browser and server, is in the Tracking Stack.
The purchase event that went dark
On one store I work with, Google Ads saw about 68 percent of the purchases GA4 recorded. After a checkout migration, the purchase event no longer fired for every completed order, so part of the store’s sales never reached the Google Ads tag. Once I repaired that event and tested it from click to confirmation, the two numbers came within 4 percent of each other inside two weeks.
A gap that opens on a specific date usually has a specific cause, and a checkout change is the most common one I find. What Checkout Extensibility breaks, and the order to fix it in, is its own answer.
Revenue that landed in Unassigned
On Emma Grace Home, a furniture store I built and run, GA4 was crediting paid revenue to Unassigned instead of a channel. The cause was a duplicate install, the most common Shopify break I find: two GA4 installs on one property, and the web container loading twice. The purchase event was also named with a capital P, and GA4 only treats lowercase purchase as a purchase.
When GA4 can’t resolve a session to a channel, Shopify’s paid orders and Google’s conversions each look fine on their own and refuse to meet in the middle. Count your installs before you touch an attribution setting.
The five-number reconciliation I run weekly
Fifteen minutes in a spreadsheet, five numbers, same thirty-day window: Google Ads conversions, Meta conversions, GA4 paid-channel conversions, Shopify paid orders, Shopify revenue after discounts, before refunds. I read them against the table above in a fixed order.
- Google Ads conversions against Shopify paid orders. Inside 10 percent, move on. Outside 25, stop here.
- GA4 paid conversions against Shopify paid orders, within 20 percent, and against the Google Ads plus Meta sum, within 15 percent. A miss on either points at a channel-mapping or session problem, the kind two GA4 installs produce.
- Platform conversion value against Shopify paid revenue after discounts, before refunds, within 15 percent.
If the count band holds and the revenue band doesn’t, the cause is a value setting: lifecycle padding or cart value counted as revenue. If neither holds, an event is missing or doubled. Either way, no bid, budget, or structure change goes in until the count gap is back inside 10 percent, because every one of those decisions is computed from the column that’s wrong. A gap that holds steady for a month is attribution. One that jumps in a single week is a broken tag with a date on it.
When to bring me in
Bring me in when Google Ads, Meta and your store report different numbers for the same sales, when a purchase or lead event stopped firing after a site change, or when you can’t say which number to trust.
I'm Conner Crowe, and I write every audit myself. Send the free audit request and add me as a read-only user, and within 24 hours of access you'll have a written read on which numbers to trust and what to fix first. No call needed, and nothing in your account or store changes.
See it in Google Ads
Where to look in your account.
What Google is allowed to count
Goals, then Summary, then View all conversion actions
- Tracking status. Inactive or Needs attention means the tag hasn’t recorded anything lately, so check it before you trust the totals.
- Primary or Secondary. Only Primary actions feed Smart Bidding; Secondary ones are reported and ignored by the bidding.
- Count. One per click for leads, Every for purchases. A lead form set to Every counts a double-submit twice.
- Included in account-level goals. Yes is what the campaigns actually optimize toward.
From my own Google Ads account, October 2026. Tap or click the screen to see it full size.
Where new-customer value lives
Goals, then Conversions, then Summary, then Customer lifecycle optimization
- Incremental conversion value. This is where you tell Google a new customer is worth more than a returning one. Not set means it isn’t.
- New-customer bidding won’t run until a customer audience has at least 100 active members on one network. Mine didn’t when I captured this.
- Retention for lapsed customers needs its own audience. 0 segments selected means it has nothing to work with.
From my own Google Ads account, October 2026. Tap or click the screen to see it full size.
Tools for this diagnosis
-
The Tracking Stack
Eight-layer conversion-tracking reference for Shopify brands.
-
Google Ads Setup Checklist
Free 25-page PDF checklist. No email required.
Related questions
-
How does Shopify Checkout Extensibility break my tracking, and how do I fix it?
Shopify retired checkout.liquid and additional scripts. What that breaks in your pixel, GA4, and CAPI tracking, and how to rebuild it with Web Pixels.
-
Why is my Shopify conversion tracking not working?
Shopify tracking breaks at predictable points: a missing Customer Events pixel, mismatched event names, or no deduplication. How I find the real cause.
-
How do I set up the Meta Conversions API the right way?
How to set up the Meta Conversions API so server events deduplicate with the pixel, match well, and stop double-counting in platform reporting.
-
How do I know whether Meta or Performance Max drove a sale?
Why Meta and Google both claim the same order, how to see what each one really added, and how calls and bookings get counted for lead-gen businesses.
Want your tracking checked?
Same check,
run on your tracking.
Add me as a read-only user and I'll write the audit myself: which of your numbers to trust and what to fix first, 5 to 7 pages, back within 24 hours of access. No call needed. If you'd rather talk first, a call is open too.