How-to
How to Set Up Google Ads Conversion Tracking with GTM
Google Ads can only optimize toward conversions it can see. Set the tracking up cleanly in Google Tag Manager and Smart Bidding has good signal; set it up sloppily and you get double-counted leads, missing revenue, and a bidding algorithm chasing noise. Here's the reliable way to track Google Ads conversions with GTM.
The two tags you need
Google Ads conversion tracking in GTM is two pieces working together:
- The Google Ads Conversion Linker: fires on all pages, reads and stores the
gclid(the click id) in a first-party cookie so conversions can be attributed to the click that drove them. - The Google Ads Conversion Tracking tag: fires on the conversion event (a purchase, a lead) with your Conversion ID, Label, value and currency.
Don't skip the linker
Setting it up step by step
- In Google Ads, create the conversion action and copy its Conversion ID and Label.
- In GTM, add the Conversion Linker tag on All Pages.
- Add the Google Ads Conversion Tracking tag, paste the ID and Label, and fire it on the event that represents the conversion, ideally a
dataLayerevent, not a raw page view. - Pass
valueandcurrencyfrom variables so reporting and bidding use real amounts. - Add a unique
transaction_id/ order id so repeats are deduplicated.
// Fire the conversion from a real success event, with value + a dedup id
dataLayer.push({
event: "purchase",
conversion_value: 129.0,
currency: "USD",
transaction_id: "T-10492"
});Leads vs. ecommerce
Ecommerce
Fire on the confirmed purchase, send the order value, and reuse the same transaction_id you send to GA4 so the platforms line up.
Lead gen
Fire on a real form success (see form tracking) and assign each lead a sensible static or dynamic value so Smart Bidding can weight better leads higher. This is also where Enhanced Conversions and offline conversion import pay off, they feed back which leads actually became customers.
Practice this on a real container
Install a vendor conversion template, wire the Conversion Linker, and fire a conversion with value and a dedup id, on your own container, debugged in Tag Assistant.
Practice Google Ads conversions →Common mistakes
- No Conversion Linker → attribution decay and undercounting.
- Firing on page load of the thank-you page → duplicates on refresh and back-button.
- No value passed → Smart Bidding optimizes for count, not revenue.
- Different ids to Ads vs GA4 → reconciliation becomes impossible.
- Consent ignored → in the EEA/UK you need Consent Mode v2 signals for this to run compliantly.
Why Google Ads and GA4 won't match (and that's OK)
Even perfectly set up, your Google Ads and GA4 conversion counts will differ. They use different attribution windows and models (Ads is click-based, GA4 is session-based), so the same sale gets counted under different rules. Reconcile each tool against itself over time rather than expecting them to agree to the unit.
Now go practice it
Reading sticks when you do it. These hands-on lessons load your own GTM container and let you debug in Tag Assistant.
Frequently asked questions
How do I track Google Ads conversions in Google Tag Manager?
Add two tags: the Google Ads Conversion Linker on all pages (it captures and stores the gclid), and the Google Ads Conversion Tracking tag fired on the conversion event with your Conversion ID, Label, value and currency. Fire from a real success event and include a unique transaction_id so repeats are deduplicated.
What does the Conversion Linker do?
The Conversion Linker reads the gclid (Google click identifier) from the landing URL and stores it in a first-party cookie, so when a conversion happens later GTM can attribute it to the ad click that drove it. Without it, attribution degrades and conversions are undercounted.
Why don't my Google Ads and GA4 conversions match?
They use different attribution windows and models, Google Ads is click-based while GA4 is session-based, so the same conversion is counted under different rules. The counts legitimately differ; reconcile each tool against itself over time rather than expecting them to agree exactly.
Should I fire the Google Ads conversion on the thank-you page?
Prefer firing on a real dataLayer success event rather than a raw thank-you page load, which can double-count on refresh or back-button. Always pass a value and a unique transaction_id so genuine repeats are deduplicated.
Related posts
How-to
How to Set Up Google Tag Manager on Shopify (Storefront + Checkout)
Shopify GTM is two jobs, not one: the storefront installs normally, but the sandboxed checkout needs a custom pixel. The full storefront + checkout setup, GA4 mapping and testing.
Read →How-to
How to Track Form Submissions in Google Tag Manager (Without Losing Conversions)
Form submissions are leads, and the easiest tracking to get wrong. Three reliable methods, plus the redirect gotcha that silently loses conversions and how to beat it.
Read →How-to
How to Set Up GA4 Ecommerce Tracking with Google Tag Manager
GA4 ecommerce is one pattern repeated across a few events. Walk the full funnel in GTM (from the base tag to a deduplicated purchase with revenue) with copy-paste dataLayer examples.
Read →About the author

Analytics & Tag Management Consultant
Nathan Gage got his start in marketing through Google Tag Manager. Seeing how tracking customer behavior could turn raw clicks into insight you can actually act on is what pulled him into the field. Since then he has worked both full time and as a consultant with 15 marketing agencies, supporting brands that spend anywhere from a thousand dollars a month to over a million. Along the way he built a multi-touch attribution app, and he created The Happy Tagger so anyone can practice GTM, GA4 and server-side tracking on a real container instead of a production site.