AnyTrack

PLAYBOOK

Send Shopify Purchases to Google Ads with Enhanced Conversions

Google Ads reports fewer sales than Shopify, so Smart Bidding optimizes toward a number that isn't real. This playbook sends every checkout event server-side, with the hashed customer data Enhanced Conversions needs, before it reaches Google.

Google Ads
Ad click lands on your store
arrow-down.svg ui
Your Shopify Store
Pages, cart & checkout events
arrow-down.svg ui
logo-alt.svg ui
AnyTrack
Dedupe, enrich, attribute
arrow-down.svg ui
Google Ads Conversion API
Server-side, with Enhanced Conversions data
↺ Real revenue loops back to sharpen Smart Bidding
Playbooks / Send Shopify Purchases to Google Ads with Enhanced Conversions

Set a tROAS target and Google keeps that promise with the data it can see. That’s the problem. Between iOS restrictions, Safari’s tracking prevention, and ad blockers, the browser-side gtag misses a slice of your real Shopify sales, so Smart Bidding optimizes toward the orders that happened to survive, and you scale spend on a conversion count you can’t reconcile with your store admin.

  • Smart Bidding learns from incomplete data: the checkout events that don’t survive the browser never reach the bidding model, so it undervalues the campaigns quietly producing them.
  • Layered tracking double-counts the rest: the Google & YouTube channel app, leftover gtag snippets, and a GA4 import can each report the same order, inflating the Conversions column.
  • Enhanced Conversions sits idle: Google can match hashed checkout data to signed-in users, but only if something sends that data with every sale.

This playbook fixes all three. AnyTrack collects your Shopify checkout events server-side, matches each order to the gclid that earned it, and sends it to Google Ads through the Conversion API with the hashed customer data Enhanced Conversions requires, formatted and normalized automatically.

Outcomes What This Playbook Unlocks
roas-tracking.svg features
Value-based bidding
Every order total reaches Google with its currency normalized, so tROAS and Performance Max bid on revenue instead of conversion counts.
party-data.svg features
Recovered conversions
Enhanced Conversions match hashed checkout data to signed-in Google users, recovering sales that cookie restrictions lose.
data-orchestration.svg features
One number you trust
Shopify orders and Google Ads conversions finally reconcile, side by side in the Campaign Report.
How it works

The Journey of a Tracked Conversion

Follow one order from the ad click to a value-attributed conversion in Google Ads. Every step is tracked, enriched, and sent automatically.

Ad Click
Campaign UTMs on the landing URL
Google click ID (gclid) on the click
logo-alt.svg ui
Session Started
Tracking Pixels loaded (Google Tag)
gclid & UTMs collected
AnyTrack Click ID generated & first-party data collected
Links & forms AutoTagged with the Click ID
Add to Cart
Cart webhook, server-side from Shopify
Product, quantity & cart value collected
Purchase
Order webhook, no thank-you page needed
Order total & currency normalized
Customer data hashed for matching
Sent to
logo-alt.svg ui
AnyTrack
logo-alt.svg ui
Conversion Tracked
Matched to the session & Google click ID
Deduplicated & enriched
Attributed & reported in the AnyTrack Dashboard
Sent to Google Ads
Enhanced Conversions
Conversion data + first-party data
Audiences build from each event & its value
Attributed per your attribution settings & window

Steps marked with the AnyTrack node run automatically. No extra code, no manual tagging.

Example Scenario

You run a Shopify store with Performance Max and Search campaigns. Shopify’s order admin shows healthy revenue, but the Google Ads Conversions column tells a poorer story, so bidding stays timid on your best campaigns. You want every Purchase, with its real order value, flowing to Google server-side with the original ad click attached.

Prerequisites Before You Begin
  • An AnyTrack account on Starter or above (the Conversion API requires a paid plan)
  • Admin access to your Shopify store, for theme code and Settings → Notifications
  • A Google Ads account with Standard or Admin permissions, so you can create conversion actions

Step 1: Install the Tracking Tag

The Tracking Tag opens the session, collects the traffic source, UTM parameters, and first-party data, and stores them against a click ID, including the gclid Google appends to every ad click.

  1. Create a Property in AnyTrack and set your shop’s name and root domain.
  2. Copy the Tracking Tag.
  3. In the Shopify admin, edit your theme code and paste the Tag in the head section of the Theme Liquid file, then save. One paste, and you won’t touch the theme again.

Confirm the Tag in 30 seconds

Install the AnyTrack Pixel Helper Chrome extension to confirm the Tag runs on your store.

Step 2: Connect Shopify

The Shopify integration collects cart, checkout, and order events server-side, straight from Shopify’s servers. That’s why checkout events are tracked reliably even though the Tag doesn’t run on Shopify’s hosted checkout pages.

  1. In the Integration Catalog, install the Shopify integration and copy the webhook URL it generates.
  2. In your Shopify admin, go to Settings → Notifications → Webhooks and create the five webhook notifications listed on the integration page, pasting the AnyTrack webhook URL into each. Set the API version to the latest stable release, not Shopify’s default unstable.

You now track AddToCart, InitiateCheckout, AddPaymentInfo, and Purchase server-side, each carrying product details, order values, and the customer data that Enhanced Conversions will run on.

Step 3: Create Conversion Actions in Google Ads

Google only accepts conversions into actions you’ve defined, so build the containers first. In Google Ads, go to Tools & Settings → Measurement → Conversions and create a conversion action for each event you’ll send, each with type Website and Manual Setup:

  1. A Purchase action. Set it as your primary action, the one bidding optimizes on.
  2. Optional actions for AddToCart and InitiateCheckout. Keep them secondary, for observation and for the optimization ladder below.

While you’re in the Purchase action’s settings, turn on Enhanced Conversions and select Global Site Tag or Google Tag Manager, per the Enhanced Conversions guide. Enhanced Conversions typically recover 15 to 25% of the conversions that cookie restrictions and browser privacy modes lose, and AnyTrack does the work automatically: it hashes, normalizes, and sends the customer data from every Shopify order, no code involved.

Step 4: Connect Google Ads and Map Your Events

Open Tracking Pixels in your AnyTrack dashboard, select Google Ads, enter your AW- conversion ID, and complete the standard Google login. Then:

  1. Turn on the Conversion API, so conversions travel from AnyTrack’s servers to Google’s, where ad blockers and browser privacy restrictions can’t touch them.
  2. Click Reload Conversions and map each AnyTrack event to the conversion action you created for it.
  3. Open the Ads Integration tab, copy AnyTrack’s UTM tracking template, enable Auto-Tag in your Google Ads account settings, and paste the template into the account-level tracking template field. That’s what ties every session, and every sale, to the campaign in your Campaign Report.

Only Website + Manual Setup actions appear

If a conversion action is missing from the mapping list, check how it was created: AnyTrack maps to actions of type Website with Manual Setup, and MCC-created or pageview-rule goals won’t show. Unmapped events are dropped.

Step 5: Remove Duplicate Google Tracking

Two systems reporting the same order means an inflated Conversions column and bidding on phantom revenue. The Shopify and Google Ads guide walks through the cleanup:

  1. Remove any Google Ads conversion gtag from your theme code and disable Google Ads conversion tags in Google Tag Manager.
  2. In Shopify, go to Settings → Apps and sales channels → Google and YouTube → Settings and turn off Conversion Measurement.
  3. If GA4 imports conversions into Google Ads, disable that import so orders don’t arrive twice.
  4. In Google Ads, keep only your mapped Purchase as a primary action; demote the rest to secondary.

Shopping campaigns keep running

Leave your Google Merchant Center connection and product feed untouched. AnyTrack fully supports conversion tracking for Shopping and Performance Max catalog campaigns, with no extra configuration.

Step 6: Verify Your Setup

  1. Place a test order, or wait for a real one, and confirm it lands in the Shopify integration’s Event Log in AnyTrack.
  2. In Google Ads, open the Purchase action’s Diagnostics tab. You’re looking for Recording recent conversions, and, once volume accumulates, an Enhanced Conversions match rate above 50%.
  3. Be patient with Google’s side of the ledger: last-click conversions appear within about 3 hours, other attribution models take up to 15, and a brand-new conversion action can take 3 to 5 days to start displaying data.

Step 7: Launch the Campaign Stack

The signal is fixed. Two campaigns put it to work, and both run on the events already flowing.

Performance Max: scale on real order values

Google’s automation is only as smart as the revenue data you feed it. Now it’s fed.

  • Destination: your best-selling collection or product pages, with Auto-Tag enabled and AnyTrack’s UTM tracking template in the account-level tracking template, so the Campaign Report ties every order to the campaign that earned it.
  • Budget: hold your current level through a week of learning on the new signal, then scale in steps of about 20% while the Campaign Report ROAS holds. Big jumps reset delivery learning.
  • Audience: feed the asset group’s audience signal with your buyers, built from the Purchase events AnyTrack sends, and let Performance Max prospect outward from what a real customer looks like.
  • Event tracking: optimizes on the server-side Purchase with its order value; generates the ViewContent, AddToCart, and InitiateCheckout events that fill the retargeting pool below.
  • Conversion objective: your mapped Purchase action under Maximize Conversion Value, with a tROAS target once you have a few weeks of stable purchase volume. While purchase volume is still too thin for value bidding to learn, run a campaign-level custom goal on your mapped InitiateCheckout action, then hand the campaign back to the Purchase action as sales accumulate.

Retargeting: close the abandoned carts

The cheapest revenue in your account: shoppers who already chose the product.

  • Destination: the product page or cart, same account-level tracking template.
  • Budget: 10 to 15% of your Performance Max spend to start. The audience size is the real ceiling, so raise budget only as the pool grows.
  • Audience: a Custom Audience of AddToCart without Purchase, 7-day window, running on Display and YouTube, with buyers excluded. Both segments build from the events AnyTrack sends.
  • Event tracking: fed by the AddToCart events arriving server-side from Shopify; generates the Purchase events that pull each buyer out of this audience automatically.
  • Conversion objective: the same mapped Purchase action, so every recovered cart reports next to the campaign that recovered it.

The Optimization Loop

The next order that comes in works for you three times. Shopify’s webhook hands it to AnyTrack, AnyTrack matches it to its gclid and sends it to Google with the order total and hashed customer data attached, and Google does the rest: the buyer leaves your abandoned-cart audience, joins the purchaser signal Performance Max studies, and adds one more example of what a paying customer is worth. Google folds each conversion into bidding on its own schedule, about 3 hours for last-click and up to 15 for other models, so the improvement is continuous rather than instant. You shipped that machine in Steps 1 through 6; it doesn’t need you anymore.

What needs you is a weekly pass:

  1. Measure. Read ROAS per campaign in the Campaign Report, where ad spend sits next to the Shopify revenue AnyTrack attributed. Then check the Enhanced Conversions match rate in the Purchase action’s Diagnostics tab; above 70% means the checkout data is doing its job.
  2. Improve. Move budget toward the campaigns whose Campaign Report ROAS holds up, not the ones that only look good in Google’s own column. Climb the ladder: any campaign still optimizing on InitiateCheckout graduates to the Purchase action once its sales volume matures, and Purchase campaigns graduate to tighter tROAS targets.
  3. Expand. When the abandoner pool outgrows one campaign, split AddPaymentInfo without Purchase into its own tier: those shoppers stopped at the last field of checkout, and they’re worth a stronger bid. Then point the surplus budget at a second Performance Max asset group seeded with the same buyer signal.

Google gets sharper between your check-ins; you get sharper at them. Both run on a purchase count that finally matches your store admin.

Wrapping Up

Here’s what you shipped:

  • Every Shopify checkout event tracked server-side, immune to iOS and ad blockers, with order values normalized.
  • Enhanced Conversions running on autopilot: hashed customer data on every sale, no code, no manual hashing.
  • A Performance Max and retargeting stack bidding on real revenue, with duplicate Google tracking cleaned out.
  • One Campaign Report where ad spend and Shopify revenue finally agree.

Sending conversions through the Conversion API requires a paid plan (Starter or above); the Free plan tracks events in your dashboard. Running Meta alongside Google? The same events power the Meta Conversions API playbook, no extra setup on the Shopify side.

Ready to Feed Your Ad Platforms Better Data?

One Tracking Tag. Every conversion signal, sent server-side to every platform you run. Set up this playbook in under an hour.

14-day free trial · No credit card required