...

Conversion Tracking

Shopify vs Google Ads Conversion Tracking: Why the Numbers Never Match and How to Fix It

Dan Kabakov, Google Ads Certified Partner Last Updated: May 13, 2026 10 min read
The Core Reality

Your Shopify says 67 orders. Google Ads says 120 conversions. Both numbers are technically correct. The problem is that three different measurement systems are pretending to track the same event using different rules — and in 2026, with browser tracking restrictions at an all-time high, the gap is wider than it’s ever been.

A founder messages their agency: “Your Google Ads report says we did $40,000 in revenue. My Shopify says $24,000 from paid traffic. Who is right?” The agency says Google Ads. The founder looks at their bank account and believes Shopify. Neither party is lying. They’re reading from different measurement systems that were never designed to agree.

This is the single most common source of confusion in ecommerce advertising — and most agencies either gloss over it with vague “attribution differences” language, or they cherry-pick the number that makes their ROAS look better. Neither approach helps you make good business decisions.

In this post I’ll explain exactly where the gap comes from, when it is normal, and the specific tracking stack I install on every Shopify client to keep the gap inside an acceptable range. This is not theory. These are the exact steps that come from managing multiple Shopify stores with six-figure monthly ad spend.

Free Guide
Tracking Is Only One of Five Gaps

This is one of five structural problems that make Shopify Google Ads accounts look better than they perform. Get the free guide covering all five, with the fix for each.

Get the Free Guide

01Why Both Numbers Are Right (And That Is the Problem)

Google Ads, Shopify, and GA4 are three entirely different systems. Each one has its own definition of what a conversion is, its own attribution model, and its own data collection method. Here is what each platform is actually measuring:

  • Google Ads counts a conversion when someone clicks an ad and completes a tracked event within an attribution window. The default is a 30-day click window. A customer who clicked an ad on March 1st and bought on March 28th shows as a Google Ads conversion. Shopify records that order on March 28th with no connection back to the original click.
  • Shopify counts an order at the moment a customer pays. It uses last-click attribution across all traffic sources, with limited cookie-based session tracking. It records what it sees from the browser, nothing more.
  • GA4 uses a data-driven attribution model that distributes conversion credit across multiple sessions and touchpoints. A single purchase might appear as 0.4 of a conversion attributed to paid search and 0.6 split across email and direct. None of these fractions appear in either of the other dashboards.

So a single real purchase can generate one conversion in Google Ads, one order in Shopify, and a fractional conversion spread across channels in GA4. All three are technically accurate within their own framework. The problem is that most store owners expect them to show the same number.

The Right Mental Model

Stop trying to make the numbers match exactly. Instead, ask: is the gap between these systems staying within a normal range, or is it growing in a way that suggests broken tracking? That is the question that actually matters.

Platform What It Counts Attribution Model Data Source
Google Ads Ad click + tracked event within window Data-driven (default 30d click) Cookie + gclid + Enhanced Conversions
Shopify Completed orders only Last click, session-based Browser session cookies
GA4 Events attributed to sessions Data-driven (multi-touch) Cookie + server-side (if configured)

02Root Cause 1: Attribution Windows

Google Ads default attribution window is 30 days for clicks. That means a customer who saw and clicked your ad three weeks ago, then decided to buy today, counts as a Google Ads conversion attributed to that original click. Shopify records the transaction today, with no visibility into that earlier click.

In categories with longer consideration periods — jewelry, furniture, premium apparel — this window effect is enormous. A customer might research for two weeks before converting. Google Ads catches that. Shopify’s session-based reporting misses the original source entirely.

GA4 adds a third layer. Its data-driven model splits credit across sessions, so the same purchase that Google Ads counts as one conversion might appear as 0.4 in GA4’s paid search channel, with the remaining 0.6 distributed across direct, email, and organic. Combine all three systems and you have three different answers to the question “how many purchases did our ads drive this month?”

Practical Check

If you want to understand your own window effect, filter your Google Ads conversions by conversion delay. Look at what percentage of your conversions happen after day 7, day 14, and day 30. In high-consideration categories this is often 30 to 50 percent. That percentage represents the structural gap you will never close just by fixing your tags.

03Root Cause 2: Browser-Level Data Loss

Safari has blocked third-party cookies for years. Firefox has followed. iOS on default Safari is the worst-case scenario for click-based tracking. The gclid parameter that ties an ad click to an eventual purchase is fragile on these browsers. When the gclid is dropped, the order still happens in Shopify. The conversion never reaches Google Ads.

Ad blockers compound this. Approximately 30 to 40 percent of desktop users in key markets run some form of ad blocking. Many of these tools block Google’s tracking scripts entirely, meaning the purchase event never fires even when the user is on Chrome.

Here is the honest breakdown of what you are dealing with:

Traffic That Tracks Reliably
  • Chrome desktop users without ad blockers
  • Android Chrome mobile users
  • Users who accept all cookies and have no extensions
  • Returning customers where Enhanced Conversions has a prior email match
Traffic With Structural Loss
  • Safari on iOS (default browser, no third-party cookies)
  • Firefox with Enhanced Tracking Protection enabled
  • Any browser with an ad blocker or script blocker
  • Users in privacy-strict regions where consent banners cause rejection

If your store’s traffic skews heavily mobile, and most ecommerce stores do, you are likely losing 20 to 40 percent of conversion events purely from browser-level restrictions. This is not a configuration problem you can solve by tweaking a tag. It is a structural reality of the modern web. The goal is not to recover all of it. The goal is to recover as much as possible and stop losing more than necessary.

⚠ Check Your Device Mix First

Before you invest in any tracking fix, check your GA4 device category breakdown for paid sessions. If more than 60 percent of your paid traffic is iOS mobile, your tracking gap is structural and the most impactful fix is Enhanced Conversions, not tag configuration.

04Root Cause 3: The Checkout Redirect Problem

This is the most preventable cause of tracking gaps on Shopify, and the one most stores are completely unaware of. When a customer clicks “complete order,” some payment methods route them through a third-party redirect before landing on your thank-you page. If your conversion event fires only on the thank-you page, and the redirect causes the session to break or the page to load without the original gclid in scope, the conversion event never fires.

The order appears in Shopify immediately. The conversion never reaches Google Ads. From Google Ads’ perspective, that customer clicked an ad, added to cart, reached checkout, and then disappeared — even though they bought.

This pattern is common with PayPal standard, certain bank redirect payment methods, and some buy-now-pay-later integrations that redirect users outside the Shopify domain during checkout.

How to Test for This in 10 Minutes

1
Pull 10 recent orders from paid traffic in Shopify

Filter last 7 to 14 days in Shopify orders, then filter by source to paid search or paid social. Note the order IDs and approximate order times.

2
Check how many appear in Google Ads conversions

In Google Ads, look at your conversion report filtered to the same date range. Count how many of those 10 orders have a corresponding conversion. If 3 or fewer appear, your thank-you page tracking has a coverage problem.

Expected: at least 6 to 7 out of 10 should match
3
Identify which payment methods are causing the drop

Compare the orders that matched against those that did not. If the unmatched orders all used PayPal or a specific payment method, you have found your redirect problem. The fix is either GTM on the order status page or server-side event firing.

05The 4-Layer Tracking Stack for Shopify

After working through tracking problems on multiple Shopify accounts, I have landed on a four-layer approach that consistently keeps the gap between Shopify and Google Ads inside 25 to 30 percent, even on iOS-heavy traffic. Here is the stack in order of implementation priority:

1
Native Shopify and Google Ads Integration

Set this up first. Inside Shopify, connect your Google Ads account through the Google channel app. This installs the base conversion tag and fires it on order creation. It handles the basics at no cost. For stores spending less than $2,000 per month on Google Ads, this plus Enhanced Conversions is often sufficient.

2
Enhanced Conversions

This is the biggest free upgrade most Shopify stores have not done. Enhanced Conversions takes the customer’s hashed email at checkout and sends it back to Google, allowing Google to match the conversion to the original click even when the cookie is missing. On iOS-heavy stores, this alone can recover 15 to 25 percent of conversions that would otherwise be lost. Takes about an hour to set up correctly. There is no reason not to have this running.

3
Server-Side Tracking

At this layer, you stop relying on the customer’s browser to fire events and start sending conversion signals from your server instead. Ad blockers cannot touch server-side events. The two paths I see most often are GTM server-side containers (requires technical setup or a developer) and managed apps like Elevar or Stape (monthly fee, they handle the implementation). The practical threshold: once you are spending $3,000 to $5,000 per month on Google Ads, the tracking gap costs you more in misinformed decisions than the tool fee costs you in cash. Below that threshold, the first two layers are enough.

4
End-to-End Verification

After setting up any part of this stack, run a real test purchase. Click one of your own ads first so a gclid is present in the URL. Complete checkout. Then check three things within 24 hours: the Google Ads conversion screen, the GA4 events screen, and your server-side debug view if you are using one. If the order appears in all three, your stack works. If it is missing from one, that is exactly where your tracking gap lives. Most stores skip this step entirely and only discover the problem months later when ROAS drifts unexplainably.

Free Google Ads Audit
Not sure where your tracking gap lives?

I audit Shopify conversion tracking as part of every free account review. I will identify whether your gap is attribution, browser loss, or a broken tag — and tell you exactly which layer to fix first.

Get Free Audit

06Three Gap Patterns and What Each One Means

Not every tracking gap points to the same fix. The direction and character of the discrepancy tells you a lot about where to look first. Here are the three patterns I see most often when auditing Shopify accounts:

Pattern 1: Google Ads Conversions Higher Than Shopify Paid Orders

This almost always means duplicate event firing. Your conversion tag is firing on more than one event, or on an event that is not a final purchase. Common causes include tagging both the order confirmation popup and the thank-you page, accidentally marking a “begin checkout” or “add to cart” event as a primary conversion, or a GTM trigger that fires on every page load rather than only on order completion.

The fix is in your tag setup, not your campaigns. Audit the events firing in GTM preview mode or the Google Tag debugger. Find the duplicate and remove it. This is a configuration problem, not a measurement philosophy problem.

Quick Diagnosis

In Google Ads, check your conversion actions list. If you have “purchase” flagged as Primary and also have “begin checkout” or “add to cart” also flagged as Primary, that is your problem. Secondary conversion actions should be set to “Secondary” so they do not inflate your reported conversion count.

Pattern 2: Shopify Paid Orders Much Higher Than Google Ads Conversions

This is the most common pattern, and the one that causes the most anxiety. Founders see Shopify reporting strong sales from paid traffic, then look at Google Ads and see far fewer conversions, and conclude their agency is lying or their ads are failing. Neither is usually true.

This pattern means coverage loss. Either your thank-you page event is not firing on certain payment methods, or you are losing tracking on Safari and mobile that Enhanced Conversions has not recovered. The fix follows the stack exactly as described above: start with Enhanced Conversions, then move to server-side if the gap persists past 30 percent.

Pattern 3: Numbers Look Close on Average but Vary Wildly Week to Week

This one is usually not a tracking problem at all. Performance Max campaigns have built-in conversion delays. A purchase that happens on Thursday after a customer first engaged with a PMax ad on Monday may not register in Google Ads until the following week. Combined with variable purchase timing across a month, this creates weekly volatility that smooths out over 30 days but looks chaotic if you check every Friday.

If you are chasing weekly noise on a Performance Max account, you will always be confused. Move to a monthly reporting cadence for PMax campaigns specifically. The chaos disappears.

Diagnosis Framework

Before spending time on a tracking fix, identify which pattern you are in. Google Ads too high points to duplicate tags. Shopify too high points to coverage loss (Enhanced Conversions and server-side). Weekly volatility with monthly alignment points to reporting cadence, not tracking. Do not try to solve all three at once — fix the dominant one first.

07How Much Gap Is Acceptable

Even with a perfect server-side stack, Enhanced Conversions, and no duplicate tags, you will never get Shopify and Google Ads to report the same number. The attribution window difference alone makes exact matching structurally impossible.

The practical benchmark is this: if your Google Ads conversion value and your Shopify paid revenue are within 25 to 30 percent of each other over a rolling 30-day period, your tracking is functioning normally. You are dealing with attribution variance, not a broken stack.

If the gap is consistently above 30 percent over 30 days, that is a signal that something structural is wrong. Either you have coverage loss from the checkout redirect, or your Enhanced Conversions is not set up, or you are running significant iOS traffic without server-side in place.

Gap Level Likely Cause Action
Under 15% Normal attribution variance, good setup No action needed
15% to 30% Normal with some browser loss Add Enhanced Conversions if not running
30% to 50% Coverage loss or checkout redirect issue Audit thank-you page firing + Enhanced Conversions
Above 50% Structural tracking break Full audit required before any campaign optimization

This benchmark matters because it changes how you interpret your campaign performance. If you have a 40 percent gap and you see a 3.0 ROAS in Google Ads, your real return might be substantially higher than that. If you have a 15 percent gap and you see a 3.0 ROAS, you can trust that number as a reasonable estimate of actual performance.

The tracking gap is not just an analytics problem. It is a decision quality problem. Every bidding decision, every budget allocation, every campaign structure change you make is based on the conversion data in Google Ads. If that data is 40 percent incomplete, your bid strategies are working from fundamentally broken inputs.

Your Tracking Audit Checklist
  • 1Calculate your current 30-day gap: (Google Ads conversion value minus Shopify paid revenue) divided by Shopify paid revenue. If above 30%, continue below.
  • 2Check for duplicate conversions in Google Ads: open Conversion Actions and verify that only the purchase event is set to Primary.
  • 3Verify Enhanced Conversions is active: in Google Ads, go to Goals, then Conversions, then Settings, and confirm Enhanced Conversions for web is enabled and receiving data.
  • 4Run the checkout redirect test: pull 10 recent paid orders from Shopify and check how many appear in Google Ads conversions within 48 hours.
  • 5Check your device mix in GA4: if iOS is above 50% of paid sessions and your gap is above 30%, server-side tracking is your next investment.
  • 6Run a test purchase end-to-end quarterly to confirm the full stack is still working. Tag setups break silently when themes or apps update.
Free Google Ads Audit
Not sure if your tracking is the problem?

I look at Shopify tracking health on every account I audit. I will tell you exactly what is broken, what is normal, and what to fix first — at no cost.

Get Free Audit

08Frequently Asked Questions

This typically means duplicate event firing. The most common cause is having a conversion tag fire on both the order confirmation popup and the thank-you page, counting the same purchase twice. It can also happen when add-to-cart or begin-checkout events are incorrectly set as Primary conversion actions in Google Ads. Audit your conversion actions list and your GTM triggers to identify which event is firing more than once per transaction.

This is coverage loss, and it is the most common pattern in ecommerce. Google Ads is failing to track conversions that Shopify can see because: the gclid is lost on Safari or iOS, an ad blocker prevented the conversion tag from firing, the checkout process involved a payment redirect that broke the user session, or Enhanced Conversions is not set up to recover cookie-less conversions. Start with Enhanced Conversions, then run the checkout redirect test described in this post, then consider server-side tracking if you are spending more than $3,000 per month.

Neither, exclusively. Shopify is the source of truth for orders and actual revenue because it records what people paid. Google Ads is the source of truth for campaign performance decisions because it is the data your bid strategies are optimizing against. The practical approach: use Shopify to verify that actual business results are trending in the right direction, and use Google Ads data to make bidding and budget decisions. Reconcile the two monthly to confirm your tracking gap is inside the 25 to 30 percent normal range.

Enhanced Conversions is a free Google Ads feature that takes the customer’s email address at checkout, hashes it, and sends it to Google alongside the conversion event. Google then matches that hashed email against its own signed-in user data to attribute the conversion back to the original ad click, even when the gclid cookie is missing. On stores with significant iOS or Safari traffic, this typically recovers 15 to 25 percent of conversions that would otherwise be lost. It takes about an hour to implement correctly through GTM or via Shopify’s native Google channel integration.

The honest threshold is around $3,000 to $5,000 per month in Google Ads spend. Below that, Enhanced Conversions plus the native Shopify integration handles enough that the gap stays within normal range. Above that spend level, the cost of misinformed bidding decisions from a 30 to 40 percent tracking gap starts exceeding the cost of a server-side tool. Options include GTM server-side containers (requires developer time), managed apps like Elevar ($150 to $300 per month), or Stape (lower cost, more technical setup). The payback is faster than most store owners expect once they see how much their bid strategies improve with cleaner data.

Run a real test purchase end-to-end at least once per quarter. Shopify theme updates, app installations, and payment provider changes all have the potential to silently break your conversion tracking. The test takes about 20 minutes: click one of your own ads to generate a gclid, complete checkout, then check the conversion in Google Ads and GA4 within 24 hours. Most tracking breaks go undetected for weeks or months because ROAS drifts gradually rather than dropping to zero. A quarterly test catches these breaks early, before they corrupt months of optimization decisions.

 
Next Post
Google Ads Performance Planner: Forecast Results Before Spending