If you run Google Ads for lead generation, the conversion you care about is a successful form submission. This guide builds that tracking in Google Tag Manager the current way, with Enhanced Conversions attached so Google can match more of those leads back to the ad click. It follows the setup in our video tutorial.
How the Flow Works
Ad click → landing page → form submission → dataLayer event → GTM → Google Ads conversion plus hashed email and phone.
Step 1: Create the Google Tag (Replaces the Conversion Linker)
Older guides tell you to add a Conversion Linker tag and a separate Google Ads remarketing or base tag. In current GTM the Conversion Linker is labelled legacy.
- Tags, New, choose Google tag.
- Paste your Google Ads conversion ID, for example
AW-123456789. - Trigger: All Pages.
- Name it
Google tag - Ads base.
This is your base tag. It must load on every page so the ad click is captured on the landing page.
Step 2: Push a Lead Event When the Form Succeeds
Your developer or a small custom HTML tag should push an event only after the form is confirmed submitted, including the visitor's details:
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'lead_form_submit',
user_data: {
email: 'name@example.com',
phone: '+15551234567'
}
});
Use the real values from the form fields. Send the phone in international format where you can. Do not hash anything yourself; the Google tags hash the values before sending.
Step 3: Create the Trigger
Triggers, New, type Custom Event, event name lead_form_submit (exactly as pushed), All Custom Events. Name it CE - lead_form_submit.
Step 4: Create the Data Layer Variables
You need two variables for Enhanced Conversions.
- Variables, New, Data Layer Variable, name
user_data.email. Call itDLV - user_data.email. - Duplicate it, set the name to
user_data.phone, call itDLV - user_data.phone.
Step 5: Create the Google Ads Conversion Tracking Tag
- Tags, New, Google Ads Conversion Tracking.
- Conversion ID and Conversion Label from Google Ads (Goals, Conversions, your action, Tag setup, Use Google Tag Manager).
- Leave value and currency empty for a plain lead form.
- Trigger:
CE - lead_form_submit.
Step 6: Create the User-Provided Data Tag
- Tags, New, Google Ads User-Provided Data Event.
- Enter the same conversion ID.
- Data source: create a new User-Provided Data variable. Set Email to
DLV - user_data.emailand Phone toDLV - user_data.phone. Name itUPD - lead form. - Trigger:
CE - lead_form_submit.
Make sure Enhanced Conversions is switched on in Google Ads (Goals, Conversions, Settings) and that you accepted the customer data terms.
Step 7: Test Before You Publish
- Click Preview in GTM and open your landing page.
- Submit the form with a test email and phone.
- In Tag Assistant, confirm
lead_form_submitappears once. - Open each tag: the Google tag fired on page load, the conversion tag shows Succeeded with your conversion ID and label, and the user-provided data tag shows the email and phone passed.
- In Google Ads, check the conversion action status. Recording can take a few hours.
Avoiding Duplicate Conversions
- Set the conversion action's count to One for leads.
- Make sure the lead event is pushed once per submission, not on every page load or retry.
- Remove any old Conversion Linker, hard-coded gtag snippet or plugin that also records the same conversion.
- Do not import the same goal from GA4 as a second primary conversion.
Common Problems
- Tags do not fire: the event name in the trigger must match the dataLayer push exactly, including case.
- Email or phone missing: the variable path must be
user_data.email, matching the push structure. - Conversions counted twice: a plugin or a leftover snippet is also firing the conversion.
- Fires on a failed form: push the event on the confirmed success state, not on button click.
Next Steps
Once leads track cleanly, see our guide on Enhanced Conversions in 2026 for the account-level setting and offline uploads, and our simple form tracking guide for other ways to detect a successful submission. If you want this built and audited for your account, contact me.
