Why Google Ads Reports Fewer Conversions Than Shopify

Why Google Ads Reports Fewer Conversions Than Shopify

TL;DR

Shopify and Google Ads are counting two different things. Shopify's marketing report credits a "Google" channel from the referrer and UTM data, using a last non-direct click model, so organic search and free product listings both show up as Google sales. Google Ads only counts a conversion when it can tie the purchase to a billable ad click, usually through a Google click ID. The biggest single cause of the gap is free product listings in Google Merchant Center, which Google reports under organic traffic and never counts as paid ad conversions. Timing differences and modeled conversions add smaller gaps on top. None of this is a bug. You close the real coverage gaps with Enhanced Conversions and server-side delivery, not by trying to force the two numbers to match.

Key Takeaways

  • Shopify attributes "Google" sales from referrer and UTM data with a last non-direct click model, so organic search and free listings both count as Google. Google Ads only counts paid ad clicks [5].
  • Free product listings in Google Merchant Center show your products without paying for ads, and Google reports those clicks as organic, not as Google Ads conversions [2].
  • Google Ads reports a conversion against the date of the ad click, not the order date, while Shopify books the sale on the order date, so day-by-day totals drift [4].
  • Google Ads needs a stored Google click id, or an Enhanced Conversions match, to attribute a conversion at all [1].
  • WeltPixel Conversion Tracking sends Google Ads purchase conversions server-side using the captured Google click id, so a slow page or a lost browser tag does not drop the conversion.
  • With Enhanced Conversions on, WCT hashes customer email, phone, name, and address with SHA-256 so Google can match orders that arrive without a fresh click id.
  • WCT has a setting labeled "Import all events that have user-provided data, even those without GCLID" to recover conversions Google would otherwise miss, and it works on the free plan.

Why does Shopify show more Google sales than Google Ads?

Because the two systems define "Google" differently. Shopify's marketing reports attribute every order to a channel using referrer and UTM data, under a last non-direct click model that gives 100% of the credit to the last non-direct channel a shopper touched [5]. That channel is derived from where the click came from, not from whether anyone paid for it. A click from organic search, a click from a free product listing, and a click from a paid ad can all carry a google source and all land in the same Shopify "Google" bucket.

Google Ads counts something narrower. It only records a conversion when it can tie the purchase to a billable ad click, normally through a Google click id stored at the moment of the click and read back at conversion time [1]. A purchase that came from organic search or a free listing has no paid click id behind it, so Google Ads correctly counts zero for it, even though Shopify shows it as a Google sale.

So the headline gap is structural. Shopify is counting every order that smells like Google. Google Ads is counting only the orders it can charge you for. Both numbers are right inside their own rules.

The biggest cause: free Google Shopping listings

Most of the gap, for stores that run Shopping, comes from free product listings. Google Merchant Center can show your products across Google "without paying for ads," and that traffic is reported as organic, tracked separately from paid Shopping ads [2]. In Merchant Center those clicks appear under organic performance, and in GA4 they read as source google with medium organic, while paid Google Ads traffic reads as medium cpc [2].

This matters because Shopify does not see the distinction. A free-listing click arrives with a Google referrer, Shopify labels the resulting order as a Google sale, and Google Ads, which only counts paid clicks, never claims it. The order is real, the revenue is real, and no ad budget paid for it. That is the point of free listings.

Treat this as expected, not broken. If a large share of your "Google" orders in Shopify are missing from Google Ads, the first thing to check is how much of your Google traffic is free listings versus paid ads. A store running heavy Shopping exposure with free listings enabled will always see Shopify's Google count run ahead of Google Ads, and trying to reconcile them to a single figure is wasted effort. The mechanism behind why Shopify even labels these as Google is the same last-click logic covered in how Shopify attribution works.

How does the conversion timing gap happen?

Google Ads and Shopify date the same purchase differently, which opens a day-by-day gap even when the totals roughly agree over a month. Google Ads reports a conversion against the date of the ad click, not the conversion date: if the ad was clicked last week and the order came this week, both the click and the conversion are reported back to last week [4]. The default click-through conversion window is 30 days, so a conversion can land against a click up to a month earlier [4].

Shopify does the opposite. Its sales reports anchor a sale to the day it was made [4]. So the same order can sit on different dates in each system. Pull a single day and Google Ads may show fewer conversions because some of that day's orders were credited back to earlier click dates, while Shopify books them today.

This is why a daily comparison almost always looks worse than a 30-day comparison. Widen the window to at least a full conversion window before you judge the gap. Comparing a Tuesday in Google Ads against a Tuesday in Shopify is comparing click-date against order-date, and they were never going to match.

Modeled and fractional conversions

Google Ads conversion totals are not always whole numbers, and that surprises operators who expect one order to equal one conversion. Two mechanics drive it. Modeled conversions use data that does not identify individual users to estimate conversions Google cannot observe directly, so part of your reported total is an estimate rather than a one-to-one count [3]. Data-driven attribution then splits fractional credit across the interactions in a path, so a single conversion can show as a decimal against any one campaign or keyword [3].

For reconciliation, this means Google Ads can land slightly above or below the true count on any given slice. It is usually a smaller factor than free listings or timing, but it is enough that you should not expect an exact integer match against Shopify's order count. If you need a clean order count, read Shopify. If you need to know which clicks earned the sale, read Google Ads and accept the modeling.

How does WeltPixel Conversion Tracking close the real gaps?

The free-listing and timing gaps are expected and not yours to fix. The coverage gap, where a paid click should have counted but did not, is the one worth closing. WeltPixel Conversion Tracking sends your Google Ads purchase conversions server-side, straight to the Google Ads API, using the Google click id captured at checkout to tie each conversion to the ad click that earned it. Because the upload happens from the order webhook on the server, a slow page, a blocked tag, or a closed browser tab does not drop the conversion the way a browser-only tag can.

With Enhanced Conversions turned on, WCT hashes the customer's email, phone, name, and address with SHA-256 before sending, so Google receives only hashed data and can still match the order to a signed-in account that interacted with an ad, even when the click id alone falls short [6]. That recovers conversions the cookie path misses. Setting it up is the same flow described in Enhanced Conversions setup and verification.

There is also a setting labeled "Import all events that have user-provided data, even those without GCLID." It sends a conversion even when no Google click id is present, relying on the Enhanced Conversions hashed data so Google can still match the order. It increases coverage, and it requires Enhanced Conversions to be on. Orders that have neither a click id nor user data are still skipped, because Google needs at least one identifier to match. WCT sends Purchase conversions to Google Ads only, not add-to-cart or begin-checkout, and consent signals are passed to Google Ads with every conversion. Google Ads tracking is included on the free plan. The foundations of all of this are in the Google Ads conversion tracking on Shopify guide.

Reconcile the gap on your own store

Work through the gap in order, from largest cause to smallest, instead of treating every missing conversion the same way.

Gap you see Why it happens What to do
Shopify "Google" sale absent from Google Ads Free listing or organic click, no paid ad behind it Confirm in Merchant Center under organic; expected, no fix
Paid click that should have counted but did not Browser tag blocked, or no fresh click id at checkout Turn on server-side upload and Enhanced Conversions
Conversion on a different day in each tool Google dates by click, Shopify dates by order Compare over a 30-day window, not day by day
Google Ads count is a fractional number Modeled conversions and data-driven credit splitting Accept the estimate; read Shopify for clean order counts

To check the free-listing share, open Google Merchant Center and review your product traffic split between organic and paid. In GA4, go to Reports > Acquisition > Traffic acquisition and compare google / organic against google / cpc to see how much of your Google revenue never touched an ad. In Google Ads, open Goals > Conversions > Summary and note the conversion window before you compare any date range against Shopify. Then in Shopify Admin, open Analytics > Reports > Sessions by referrer or the marketing channel report and look at the Google channel total. If Shopify's Google number runs well above Google Ads and most of it is organic in Merchant Center, you have found your gap, and it is working as designed.

FAQ

Why does Google Ads show fewer conversions than Shopify?

Because Shopify counts every order with a Google referrer as a Google sale, including organic search and free product listings, while Google Ads only counts purchases tied to a paid ad click [5][1]. The biggest single cause is free Google Shopping listings, which Google reports as organic and never counts as paid conversions [2].

Are free Google Shopping listings counted by Google Ads?

No. Free product listings show your products without paying for ads, and Google reports those clicks as organic traffic, separate from paid Shopping ads [2]. They will show as Google sales in Shopify but never as conversions in Google Ads, which is expected behavior.

Why is my Google Ads conversion count a decimal?

Google Ads uses modeled conversions to estimate purchases it cannot observe directly, and data-driven attribution splits fractional credit across interactions, so per-campaign counts appear as decimals [3]. This is normal and not a tracking error.

Can WeltPixel Conversion Tracking recover conversions Google Ads is missing?

It recovers the paid clicks that should have counted but did not. WCT sends purchase conversions server-side using the captured Google click id, and with Enhanced Conversions on it sends hashed customer data so Google can match orders that arrive without a fresh click id [6]. It cannot turn a free-listing or organic order into a paid conversion, because no ad click exists.

Stop chasing a match, close the real gap

The gap between Shopify and Google Ads is mostly free listings, timing, and modeling, and none of that is yours to fix. The part worth fixing is the paid click that never reached Google Ads. WeltPixel Conversion Tracking sends every Google Ads purchase conversion server-side from the Shopify order webhook, using the captured Google click id and, with Enhanced Conversions on, hashed customer data, so the conversions you actually paid for are counted instead of lost to a blocked browser tag. Google Ads tracking is included on the free plan.

Install WeltPixel Conversion Tracking on the Shopify App Store

Sources

  1. Google Ads Help: How Google Ads tracks website conversions
  2. Google Merchant Center Help: Show your products for free on Google
  3. Google Ads Help: About modeled conversions
  4. Google Ads Help: Understand your conversion tracking data
  5. Shopify Help Center: Marketing reports
  6. Google Ads Help: About enhanced conversions for web

Ready to upgrade your tracking?

Server-side tracking for Magento and Shopify — accurate data, better attribution, full privacy compliance.