How to Set Up Conversion Tracking via Google Tag Manager: Step-by-Step for Marketers
This guide walks marketers and agency owners through the complete step-by-step process to set up conversion tracking via Google Tag Manager — from creating a Google Ads conversion action to publishing and monitoring your GTM container. Proper conversion tracking is essential for Smart Bidding optimization and knowing exactly which keywords and ads are driving real business results.
TL;DR: To set up Google Ads conversion tracking via Google Tag Manager, you need to: (1) create a conversion action in Google Ads, (2) install the GTM container on your site, (3) create a Google Ads Conversion Tracking tag in GTM, (4) configure a trigger, (5) test everything in Preview mode, and (6) publish and monitor. The whole process takes about 30–60 minutes if you're doing it for the first time, significantly less once you've run through it a few times.
If you're running Google Ads without proper conversion tracking, you're essentially guessing. You don't know which keywords are making you money, which ads are draining your budget, and your Smart Bidding strategies have no signal to optimize toward. That's not a small problem. It's the difference between a campaign that scales and one that slowly bleeds spend.
Google Tag Manager is the cleanest, most flexible way to deploy conversion tracking. You don't have to touch site code every time a client changes their form or adds a new landing page. Everything lives in GTM, and future changes are just a few clicks. For agency owners managing multiple accounts, this setup is basically non-negotiable.
This guide walks through the exact step-by-step process to set up conversion tracking via Google Tag Manager. It's written for marketers, freelancers, and agency owners who need it done correctly the first time, without wading through vague documentation or outdated tutorials. Let's get into it.
Step 1: Create a Conversion Action in Google Ads
Before you touch GTM, you need to set up the conversion action inside Google Ads. This is where you define what a "conversion" actually means for this campaign: a form submission, a purchase, a phone call, whatever the goal is.
Navigate to your Google Ads account and go to Tools and Settings > Measurement > Conversions. Click the blue + button to create a new conversion action.
You'll be asked to choose a conversion source. For website conversions tracked through GTM, select Website. You'll then configure the following settings:
Conversion name: Be specific. "Lead Form Submission" or "Purchase Confirmation" is far more useful than "Conversion 1" when you're reviewing reports three months later.
Value: If every conversion is worth the same amount (say, a fixed-fee service lead), set a static value. If you're tracking e-commerce purchases with variable order values, select "Use different values for each conversion" and you'll handle the dynamic value in GTM later. Skipping this field entirely is one of the most common mistakes I see in account audits. Without conversion values, Smart Bidding has no way to differentiate a $20 sale from a $2,000 sale.
Count: Choose One for lead generation (you don't need to count the same person submitting the same form three times). Choose Every for e-commerce purchases, where each transaction is a distinct conversion event.
Click-through conversion window: The default is 30 days, meaning if someone clicks your ad and converts within 30 days, it counts. For most lead gen campaigns, this is fine. For longer sales cycles, you might extend it.
Attribution model: Data-driven attribution is the current default in Google Ads and is the recommended option for most advertisers. It uses machine learning to assign credit across touchpoints based on actual conversion path data. The catch: it requires sufficient conversion volume to work properly. Last-click is still available if you prefer a simpler model, but Google has been moving away from older rule-based models. For new setups, start with data-driven unless you have a specific reason not to.
After saving, Google Ads generates two critical pieces of information: your Conversion ID and your Conversion Label. The Conversion ID is shared across your entire Google Ads account. The Conversion Label is unique to this specific conversion action. Copy both and keep them somewhere accessible. You'll need them in Step 3.
At this point, your conversion action will show a status of Unverified. That's expected. It means the tag hasn't fired yet. It will update to Recording once a real conversion event is detected, typically within 24 to 48 hours after the tag fires for the first time.
Step 2: Install Google Tag Manager on Your Website
If GTM is already installed on the site, skip this step entirely. Installing it twice creates duplicate tag firing and messy data. Use GTM's Preview mode (covered in Step 5) to confirm whether it's already there before proceeding.
If you're starting fresh, go to tagmanager.google.com and create a new account. During setup, you'll also create a Container, which is the GTM workspace for a specific website. For agency owners, the best practice is one container per client domain. This keeps tag management clean and makes it easy to grant client-specific access without exposing other accounts.
Once the container is created, GTM provides two code snippets:
Snippet 1 (Head): This goes as high as possible inside the <head> tag of every page on the site.
Snippet 2 (Body): This is a <noscript> fallback that goes immediately after the opening <body> tag. Both snippets are required per Google's documentation. A very common mistake is installing only the head snippet and skipping the body tag. The site won't break, but you'll miss some tracking scenarios.
How you install these depends on the platform:
WordPress: Use a plugin like Insert Headers and Footers or the official Site Kit by Google plugin. Paste Snippet 1 in the header section and Snippet 2 in the body/footer section as directed.
Shopify: Paste Snippet 1 in the <head> section of your theme.liquid file and Snippet 2 just after the opening <body> tag.
Custom HTML sites: Edit the template file directly. If you're working with a developer, send them both snippets with clear placement instructions.
For agency owners managing multiple clients: once the container is live, go to Admin > User Management in GTM to add team members or grant client access. You can assign roles at the account or container level.
To verify installation, click Preview in GTM. This opens a debug window connected to your site. If the GTM debug panel appears at the bottom of your browser when you visit the site, the container is installed and firing correctly. You can also use the Tag Assistant browser extension from Google as a secondary check.
Step 3: Create the Google Ads Conversion Tracking Tag in GTM
Now you're building the actual tag that sends conversion data to Google Ads. In GTM, go to Tags > New > Tag Configuration and select Google Ads Conversion Tracking from the built-in tag types.
You'll see fields for:
Conversion ID: Paste the Conversion ID from Step 1. This is the account-level ID. If you're managing multiple Google Ads accounts, double-check you're using the right one. Mixing up Conversion IDs across accounts is a surprisingly common error in agency environments, and it means your conversion data ends up in the wrong account.
Conversion Label: Paste the Conversion Label from Step 1. This is the action-specific identifier.
Conversion Value: For fixed-value conversions, enter the number directly (e.g., 50 for a $50 lead value). For dynamic e-commerce values, you'll reference a GTM Data Layer Variable instead of a static number. More on that below.
Currency Code: Set this to match your Google Ads account currency (e.g., USD, GBP, AUD). Mismatches here can cause reporting inconsistencies.
If you're tracking e-commerce with dynamic order values, the setup requires a dataLayer.push on the order confirmation page. This is what it typically looks like in code:
The developer pushes an object to the dataLayer that includes the transaction value (and optionally, transaction ID, currency, etc.). On the GTM side, you create a Data Layer Variable that reads the value from that object, then reference that variable in the Conversion Value field of your tag. If you're not the developer, this is the part where you hand off clear requirements to whoever manages the site code.
For lead gen campaigns without dynamic values, the static number approach is perfectly fine.
One practical tip that saves a lot of headaches in agency work: name your tags with a consistent convention. Something like GAds - [Client Name] - Lead Form Conversion or GAds - [Client] - Purchase. When you're managing 15 containers and something breaks, clear naming is the difference between a 2-minute fix and a 30-minute investigation.
At this stage, don't save the tag yet. You still need to assign a trigger, which tells GTM when to fire it.
Step 4: Configure the Right Trigger
This is where most setup errors happen. A trigger tells GTM when to fire your conversion tag. Get it wrong, and you'll either miss conversions entirely or inflate your numbers with phantom events.
The three most common trigger types for conversion tracking are:
Thank You page URL trigger (most reliable): If your site redirects to a confirmation page after a form submission (e.g., /thank-you or /order-confirmation), use a Page View trigger scoped to that URL. In GTM, create a new trigger, select Page View, choose "Some Page Views," and set the condition to Page URL contains /thank-you (or whatever your confirmation URL path is).
This is the easiest trigger to set up and the easiest to verify. When possible, use a dedicated confirmation page. It removes ambiguity and makes testing straightforward.
Form submission trigger: If there's no redirect to a thank-you page (common with AJAX forms that show a success message inline), you'll use a Form Submission trigger. GTM listens for the form submit event. The important thing to understand here is that GTM's built-in form trigger listens for the HTML form submit event, not a visual success message. If the form uses a custom JavaScript submission handler, you may need a developer to push a custom event to the dataLayer instead.
Button click trigger: For click-based conversions like a phone number click or a CTA button, use a Click - All Elements or Click - Just Links trigger. You'll filter by a specific CSS class, element ID, or click text to ensure the tag only fires on the right element.
To find the right CSS selector, enter GTM Preview mode, click the element you want to track, and look at the Click variables in the debug panel. GTM will show you the Click Classes, Click ID, and Click Text for whatever you clicked. Use one of those to scope your trigger precisely.
The most common trigger mistake: setting the trigger to fire on All Pages. This causes your conversion tag to fire on every single pageview, which completely destroys your conversion data. Always scope triggers to the specific page, event, or element that represents an actual conversion.
Once your trigger is configured, attach it to the tag you created in Step 3 and save.
Step 5: Test Everything Before You Publish
Never publish a GTM container without testing first. I've audited accounts where the conversion tag was firing on every page for months because someone skipped this step. That kind of data corruption affects bidding, reporting, and budget decisions across the entire account.
Click Preview in GTM. This opens your site in a new tab with the GTM debug panel attached at the bottom. Navigate to the page or perform the action that should trigger your conversion tag.
In the debug panel, look at the Tags Fired section. Your Google Ads Conversion Tracking tag should appear there. If it appears under Tags Not Fired, something is wrong with the trigger configuration.
Common things to check when a tag isn't firing:
URL mismatch: The trigger condition says "/thank-you" but the actual URL is "/thank-you/" (with a trailing slash) or "/thankyou" (no hyphen). These are different strings. Check the exact URL in your browser's address bar.
Typo in CSS selector: If you're using a click trigger with a class name, confirm the class name matches exactly, including capitalization.
Form trigger not activating: If you're using a Form Submission trigger, make sure GTM's form tracking is enabled on that page. Some forms built with third-party plugins don't emit a standard HTML submit event.
After confirming the tag fires correctly in Preview mode, check it fires exactly once on the intended action and not on any other pages or events. Then use the Tag Assistant extension as a secondary verification if you want extra confidence.
In Google Ads, after a real conversion fires (not just a Preview mode test), the conversion action status will update from Unverified to Recording within 24 to 48 hours. You can also use the Check conversion tracking tool within the conversion action settings in Google Ads to diagnose issues.
For agency setups: always run this test before touching a client's live container. Discovering a broken tag after publishing is a much harder conversation than catching it in Preview mode first.
Step 6: Publish and Monitor
Once testing confirms everything is working, click Submit in GTM to publish the container. GTM will prompt you to add a version name and description. Don't skip this. Write something like: Added Google Ads lead form conversion tag - July 2026.
This version history is invaluable when something breaks after a site update and you need to identify what changed and when. In agency environments, it also creates an audit trail that clients occasionally ask for.
After publishing, monitor the conversion action in Google Ads > Conversions over the next 24 to 48 hours. Here's what you're looking for:
Conversion count increasing: If the form is getting submissions, conversions should start appearing in your reports.
Status showing 'Recording': This confirms the tag has fired at least once and Google Ads is receiving the data.
No suspicious spike in numbers: If you suddenly see hundreds of conversions on a campaign that was generating a handful per week, something is wrong. Go back and check whether the trigger is scoped correctly.
Once tracking is verified and data is flowing, you're in a position to enable Smart Bidding strategies like Target CPA or Target ROAS. These strategies depend entirely on conversion data to function properly. Without it, Google's algorithm is essentially making random decisions about who to show your ads to and at what price.
Set a recurring reminder to audit your conversion tags monthly, especially after site updates. CMS updates, theme changes, and new landing pages can break existing triggers without any warning. A monthly check takes about 10 minutes and prevents weeks of bad data from accumulating.
Proper conversion tracking is also the foundation of reducing wasted spend. Once you know which keywords are converting, you can make informed decisions about negatives, bid adjustments, and budget allocation. If you want to go deeper on that, the guide on what's the best way to reduce wasted spend in Google Ads covers the next layer of optimization after tracking is in place.
Frequently Asked Questions
Do I need Google Tag Manager to set up conversion tracking, or can I use the global site tag directly?
Both methods work. The global site tag (also called gtag.js) can be added directly to your site's HTML. GTM is generally preferred because it doesn't require touching site code for future changes, supports more complex trigger logic, and makes it easier to manage multiple tags across a site. For agencies especially, GTM is the more scalable approach.
What's the difference between Google Ads conversion tracking and Google Analytics goals imported into Google Ads?
Native Google Ads conversion tracking is generally more accurate for paid click attribution because it uses click-based data directly from the Google Ads system. Importing goals from Google Analytics can introduce discrepancies due to GA's session-based logic, sampling in larger accounts, and differences in how the two platforms attribute conversions. For campaigns where conversion data drives bidding decisions, native tracking is the more reliable choice.
Why is my conversion action showing 'Unverified' even after publishing the GTM container?
'Unverified' simply means no conversion has fired yet since the action was created. Publishing the container doesn't trigger a conversion. The status updates to 'Recording' after a real user completes the conversion action and the tag fires. If you've had real conversions but the status hasn't changed after 48 hours, check that the tag is actually firing using GTM Preview mode and that the Conversion ID and Label are correct.
Can I track multiple conversion actions with GTM?
Yes. Create a separate Google Ads Conversion Tracking tag for each conversion action, each with its own Conversion Label and its own trigger. For example: one tag for form submissions, one for phone number clicks, one for purchase confirmations. Each fires independently based on its trigger conditions.
How do I set up dynamic conversion values for e-commerce?
This requires two things working together. On the site side, a developer needs to push a dataLayer event on the order confirmation page that includes the transaction value. On the GTM side, you create a Data Layer Variable that reads that value, then reference that variable in the Conversion Value field of your tag. This is a developer task for the site-side implementation; the GTM configuration is straightforward once the dataLayer push is in place.
What happens if GTM fires the conversion tag twice on the same page?
Duplicate conversions get recorded in Google Ads. If your tag fires twice per visit to the confirmation page, every conversion will be counted twice, which inflates your numbers and misleads Smart Bidding. This is exactly why trigger scoping and testing in Preview mode matter. Confirm the tag fires exactly once on the intended event before publishing.
Quick-Reference Checklist Before You Go Live
Use this before publishing any new conversion tracking setup:
✅ Conversion action created in Google Ads with a clear name, conversion value, count setting, and attribution model. Conversion ID and Conversion Label copied.
✅ GTM container installed on the site with both the head snippet and the body noscript tag in place. Installation verified using GTM Preview mode.
✅ Google Ads Conversion Tracking tag created in GTM with the correct Conversion ID and Conversion Label. Currency code set. Conversion value configured (static or dynamic).
✅ Trigger configured and scoped correctly. Not firing on all pages. Scoped to the specific thank-you URL, form submission event, or click element.
✅ Tag verified in GTM Preview mode. Tag appears under "Tags Fired" on the correct event. Fires exactly once. No unexpected firing on other pages.
✅ Container published with a descriptive version name that includes the change description and date.
✅ Conversion status monitored in Google Ads within 48 hours of the first real conversion. Status shows 'Recording' and conversion counts match expected activity.
Once your conversion tracking is solid and data is flowing cleanly, the next step is making sure the keywords driving those conversions are actually the right ones. That's where Start your free 7-day trial of Keywordme comes in. It lets you quickly identify which search terms are converting and which are wasting budget, right inside your Google Ads interface. No spreadsheets, no tab-switching, just fast and intuitive optimization directly in the Search Terms Report. After that, $12/month keeps the whole workflow running smoothly.