How to Track Form Submissions in Google Ads: A Step-by-Step Setup Guide

Learn how to track form submissions in Google Ads by setting up conversion actions, installing the Google tag, and configuring event snippets on your thank-you page. Proper form submission tracking enables Smart Bidding to optimize toward real leads, giving you clear visibility into which keywords and campaigns are actually driving conversions.

TL;DR: To track form submissions in Google Ads, you need to create a conversion action, install the Google tag on your site, add a conversion event snippet to your thank-you page (or use Google Tag Manager), and verify the setup is firing correctly. Once it's working, your campaigns can optimize toward real leads instead of just clicks.

If you're running Google Ads and not tracking form submissions, you're essentially flying blind. You might be getting clicks all day, but without conversion tracking, you have no idea which keywords, ads, or campaigns are actually generating leads.

Google's Smart Bidding also relies heavily on conversion data to optimize your bids. Without it, you're handing the algorithm a blindfold and asking it to drive. The results are predictably messy.

This guide walks you through the exact process of setting up form submission tracking in Google Ads, from creating the conversion action to verifying it fires correctly. Whether you're using a simple thank-you page redirect, Google Tag Manager, or a third-party form builder like Gravity Forms or Typeform, we've got you covered.

This is written for marketers, freelancers, and agency owners who want a reliable, accurate setup. Not a surface-level overview. Let's get into it.

Step 1: Create a Conversion Action in Google Ads

Before you touch any code, you need to tell Google Ads what you're tracking. Start by navigating to Goals > Conversions > Summary in your Google Ads account. Click the blue + button and select Website as the conversion source.

For the category, choose Submit lead form. If your goal is more of a general contact action, you can use Contact instead, but "Submit lead form" is the most accurate for standard form tracking and helps Google understand the intent behind the conversion.

Next, fill in the conversion details:

Conversion name: Be specific. "Contact Form - Homepage" is more useful than "Form Submission" when you're auditing an account six months later.

Value: Optional, but worth setting if you have an average lead value. Even a rough number helps with value-based bidding later.

Count: Set this to One for lead forms. This is one of the most common mistakes I see in accounts. If someone submits a form twice, you don't want to count that as two conversions. Setting it to "Every" inflates your numbers and trains Smart Bidding on bad data.

Conversion window: The default 30 days is fine for most lead gen campaigns. If your sales cycle is longer, extend it.

Attribution model: Data-driven is generally the best choice if you have enough conversion volume (Google requires a minimum threshold to use it). If you're just getting started or have lower volume, last click is a reasonable fallback. Avoid first click for lead forms unless you have a specific reason.

Save and continue. Google will then present you with your tag setup options, which is where the next step begins. For a broader look at setting up conversion tracking in Google Ads, including purchase and phone call actions, that guide covers the full picture.

Step 2: Choose Your Tag Installation Method

Google Ads gives you two main paths here: install the tag directly on your site (manual), or use Google Tag Manager. The right choice depends on your setup and how you expect to manage tracking going forward.

Direct install (manual): You add the global Google tag (gtag.js) to every page of your site, then add a separate event snippet to your thank-you page only. This works fine for simple setups with a small number of pages and no plans to add more tracking later.

Google Tag Manager: You install one GTM container snippet on your site, then manage all your tags and triggers inside the GTM interface. No code changes needed after the initial install. This is the method I'd recommend for anyone managing multiple clients or expecting to add tracking for other platforms down the line.

Here's the thing about GTM: the upfront setup takes a little more time, but it saves you a significant amount of back-and-forth with developers later. Once the container is on the site, you can add, edit, and test tags without touching the codebase.

One important note: if you already have a global Google tag (gtag.js) on your site from Google Analytics 4, you may not need to add another one. You can often link the existing tag to your Google Ads account. Check for this before adding new code to avoid double-tagging, which is a common source of inflated conversion data.

Third-party forms like Typeform, Gravity Forms, and Jotform may require slightly different approaches, which we'll cover in Step 5.

Step 3: Install the Google Tag on Your Website

This step is about getting the global site tag (gtag.js) onto every page of your website. Not just the thank-you page. Every page. The global tag is what allows Google to attribute conversions back to the right ad clicks.

Copy the global site tag snippet from the Google Ads conversion setup screen. It looks something like this:

<!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXX"></script>

Paste it in the <head> section of every page. If you're on WordPress, the easiest approach is a plugin like "Insert Headers and Footers" which lets you paste the snippet once and it automatically applies sitewide. You can also add it via your theme's functions.php file if you're comfortable with that.

For other platforms:

Shopify: Go to Online Store > Themes > Edit Code > theme.liquid and paste the tag inside the <head> section.

Squarespace: Go to Settings > Advanced > Code Injection and paste it in the Header section.

Wix: Use the Wix Marketing Integrations panel or add custom code via Settings > Custom Code.

If you're using GTM instead: paste the GTM container snippet in two places. One version goes in the <head> section, and a second version (the noscript fallback) goes immediately after the opening <body> tag. GTM's instructions will show you both snippets clearly.

Critical warning: do not install the global gtag.js snippet manually AND also deploy it through GTM. This is double-tagging, and it will cause every conversion to be counted twice. Pick one method and stick with it.

Once you've installed the tag, verify it's loading correctly using Google Tag Assistant (available as a Chrome extension). Visit a few pages on your site and confirm the tag is detected and firing without errors. Don't skip this step — it takes two minutes and saves hours of debugging later. If you want to avoid other common pitfalls at this stage, this guide on avoiding common Google Ads setup mistakes is worth a read.

Step 4: Add the Conversion Event Snippet to Your Thank-You Page

The event snippet is the second piece of code, and it only fires on one specific page: your thank-you or confirmation page. This is what actually tells Google Ads "a form submission happened."

Copy the event snippet from your Google Ads conversion action setup screen. It's a short piece of JavaScript that references your specific conversion ID and label. Paste it below the global site tag on your thank-you page only. This page might live at a URL like /thank-you, /confirmation, or /success.

Now, here's the most common problem I run into when auditing accounts: there is no thank-you page. The form submits, a success message appears on the same page, and nothing redirects anywhere. In that case, the event snippet approach won't work because there's no new page loading to trigger it.

You have two options:

1. Create a dedicated thank-you page and configure your form to redirect there on successful submission. This is the cleanest, most reliable approach. It's also useful for other things like running remarketing audiences on people who converted.

2. Use GTM with a Form Submission trigger. In GTM, create a new trigger with the trigger type set to Form Submission. Then create a Google Ads Conversion Tracking tag and set it to fire on that trigger. When configuring the form submission trigger, enable Wait for Tags and Check Validation. "Wait for Tags" gives your conversion tag time to fire before the form submits. "Check Validation" makes sure the trigger only fires on successful submissions, not failed ones.

One important technical note: if your form uses AJAX (meaning it submits without reloading the page), a thank-you page redirect is generally more reliable than GTM form triggers. AJAX forms can be tricky to capture with standard GTM form triggers because there's no DOM event that GTM can easily intercept. In those cases, you'd need a Custom Event trigger, which requires a developer to push a dataLayer event on successful form submission. If you also want to track inbound calls alongside form leads, see how to track phone calls in Google Ads for a complementary setup.

When in doubt, the thank-you page redirect is the simpler, more bulletproof solution.

Step 5: Handle Third-Party and No-Code Form Builders

Not everyone is working with a custom-built form. If you're using a third-party form builder, the approach varies. Here's how to handle the most common ones:

Gravity Forms (WordPress): Gravity Forms has a dedicated Google Ads Conversion add-on that simplifies this significantly. Alternatively, you can use GTM with a Custom HTML tag and a trigger based on the Gravity Forms form ID. Both approaches work well.

Contact Form 7: CF7 fires a JavaScript event called wpcf7mailsent when a form is successfully submitted. In GTM, create a Custom Event trigger that listens for this event name. Then attach your Google Ads Conversion Tracking tag to that trigger. This is a well-documented approach in the GTM community and works reliably.

Typeform / Jotform: Both platforms support redirect-on-completion to a custom URL. Set your thank-you page URL as the redirect destination in the form settings, then place your event snippet on that page. Clean and straightforward.

HubSpot forms: HubSpot fires a JavaScript event called hsFormCallback on form submission. Create a Custom Event trigger in GTM listening for this event, then attach your conversion tag to it. HubSpot's developer documentation covers this in detail if you need the exact event parameters.

Webflow: Webflow's native forms support a success redirect URL. Set it to your thank-you page and place the event snippet there. If you need more control, GTM with a Custom Event trigger also works with Webflow's form submission events.

The underlying principle across all of these: if the form builder fires a JavaScript event on submit, GTM can listen for it using a Custom Event trigger. If it redirects to a thank-you page, use the event snippet directly on that page.

Always test in a staging environment before pushing changes to production. Submitting a live form to test tracking is fine for simple setups, but if you're working on a client's site, you don't want accidental test submissions hitting their CRM. If you're handling tracking across multiple clients, this guide on managing multiple Google Ads accounts efficiently covers how to keep setups consistent at scale.

Step 6: Verify Your Conversion Tracking Is Working

Setting up the tags is only half the job. Verifying they actually fire correctly is where a lot of people cut corners, and it always comes back to bite them.

Start with Google Tag Assistant. The Tag Assistant Companion (the newer version) lets you record a session on your site and see exactly which tags fire on which pages. Submit a test form and check whether your Google Ads conversion tag fires on the thank-you page. If it fires on every page load instead of just the thank-you page, your event snippet is in the wrong place.

After submitting a test form, go to Goals > Conversions in Google Ads and check the status of your conversion action. It should change from Unverified to Recording conversions within a few hours, though Google says to allow up to 24 hours for data to populate.

You can also check the Conversion Status column in your campaigns view to confirm data is flowing at the campaign level.

Watch for duplicate conversions. If your conversion counts look suspiciously high relative to your form submissions, you may have double-tagged the site or set the count to "Every." Go back and check both.

If you're using GTM, use Preview mode before publishing any container changes. GTM's Preview mode lets you test your tags in a sandboxed environment, see exactly which triggers fire and when, and confirm everything works before it goes live. This is the safest way to validate your setup without risking bad data in a live account.

A common error worth flagging: the conversion fires on page load instead of on form submission. This happens when the event snippet is placed on a page that loads independently of any form action. If your thank-you page is accessible by direct URL navigation (not just as a redirect after form submit), you'll get false conversions from anyone who visits that page directly. Consider adding URL parameter checks or restricting access to the thank-you page to redirect traffic only. Understanding how to know if your Google Ads are performing well becomes much more meaningful once your conversion data is clean and reliable.

Step 7: Connect Conversion Data to Your Campaign Optimization

Once your tracking is verified and conversions are recording, it's time to actually use that data. This is where the setup pays off.

First, make sure your conversion action is set as a Primary conversion, not Secondary. Primary conversions influence Smart Bidding. Secondary conversions are tracked but don't affect bidding at all. If you accidentally set your main lead form as a Secondary conversion, your automated bidding strategies are ignoring it entirely.

Secondary conversions are useful for micro-conversions like scroll depth, button clicks, or video views. These are good for analysis but shouldn't be driving your bid strategy.

On Smart Bidding: don't rush to switch to Target CPA or Maximize Conversions the moment you have tracking in place. Google's own guidance, and the general consensus in the PPC practitioner community, is that you want at least 30 to 50 conversions recorded in a 30-day window before automated bidding can optimize effectively. Before you hit that threshold, manual CPC or Enhanced CPC is more reliable. Switching too early often results in erratic bidding behavior while the algorithm tries to find signal in too little data. For a deeper look at this, see how many conversions Google Ads needs to optimize effectively.

Once you have solid conversion data flowing, dig into the Search Terms Report. This is where you connect keyword performance directly to lead generation. You'll often find that a handful of search terms are driving the majority of your form submissions, while a long tail of irrelevant queries is eating budget without converting. That's your optimization opportunity. Learning how to review the Google Ads Search Terms Report faster will help you act on this data regularly without it becoming a time sink.

Segment your conversion data by device, time of day, and campaign to find patterns. Many accounts show clear differences in lead quality or conversion rate by device or hour, and that's data you can act on with bid adjustments.

If you're managing multiple clients or campaigns, consistent conversion tracking setup across accounts makes performance comparison meaningful. Apples-to-apples reporting only works when everyone's tracking the same things the same way.

Your Setup Checklist and Next Steps

Before you call this done, run through this quick checklist:

✅ Conversion action created in Google Ads with category set to Submit lead form

✅ Count set to "One" (not "Every")

✅ Global site tag installed on all pages of your site

✅ Event snippet placed on thank-you page only, OR GTM trigger configured correctly

✅ Third-party form builder handled with the appropriate method

✅ No double-tagging (gtag.js not installed both manually and via GTM)

✅ Tag verified with Tag Assistant showing correct firing behavior

✅ Conversion status shows "Recording conversions" in Google Ads

✅ Conversion action set as Primary (not Secondary)

Tracking form submissions properly is the foundation of any lead gen campaign. Without it, you're optimizing for clicks instead of customers, and Smart Bidding is working with noise instead of signal.

Once your conversion data is flowing, the next layer of optimization is making sure the right search terms are driving those conversions. In most accounts I audit, there's a meaningful amount of budget going to irrelevant queries that never convert. Cleaning that up regularly, adding negatives, and refining match types is how you compound the gains from good conversion tracking.

If you want to do that work directly inside Google Ads without jumping between spreadsheets or third-party dashboards, Start your free 7-day trial of Keywordme. It lets you remove junk search terms, build high-intent keyword lists, and apply match types instantly, right inside the Google Ads interface. After the trial it's just $12/month per user, and it's the kind of tool that pays for itself the first time you catch a wasted spend problem before it compounds.

Optimize Your Google Ads Campaigns 10x Faster

Keywordme helps Google Ads advertisers clean up search terms and add negative keywords faster, with less effort, and less wasted spend. Manual control today. AI-powered search term scanning coming soon to make it even faster. Start your 7-day free trial. No credit card required.

Try it Free Today