Skip to content

How to Fix Google Ads Conversions Not Matching Shopify Sales

Three platforms, three answers, one budget to defend. Your GA4 export already holds the answer, and the first finding is free and never leaves your browser. Get your first finding free

By , Founder & CEOUpdated 14 min read

Run the numbers for your store: the free break-even ROAS calculator.

How to Fix Google Ads Conversions Not Matching Shopify Sales

Quick Answer: Google Ads reports a purchase on the date of the ad, not the date of the order (Google Ads Help on data discrepancies), and credits it with its own attribution model and window. Shopify's marketing reports, by default, give the same order to the last click, direct visits included. So the two rarely match, and a steady gap is two rulebooks counting the same sales. A gap that jumps overnight is usually the setup, not the channel: a purchase action counting twice, a checkout tag that stopped firing, or a changed setting.

You don't need the two numbers to match, and you can't make them. You need a gap you can explain, so budget doesn't follow a counting error. The causes come first below, then the fixes, starting with the tag.

Understanding the Discrepancy: Why Google Ads and Shopify Rarely Align Perfectly

See also: Attribution Tools Under €100 - What Actually Exists (and What Doesn't)

Several things push the two numbers apart. The first two are rules each system chose; the rest are sales one side never saw, or values it read differently.

Attribution Models: Google Ads uses a data-driven attribution model by default for most conversion actions, with last click as the only other option; first click, linear, time decay and position-based models are no longer supported. Shopify's marketing reports default to a last click model that counts direct visits (last non-direct click, first click, any click and linear are also available). So one order can be Google's in Google Ads and Email's in Shopify, if an email click came last.

Attribution Windows: Google Ads lets you set conversion windows (for example, 30 days for clicks and 1 day for view-through conversions). Shopify's reports apply their own rules and attribution window. Someone clicks your ad, leaves, and comes back days later by typing your URL: Google Ads can still claim that purchase inside its window. Whether Shopify credits the ad depends on the model you view and on whether Shopify saw the first click.

Ad Blockers and Browser Privacy Settings: Ad blockers and strict privacy settings can stop Google's scripts (gtag.js or Google Tag Manager) from firing, so Google Ads never hears about a sale Shopify recorded. How many of your visitors block scripts depends on your audience.

Cross-Device Conversions: Someone clicks your ad on their phone on the way home and buys on a laptop that evening. Google Ads estimates some of these purchases through cross-device tracking and modelling; Shopify sees only the laptop visit, so it may never connect the sale to the ad.

Page Load Speeds and Tracking Script Delays: On a slow store, or with tags placed too late, a buyer can finish and leave before the Google Ads conversion tag fires: a real sale in Shopify that Google never records.

Currency Conversion and Tax Differences: If you sell in several currencies, or tax rules differ by market, check that the value Google Ads receives matches what Shopify records.

Step-by-Step Troubleshooting: Fixing Your Google Ads and Shopify Conversion Discrepancies

Six checks for when the numbers stop matching, starting with the tag itself. Re-test after each change.

1. Audit Your Google Ads Conversion Tracking Setup

Start with the tag: is it installed, set up as your primary purchase action, and firing once per purchase?

Verify Google Tag Manager (GTM) or Global Site Tag (gtag.js) Installation:

  • GTM: Confirm that the GTM container snippet is correctly installed on every page of your storefront, ideally immediately after the opening <head> tag, and that your Google Ads Conversion Linker tag fires on all pages. On Shopify, a container in theme.liquid does not run on checkout or the Thank you page, so a purchase tag inside it will not fire there. The supported way to track purchases is Shopify's Customer events; Shopify documents loading GTM as a custom pixel, but only as an advanced route it does not support.
    • gtag.js or the Google & YouTube app: If you're using gtag.js directly, ensure the global site tag is present on all pages; the purchase event has to come from a pixel, not from a snippet pasted into the order confirmation page. Shopify's Google & YouTube app sets up purchase, add to cart and checkout started conversions for you; if you use it, make its conversions primary and remove legacy tags so purchases are not counted twice.

Check Conversion Action Settings in Google Ads:

  • Navigate to Goals > Conversions > Summary in your Google Ads account.
    • Review your primary purchase conversion action. Ensure it is set as a primary action, the kind Google Ads uses for bidding.
    • Verify the "Count" setting. For purchases, this should almost always be set to "Every" to count every purchase event.
    • Confirm the "Conversion window" (e.g., 30 days for clicks, 1 day for view-through). Ensure these align with your expectations.
    • Verify the "Attribution model." Google Ads now offers "Data-driven" (the default) and "Last click." Make a note of the model you are using.

Test Your Conversion Tracking:

  • Use the Tag Assistant Chrome extension (it replaced Tag Assistant Legacy) with tagassistant.google.com to browse your Shopify store and simulate a purchase. Observe if the Google Ads conversion tag fires correctly on the order confirmation page; Tag Assistant cannot see Google tags inside a Shopify custom pixel.
    • Alternatively, start from Google Ads itself: in the conversions summary table, hover over the purchase action's tracking status, select Troubleshoot, and complete a test purchase in the Tag Assistant session that opens. Google updates the status of actions verified in that session after about 30 minutes (Google Ads Help).

2. Implement Enhanced Conversions for Google Ads

Enhanced conversions send hashed, first-party customer data (such as an email address) from your store to Google with each conversion, in a privacy-safe way. That helps Google tie purchases to ad clicks it couldn't connect from cookies alone, such as a click on one device and a purchase on another.

Configuration: You can set up enhanced conversions via Google Tag Manager or directly through gtag.js. This typically involves capturing customer data like email addresses (hashed using SHA256) at the time of purchase and sending it with the conversion event.

Shopify Integration: On Shopify, the Google & YouTube app can do this for you: turn on Enhanced conversions in the app's settings (Google Ads Help). A hand-built setup has to read the customer data from Shopify's Customer events in a pixel, rather than from the Shopify.checkout object that older guides use, which usually means working with a developer.

3. Review Google Analytics 4 (GA4) Integration

GA4 gives you a second count to check Google Ads against, from a tag you probably already run.

Ensure GA4 is Correctly Installed: Verify that your GA4 configuration tag is firing on all pages of your Shopify store, whether through the Google & YouTube app, GTM or a direct gtag.js implementation.

Verify GA4 Purchase Event: Confirm that a purchase event is firing correctly on your Shopify order confirmation page in GA4. Use the GA4 DebugView to test this in real-time.

Import GA4 Conversions to Google Ads: You can import GA4's purchase event into Google Ads as a conversion action, which makes the two easier to compare. But if the Google Ads tag also counts purchases, each sale is counted twice: pick one of them as the primary action for bidding.

4. Reconcile Attribution Models and Windows

Some of the gap will always be attribution logic. You can explain it; you can't remove it. How Google Ads shares out that credit in the first place is covered in Google Ads attribution for Shopify.

Standardize Attribution: You can't make Shopify use Google's model, but you can see how much the model matters. In Google Ads, go to "Attribution" > "Model comparison" to see how data-driven and last click would each have credited your conversions.

Compare on the Same Dates: Add the "Conversions (by conv. time)" column in Google Ads. Google suggests it for reporting that lines up with other tools, because the standard column books a purchase on the date of the ad, while Shopify books it on the date of the order.

Adjust Google Ads Conversion Window: If Shopify's window is shorter, a shorter Google Ads conversion window (say, 14 days instead of 30) brings the two closer, and lowers the conversions Google reports.

5. Investigate Third-Party App Conflicts

Checkout, upsell and analytics apps can interfere with tracking scripts, or add a purchase tag of their own.

Disable and Test: Turn off recently installed or updated apps one at a time and re-test after each. It's slow, but it isolates the culprit.

Developer Consultation: For complex issues, a Shopify developer can inspect your theme's theme.liquid file and checkout scripts for potential conflicts or incorrect script placement.

6. Monitor Page Load Performance

A slow page gives a tag less time to fire.

Use Google PageSpeed Insights: Regularly test your Shopify store's loading speed. Focus on improving metrics like Largest Contentful Paint (LCP) and Interaction to Next Paint (INP), which replaced First Input Delay (FID) in Core Web Vitals in March 2024.

Refine Images and Code: Compress images, defer non-critical CSS and JavaScript, and consider a content delivery network (CDN), so your tags have time to fire.

The Deeper Problem: Beyond Basic Tracking Discrepancies

Once the tags are clean, the numbers sit closer, and a harder question is left: would those purchases have happened without the ads? Neither platform answers it. Google Ads and Shopify both assign credit to clicks that came before a sale; neither tests what would have happened without the ad.

Every attribution model (last click, first click or data-driven) assigns credit by rules or by patterns in the journey. It tells you what happened, not why. Was the Google ad the reason for the purchase, or just the last step in a journey that social, email or a friend's recommendation started?

Take one journey: a customer sees your Google ad, then an Instagram ad, reads an email, checks a review site and finally clicks your Google ad again to buy. Last click gives the final Google ad 100% of the credit; linear spreads it evenly. But if the Instagram ad was what made them want the product, the Google click was just the convenient last step. That's the limit of marketing attribution: it describes the path; it doesn't measure cause.

Attribution ModelHow it WorksProsCons
Last Click100% credit to the last click before conversion.Simple, easy to implement, widely understood.Ignores all prior touchpoints, undervalues awareness channels, highly prone to misattribution.
First Click100% credit to the first click in the journey.Highlights channels driving initial awareness.Ignores all subsequent touchpoints, undervalues conversion-focused channels.
LinearEqual credit to all touchpoints in the conversion path.Provides a balanced view of all interactions.Assumes all touchpoints have equal impact, which is rarely true.
Time DecayMore credit to touchpoints closer to the conversion.Recognizes increasing influence over time.Still rule-based, doesn't account for true causal impact of early touchpoints.
Position-Based40% credit to first and last interaction, 20% to middle.Balances awareness and conversion channels.Arbitrary credit distribution, still rule-based.
Data-DrivenUses machine learning to distribute credit based on actual data.More sophisticated, considers actual path data.Can be a black box, still correlational, relies on historical data, struggles with external factors.

So the gap that's left isn't a tracking bug. No credit model says which spend added sales you wouldn't otherwise have had. And Google's data-driven model is trained and reported by Google: the company selling the clicks also grades them.

Bridging the Gap: From Correlation to Causation

The goal isn't to make Google Ads match Shopify. It's to know the incremental value of each euro you spend there. Multi-touch attribution (MTA) and media mix modeling (MMM) find patterns in data you already have; unless a controlled test backs them, those patterns show correlation, not the causal effect of the spend.

Causal inference changes the question: not which click came last, but which sales would have happened anyway.

Three things to do with the gap that's left, before you move any budget:

  1. Put it in proportion. Add the "Conversions (by conv. time)" column in Google Ads and set it next to Shopify's orders for the same week. For illustration: Google claims 120 purchases, Shopify credits Google with 70, and the store took 1,000 orders. The 50 in dispute are 5% of the week's sales: worth understanding, not worth panicking over.
  2. Rebuild the count from your own data. Export the same week from GA4 and count the purchases in sessions that came from Google Ads. That's a third number, from a tag you already run and outside Google Ads' own model. When two of the three agree, look hardest at the third.
  3. Test what the spend caused. Pause Google Ads in one region for two weeks (exclude it in the campaigns' location settings) and compare that region's Shopify revenue with the rest, against the weeks before. That's a small holdout test, and its answer doesn't depend on anyone's attribution model.

Rule of thumb: fix the setup until the gap stops moving, then stop trying to close it. Google Ads and Shopify will keep counting differently; the regional pause is the number that tells you what the ads added.

Frequently Asked Questions (FAQ)

Q1: Why are my Google Ads conversions lower than my Shopify sales?

A1: Mostly because they count different things. Shopify's total includes every sale from every channel; Google Ads counts only the purchases it can tie to its ads, under its own model and window, and it misses some it never saw: a blocked script, a switch of device, a slow page or a misconfigured tag.

Q2: What is the best attribution model to use in Google Ads for Shopify?

A2: There isn't a best one, and Google Ads now offers only two. The Data-driven attribution model is the default for most conversion actions and uses machine learning on your account's own data to share credit between ad interactions. Last Click is easier to read but gives the final ad click all the credit. Position-based, linear, time decay and first click are no longer available in Google Ads. Either way, the model only divides credit; it doesn't tell you what the ads caused.

Q3: How do ad blockers affect Google Ads conversion tracking?

A3: They stop Google's scripts, like gtag.js or Google Tag Manager, from running on your store. The purchase still happens in Shopify, but no conversion reaches Google Ads, so Google under-reports.

Q4: Should I use Google Tag Manager (GTM) for Google Ads tracking on Shopify?

A4: It depends on how many tags you manage. For Google Ads conversion tracking alone, Shopify's Google & YouTube app is the simpler route: it sets up purchase, add to cart and checkout started conversions and can turn on enhanced conversions. GTM gives you one place to deploy many tags (Google Ads, Google Analytics, Facebook Pixel, etc.), but a container in your theme doesn't run on checkout, and Shopify treats GTM loaded as a custom pixel as an advanced setup it doesn't support.

Q5: What are enhanced conversions in Google Ads and how do they help?

A5: They send hashed, first-party customer data (such as an email address) from your store to Google Ads with each conversion, in a privacy-safe way. Google matches it to signed-in Google accounts, which recovers purchases it couldn't otherwise tie to an ad click, such as one made on a different device.

Q6: How can I ensure my conversion values are accurate in Google Ads?

A6: Pass the real purchase value from each checkout, not a fixed number. The Google & YouTube app does this for you; in a custom pixel, read the total from Shopify's checkout_completed event (event.data.checkout.totalPrice.amount and currencyCode, per Shopify's Web Pixels API) rather than from the older Shopify.checkout.total_price variable. Then check that Shopify and Google Ads use the same currency.

Frequently asked questions

  • What is the connection between How to Fix Google Ads Conversions Not Matching Shopify Sales and marketing attribution?
    It's an attribution problem as much as a tracking one: Google Ads and Shopify apply different models, windows and dates to the same orders, so each hands out credit differently. Fixing the tracking brings the numbers closer; it doesn't tell you what the ads caused. For that, pause Google Ads in one region for two weeks and compare that region's revenue with the rest.
  • How much does accurate marketing attribution cost for Shopify stores?
    Very little to start: Google Ads, GA4 and Shopify's reports are free, and a regional holdout costs only the sales the paused ads were really driving. Paid attribution tools are mostly monthly subscriptions, and several quote only through sales.

Go deeper: Causal attribution, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Have an audience of ecommerce operators? Earn 20% recurring commission by recommending the €99 read.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

The free finding runs in your browser. Your file never leaves it. The full read is €99, refundable within 30 days, no questions asked. Prices exclude VAT.