Stocky shut down on 31 August 2026. See your replacement options Stocky closed 31 Aug: export window and replacements
Pricing verified: 25 September 2026

Free Shopify Google Ads tracking/Updated October 2026/10 min read

Shopify Google Ads is missing purchases it never sees. Fix it free.

The free fix for most Shopify stores is to turn on enhanced conversions in Shopify's Google & YouTube app: Settings, Google Ads settings, Enhanced conversions, Turn on. Google then receives hashed customer data with each purchase its tag records. A Make.com server-side upload is an extra route with limits: Shopify orders carry no Google click ID.

Paid tools such as Stape, Littledata and Analyzify can capture the Google click ID in the browser, which the free routes cannot. Compared below.

Built and tested by Luke Sandelands. How we check.

Some links below are affiliate links (marked sponsored). They fund the free guides and never change a recommendation: our default pick on this page is a free tier. How we test & disclose →

The problem

Why Shopify Google Ads shows fewer conversions than you actually made

In 2026, browser-based Google Ads tracking fails on a share of purchases that scales with your store's iOS and Safari traffic. Here's exactly why.

CAUSE 01
iOS Link Tracking Protection

iOS 17+ strips the gclid parameter from URLs when customers open ad links via Mail, Messages, or Safari in Private Browsing. Google can't attribute the click: the conversion becomes invisible even though Shopify recorded the order.

CAUSE 02
Safari Intelligent Tracking Prevention

Safari ITP limits how long tracking cookies last, as short as 24 hours when the click ID arrived in the link. If a customer clicks your ad, leaves, and returns later to purchase, the attribution cookie is gone. Google sees a conversion with no source, or attributes it incorrectly to direct traffic.

CAUSE 03
Ad Blockers Blocking gTag

Browser extensions like uBlock Origin and Brave's built-in shields block the Google Ads conversion tag from loading on the thank-you page entirely. The purchase completes in Shopify, but Google records zero conversions for that customer.

What this means for your campaigns
When Smart Bidding, Target ROAS, and Performance Max optimise on incomplete conversion data, they underbid on high-intent audiences and waste spend on low-converting segments. A store whose tag fails on a meaningful share of checkouts is running Google Ads on incorrect signals, and how large that share is depends on its iOS traffic mix, its consent rate and how many visitors block scripts: we publish no average, because we have not measured one. The fix is not a bigger budget; it is complete data.
The free fix · 4 steps

How to fix Google Ads conversion tracking on Shopify for free

No code, no Google Tag Manager and no other accounts. Everything happens in Shopify's own Google & YouTube app and in Google Ads (Google Ads Help: enhanced conversions).

01
Install and connect the Google & YouTube app
Shopify Admin → Apps → Google & YouTube

Add Shopify's Google & YouTube app if it is not installed, and connect your Google account and your Google Ads account in it. The app places the Google tag on your store and records purchases as a Google Ads conversion.

02
Check Google Ads has a purchase conversion
Google Ads → Goals → Conversions

In Google Ads, open Goals and find the purchase conversion action the app created. If it shows no conversions after a few days of sales, the app is not connected to the right Google Ads account yet.

03
Turn on enhanced conversions
Google & YouTube app → Settings → Google Ads settings

In the app's Settings tab, under Google Ads settings, find Enhanced conversions, select Turn on and accept Google's customer data terms. Google then receives hashed customer data with each purchase the tag records, which helps it match more of them to the ad clicks that led to them.

04
Remove any second Google Ads tag
Theme code · Customer events · Tag Manager

If an older Google Ads purchase tag is still in your theme, a custom pixel or Google Tag Manager, remove it, or the same purchase is counted twice. Then compare Google Ads conversions with Shopify orders over the same two weeks. Some gap always remains, because not every buyer can be matched and not every order came from an ad.

What it does and does not do
Enhanced conversions improves matching for the purchases the Google tag does record. It cannot report a purchase whose tag never ran, for example when an ad blocker stopped it loading. For most stores it is still the right first step, because it costs nothing and needs no upkeep. We have not measured how many extra conversions it matches, and are not aware of a published figure for Shopify stores, so this page does not quote one.
Optional · Make.com

Optional: a server-side upload with Make.com, and its two limits

A Make.com scenario can send each paid order to Google Ads from Shopify's server, so the browser never has to run a tag. Read its two limits before building it. First, Shopify's order data has no Google click ID, so the upload carries only a hashed email for Google to match on. Second, Google is moving this upload method, offline click conversion import, out of the Google Ads API and into its Data Manager API, and Make's Google Ads module warns that uploads may fail for developer tokens that have not recently sent click conversions.

Step 01
Order paid in Shopify
Shopify backend

Customer completes checkout. Shopify confirms payment in its backend: independent of what the customer's browser does.

Step 02
Webhook fires server-to-server
Shopify → Make.com

Shopify sends an Order payment webhook to Make.com instantly. iOS restrictions, Safari ITP, and ad blockers cannot intercept a server-to-server signal.

Step 03
Customer data hashed
Make.com processing

Make.com hashes the customer email with SHA-256 and prepares the conversion upload. Shopify's order data carries no Google Click ID (gclid), so there is none to extract: the upload has only the hashed email to match on.

Step 04
Sent to Google Ads API
Google Ads Conversions

Purchase event delivered server-side to the Google Ads Conversions API. What Google can do with it depends on matching: Shopify orders carry no Google click ID, so the upload has only the hashed email.

Server-side vs browser-side: the real difference
The Google tag runs in the customer's browser on the thank-you page, so it can be blocked or never load. The Make.com upload runs from Shopify's server when payment is confirmed, so the browser cannot stop it. Whether Google can use the upload is a separate question: with no click ID, it depends on matching the hashed email and on how your conversion action is set up. Run it alongside the app's tag, never instead of it.
Make.com · 6 steps

How to build the Make.com upload

Do the four free steps above first: the upload needs the purchase conversion action they create. Then a free Make.com account and one Shopify webhook.

01
Create a free Make.com account
make.com: free tier, no credit card

Sign up for Make.com free: 1,000 credits/month (formerly called operations) at no cost. How many orders that covers depends on the credits one order uses in your scenario.

02
Create a scenario with a Webhooks trigger
Make.com → Create scenario → Webhooks

In Make.com, create a new scenario. Add a Webhooks module as the trigger. Copy the webhook URL: you will paste this into Shopify in step 3.

03
Add the Shopify Order payment webhook
Shopify Admin → Settings → Notifications → Webhooks

In Shopify Admin → Settings → Notifications → Webhooks, create a new webhook. Event: Order payment. Format: JSON. Paste the Make.com webhook URL. Save. This is the server-to-server trigger: no browser required.

04
Add the Google Ads module
Make.com → Google Ads → Upload a Click Conversion

Add the Google Ads module and choose Upload a Click Conversion. Connect your Google Ads account, then select your Customer ID and Conversion Action ID from the dropdowns. Map conversion value and currency from the Shopify order. No raw API URLs: the native module handles the Google Ads Conversions API for you. The module's two consent fields must be set to match your own consent setup; do not mark them Granted for customers who have not consented.

05
Add the hashed-email identifier
Make.com → Google Ads → User Identifiers

In the same module, add a User Identifier and map Hashed Email to SHA-256 of the order email (lowercased and trimmed). This is the Enhanced Conversions match key, and on this setup it is the only one: Shopify's order data has no Google click ID field, so whether Google accepts the upload depends on how your conversion action is set up. The pre-built scenario already includes this mapping.

06
Verify in Google Ads → Conversions
Google Ads → Tools → Conversions → Diagnostics

Place a test order. In Google Ads → Tools → Conversions, check your conversion action shows Enhanced Conversions data. The diagnostics tab will confirm whether enhanced data is being received correctly within 24–48 hours.

Pre-built & ready to import

Skip the manual build. This scenario is published free with the Google Ads module and the hashed-email mapping already configured. Clone it, connect your Google Ads account, select your Customer ID and conversion action, then set the two consent fields to match your own consent setup and place a test order.

Clone the free scenario →
Make.com · checks

If the Make.com upload shows no data

Give it a day or two after a test order, then check these first:

  • The conversion ID (it starts AW-) and the conversion label are copied from Google Ads exactly, not retyped.
  • The Google Ads customer ID is entered as ten digits with no hyphens.
  • Email addresses are trimmed and lower-cased before they are hashed with SHA-256. A hash of the raw string will not match.
  • The scenario's run history shows the Google Ads module succeeding, not an error such as CUSTOMER_NOT_ALLOWLISTED_FOR_THIS_FEATURE, the error reported for developer tokens that had not recently uploaded click conversions when Google began moving this method to its Data Manager API.
  • You are comparing like with like: Google Ads conversions against Shopify orders over the same one to two weeks. Some gap always remains, because some buyers cannot be matched to any Google account.
Comparison · free vs paid

Make.com upload vs paid Google Ads tracking tools

They are not equivalent: the paid tools can capture the Google click ID, and a Make.com webhook cannot.

FEATURE
MAKE.COM
FREE
STAPE
LITTLEDATA
ANALYZIFY
Monthly cost
$0 forever
$17/mo billed yearly
$159+/mo
$145–$275/mo
Google Enhanced Conversions
Yes
Yes
Yes
Yes
GCLID recovery
No
Yes
Yes
Partial
Server-to-server (not browser)
Yes
Yes
Partial
Partial
Data in your own account
Yes: Make.com
Their infra
Their infra
Their infra
Vendor lock-in
None
Medium
High
High
Annual cost
$0
$200
$1,908+
$1,740+
The honest summary
For most stores the free answer is neither column: it is turning on enhanced conversions in Shopify's Google & YouTube app. Paid tools such as Stape and Littledata capture the Google click ID in the browser and send it server-side, which a Make.com webhook cannot do, because Shopify's order data does not contain it. The Make.com route is a free experiment with real limits, set out above, not a like-for-like replacement.
Explained

Shopify Google Ads conversion tracking: everything explained

What is the best free way to fix Shopify Google Ads conversion tracking in 2026?

For most stores, the best free fix is to turn on enhanced conversions in Shopify's Google & YouTube app: in the app's Settings tab, under Google Ads settings, find Enhanced conversions and select Turn on (Google Ads Help). It adds hashed customer data to the conversions the app's tag records, with no other accounts and nothing to maintain. A Make.com upload, covered on this page, is an extra route with real limits: Shopify's order data has no Google click ID, and the upload method is moving to Google's Data Manager API.

Why is my Shopify Google Ads conversion tracking wrong?

The most common cause of Shopify Google Ads underreporting in 2026 is iOS Link Tracking Protection stripping the GCLID parameter from ad URLs before customers open them. When Safari, Mail, or Messages removes ?gclid= from the URL, Google has no click ID to attribute the purchase to. The second cause is Safari ITP clearing attribution cookies, often within 24 hours, before longer research journeys complete with a purchase. The third is ad blockers preventing the Google Ads conversion tag from loading on the order confirmation page. Enhanced conversions helps with the first two by giving Google hashed customer data to match on when the click ID is gone. Nothing free fully solves the third, because a purchase whose tag never loaded sends Google nothing to enhance.

What is Google Enhanced Conversions and how does it work with Shopify?

Google Enhanced Conversions is Google's supplementary server-side conversion tracking system. When the standard browser-based gTag fires, Enhanced Conversions supplements it by sending hashed first-party customer data (SHA-256 hashed email address, phone number, and name) directly to Google's API. Google uses this to match purchases to signed-in Google accounts with greater accuracy, so fewer conversions go unattributed when iOS or Safari has removed the click ID. On Shopify, the Google & YouTube app sends it for the purchases its tag records once you turn it on.

What is GCLID and why does losing it hurt your Google Ads?

GCLID, Google Click Identifier, is the unique parameter Google appends to ad destination URLs when a customer clicks your ad. Shopify reads this parameter when the customer lands and stores it as a session cookie. When the customer reaches the order confirmation page, Shopify's gTag fires with the gclid, telling Google "this specific click led to this purchase." When iOS strips the gclid from the URL, or Safari clears the session cookie, that connection is broken. Shopify does not pass the gclid on to the order: the order data a webhook delivers has no gclid field, so a server-side upload built on the Order payment webhook has only hashed customer data to match on.

How does this compare to Shopify's built-in Google channel?

Shopify's Google & YouTube sales channel installs a browser-based conversion tag on the thank-you page, which is subject to the same iOS and Safari restrictions as all browser-based tracking. Turning on enhanced conversions in the same app is the free improvement to it. A Make.com upload is a supplement to Shopify's native channel, never a replacement. Unless it is set up so Google treats it as the same conversion as the tag, the same purchase can be counted twice, so compare Google Ads conversions with Shopify orders for a week after adding it.

FAQ

Every question about Shopify Google Ads tracking answered

Google & YouTube app · Enhanced conversions · $0/month

Start with the free setting.
Add the upload only if you need it.

Turn on enhanced conversions, remove any duplicate tag, and compare Google Ads with Shopify for two weeks. If you still want a server-side route, the Make.com upload above runs on Make.com's free plan.

Back to the 4 free steps Create a free Make.com account
No code required
Any Shopify plan
$0/month
No Tag Manager

Related free tools

CAPI Shield: Meta Conversions API on the Same WebhookSaves $145–$650/mo A Make.com branch that sends Shopify purchases to Meta's Conversions API. TikTok Events API: Add TikTok to the Same Webhook Add TikTok server-side tracking as a third branchSaves $39–$275/mo No extra Shopify webhook needed GA4 vs Shopify Revenue Reconciler: Free Find why GA4 and Shopify revenue never match, and which number to trust Free tool Meta EMQ Score Estimator: Free Estimate your Event Match Quality and see what is dragging server-side matching down Free tool Shopify Attribution Tools Compared Elevar, Triple Whale, Littledata and free routes, feature by feature vs $225/mo

Key facts, checked on the source

How to cite this page: Sandelands, L. (2026). Stack Architect. Stack Architect. https://stackarchitect.xyz/shopify-google-ads-conversion-tracking/ These facts are published as open data under CC BY 4.0: key-facts.json. Found one out of date? How we check and correct.

Luke Sandelands
Written by Luke Sandelands
Founder, Stack Architect · Shopify Automation Specialist
Developer of StockLog and author of the open-source shopify-capi-validator npm package. Builds Shopify server-side tracking, Meta CAPI and Google Apps Script automations.
Full profile

Updated

Sources & primary documentation

Every technical claim and price on this page can be verified against the official documentation: