Skip to content
Home Guides Analytics
Analytics Intermediate

Google Ads conversion tracking setup (2026)

How orders and enquiries arrive correctly in your Google Ads account: create the conversion action, pick one of four ways to install the tag, pass value and transaction ID, respect consent and verify the result.

Fabian Weiss, founder of FW Delta Fabian Weiss
12 min 2 to 4 hours
The Problem

Google Ads counts orders twice, not at all or without a value and the bidding strategy optimises towards the wrong numbers

The Fix

One primary conversion action per goal, one deliberately chosen install path, a unique transaction ID and a test with a real order

Google AdsGoogle Tag ManagerShopifyGoogle Analytics 4

A conversion action is a counter, not a tag

Before any code goes on the page, you need a conversion action in your Google Ads account. That is the counter Google Ads assigns orders or enquiries to. The tag on your site is only the reporter that triggers it. Mix them up and you end up with three reporters for one counter or three counters for one reporter.

Google distinguishes primary and secondary conversion actions. Primary actions appear in the “Conversions” column and drive bidding. Secondary actions run for observation only and appear in “All conversions”. The one exception: inside a custom goal, secondary actions can be used for bidding too.

The rule of thumb for a shop: the order is primary, everything else is secondary. Add to cart, checkout started and newsletter sign-ups are useful signals, but not goals your campaign should bid towards. For a lead business the same applies with the submitted enquiry as the primary action.

When creating the action you also decide how it is counted: “Every” counts every conversion after an ad click and suits sales. “One” counts only one conversion per click and suits enquiries, because the same person sending three forms is not three customers.

SettingOrder in a shopEnquiry via form
StatusPrimaryPrimary
CountEveryOne
ValueTaken from the orderFixed value or none
Transaction IDOrder numberForm or lead ID

Four ways the order reaches your account

Google describes two approaches in Set up your web conversions. Setup with a URL only counts a page load. Setup with code is what you need as soon as a value, a transaction ID or a click has to travel with it. In practice you have four paths that all end at the same conversion action.

PathFitsBringsLimit
Google tag directly (gtag)Own site, developer accessFull control over value and IDEvery change needs a deployment
Google Tag ManagerSites with an existing containerChanges without deployment, previewNeeds a clean data layer
Shopify Google & YouTube appShopify without custom codeOrder, value and ID automaticallyOnly the events the app knows
Import a GA4 key eventClean GA4 already in placeOne event model for both systemsAttribution follows GA4 logic, not Google Ads

Pick exactly one path per conversion action. Two paths for the same order is the first of the three mistakes at the end of this guide.


Path 1: Google tag directly with gtag

The Google tag (AW- plus your account ID) sits on every page. On the confirmation page you add the event snippet. Google recommends in Use the Google tag for Google Ads conversion tracking placing it after the Google tag in the head.

gtag('event', 'conversion', {
  'send_to': 'AW-123456789/AbC-D_efG-h12_34-567',
  'value': 129.90,
  'currency': 'EUR',
  'transaction_id': 'FW-2026-10482'
});

The four fields mean:

  • send_to is the account ID and the conversion label, separated by a slash. The label is unique per conversion action, the account ID per Google Ads account.
  • value is the order value as a number with a dot as decimal separator.
  • currency is the three-letter currency code.
  • transaction_id is the unique identifier of the order.

The values have to be written into the page by the shop system. A hardcoded value or an empty ID is technically valid and commercially worthless.


Path 2: Google Tag Manager

In Tag Manager you need two tags. The first is the Conversion Linker. It reads the click information from the landing page URL and stores it in first-party cookies so the order can later be attributed to the ad click. Google recommends the “All Pages” trigger for it. If your container already loads a Google tag on every page, that tag handles this.

The second is the Google Ads Conversion Tracking tag with Conversion ID and Conversion Label as required fields. Value, transaction ID and currency are optional, but for an order they belong in. One detail from the help page that many miss: if the Conversion Value field is left empty, Tag Manager sends the value as 0.

You fill the fields from data layer variables. For that the shop system writes an entry like this on the confirmation page:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: 'purchase',
  transaction_id: 'FW-2026-10482',
  value: 129.90,
  currency: 'EUR'
});

The conversion tag gets the custom event purchase as its trigger. Not the page view of the confirmation page, because then the tag may fire before the data layer is filled and report an order without a value.


Path 3: Shopify through the Google & YouTube app

On Shopify the route through custom scripts has ended. According to Order status script tags, Shopify switched off script tags on the order status page on 28 August 2025 for Plus stores and on 26 August 2026 for all other stores. A conversion snippet that used to sit under “Additional scripts” no longer runs today.

The intended path is the Google & YouTube app. After linking the Google Ads account it creates, according to Set up conversion tracking with the Google & YouTube app, conversion actions for purchase, add to cart and checkout started. The settings live in the app under “Settings”, “Customer event settings”, “Manage”. There you see the Shopify events with their destinations and can point at an existing conversion action from your account via “Add custom conversion ID/label”.

Two sentences from that help page matter most: Google advises setting the app conversions as primary and removing legacy tags. It also explicitly warns about duplicate tags when conversions exist both in the app and in the storefront or a custom pixel. After setup, check in your Google Ads account that only the purchase action is primary.

If you need your own code, for example for an additional event, use a custom pixel in Customer events under “Settings”, “Customer events”. It adds to the app, it does not replace it for the order.


Path 4: Import GA4 key events

If your GA4 already carries a clean purchase event with value and transaction ID, you can create a Google Ads conversion action from it. Prerequisites according to Create Google Ads conversions based on Google Analytics key events: the accounts are linked, auto-tagging is enabled in your Google Ads account and you have edit access on the property.

During import you choose whether only Google paid channels or paid and organic channels receive credit. If the account already contains Analytics goals, Google marks the imported action as secondary so the same event is not counted twice for bidding.

The advantage is one event model for both systems. The drawback is that attribution runs on GA4 logic. For a shop with meaningful Google Ads spend, the direct action from paths 1 to 3 is the reliable route and the GA4 import stays secondary for reconciliation.


Value, currency and transaction ID from the shop system

Three fields decide whether your conversion action is more than a click counter.

Value. Without a value, a value-based bidding strategy has nothing to optimise. Pass the order value the way you will reconcile it with your shop later and stick to one definition: with or without shipping, with or without tax. Either works, switching halfway does not.

Currency. A shop with several currencies passes the currency of the order, not the default currency of the account.

Transaction ID. Google describes in Use a transaction ID to minimize duplicate conversions that two conversions of the same action with the same ID are recognised as a duplicate. The ID must be unique per order and come from the backend. The help page explicitly warns against hardcoding static values. The best candidate is the order number, because you also have that in your accounting later.

A lead form has no order number. Then the form system assigns an ID on submit and passes it to the thank-you page. A timestamp alone is not enough if two enquiries can arrive in the same second.


The conversion tag sets cookies and transmits data, so it depends on the decision in the cookie banner. Google handles this through consent mode with four signals: ad_storage, ad_user_data, ad_personalization and analytics_storage. The first three matter for Google Ads.

The order is fixed according to Set up consent mode on websites: first a default state is set on every page before any measurement command runs. After the decision in the banner an update follows on the same page, with no page transition in between. If your banner loads asynchronously, wait_for_update gives the tags a waiting time in milliseconds. If the default state arrives too late, it does not apply at all.

In Tag Manager the Consent Initialization trigger fires before all other triggers and is meant for the banner tag. The Google Ads tag ships with a built-in consent check and adjusts its behaviour to the state of the signals.

Whether you work in basic mode or advanced mode is a separate decision. The guide Consent Mode Basic vs Advanced walks through it. For conversion tracking the same holds in both cases: someone who declines is not counted as an order with a cookie. That is not a bug in the tag, it is the point of the banner.


Next step: enhanced conversions

Once the basic measurement stands, the next build-out is enhanced conversions. The tag then sends hashed customer data such as the email address alongside the order, normalised and hashed with SHA256. Google matches it against signed-in accounts and attributes orders that would otherwise be lost.

This supplements the existing conversion action, it does not replace it. The prerequisite is a tag that already fires cleanly with value and ID, plus consent that covers this transmission. The dedicated guide Enhanced conversions setup walks through the implementation.


How to verify that it counts

A green tick in the tag interface is not proof. Work through this list.

  1. Real test order or test enquiry. Use a real order with a small amount or a test product, not a preview of the confirmation page. Only then does the ID travel from the backend into the page.
  2. Start Tag Assistant from your Google Ads account. Google describes in Tag Assistant for unverified conversion actions how you go via the status of the conversion action to “Troubleshoot”, enter the URL and trigger the conversion on the site. The result appears in the account after approximately 30 minutes.
  3. Check the network request. In Tag Assistant you see the conversion event with send_to, value, currency and ID. Check the ID against the order number in the shop. Also check that the Google tag loaded before the event, otherwise the assistant shows a warning.
  4. Read the status of the conversion action. Google describes the meaning of the statuses in Check the tracking status of your conversion action. “Unverified” means the tag has never fired. “No recent conversions” means the tag was seen but no conversion was recorded in the last seven days. “Tag inactive” means the tag is no longer seen and nothing arrived for seven days. Only “Recording conversions” confirms that orders are arriving.
  5. Reconcile count and timing. The standard “Conversions” column assigns the order to the day of the click. The column Conversions by conversion time assigns it to the day of the order. For reconciliation with your shop you need the second one, otherwise you compare different weeks.
  6. Rule out duplicates. Reload the confirmation page once. The order may appear only once. If it appears twice, the ID is missing or not unique.
  7. Test rejection. Decline in the cookie banner and order again. The conversion tag must not set cookies. In advanced mode a cookieless ping goes out, in basic mode nothing at all.
  8. Document it. Which action is primary, which path is chosen, where the ID comes from, which value definition applies. That is the page the next person reads first.

The three most common mistakes

Two primary actions for the same order. Typical after a rebuild: the old gtag action stays primary and the new app or Tag Manager action is added as primary. Every order counts twice, cost per conversion halves and the bidding strategy learns from air. Google warns about exactly this for Shopify. One action stays primary, the other becomes secondary or is removed.

Static transaction ID. A hardcoded value or an empty string in transaction_id. Then all orders are duplicates of each other and Google removes the supposed doubles. The result is a number far too low and a team that stops trusting the account. The ID comes from the backend and is unique per order.

Tag on the click instead of the confirmation page. The conversion tag hangs on the click on “Buy now” or “Submit”. Then every attempt counts, including declined payments and forms with a missing required field. An order is only an order once the shop system has created it. That is why the tag belongs on the confirmation page or on the event the shop system fires after the order.


Where this fits

Conversion tracking for Google Ads is one block of your measurement foundation. It needs the same data layer, the same ID and the same consent handling as GA4 and Meta, otherwise three systems show three different numbers for the same orders. The web tracking service builds that foundation, Shopify tracking covers the Shopify part with the Google & YouTube app and customer events.

If you are not sure whether your existing setup passes the eight points above, the tracking check is the honest starting point: it shows what arrives today, what counts twice and what is missing. After that you know whether an adjustment is enough or a rebuild is needed.

FW Delta handles the technical setup: conversion actions, tags, data layer, IDs and the consent connection. The legal assessment of your cookie banner and of transmitting customer data stays with you and your advisers. This guide is a technical walkthrough, not legal advice.

Newsletter

Research for technical decisions

New reports, benchmarks and technical analyses on SaaS economics, AI engineering and owned infrastructure.

Original research Public sources No sales mail

By subscribing you receive new analyses and updates from FW Delta by email. You can withdraw your consent at any time. Further information is available in the privacy policy.