Guide

How to track leads in Google Tag Manager

If you run lead-gen, your most important conversion is a form submit. Here's how to track it in GTM and - the part most people miss - how to make sure the lead actually reaches every ad platform.

Home / Guides / Track leads in GTM

For a lead-gen business, the "purchase" is a form submit, a phone call or an email - and it's tracked far more sloppily than e-commerce checkouts. The pattern is almost always the same: GA4 sees some leads, Google Ads sees fewer, Meta sees none, and nobody notices because the form still says "thank you". This guide covers how to track leads in Google Tag Manager end to end, and - the part most setups skip - how to verify the lead actually reached every platform.

The goal: one real lead should produce one matching conversion in GA4, Google Ads and Meta, each carrying enough data to be useful. Anything less and at least one of your campaigns is optimising blind.

1. Detect the form submit reliably

This is where most lead tracking fails. GTM's built-in Form Submission trigger only works for classic HTML forms that fire a native submit event. Modern forms usually don't:

The reliable approach: push a custom event to the dataLayer on success, and trigger GTM on that. Ask your developer (or the form tool's callback) to add:

window.dataLayer = window.dataLayer || [];
dataLayer.push({ 'event': 'lead_submit', 'form_name': 'contact' });

Then in GTM create a Custom Event trigger matching lead_submit. This fires only on genuine success, not on validation errors or attempts.

2. Fire the lead event to every platform

One trigger, three tags - one per active platform. Send each with meaningful parameters:

The classic gap: GA4 gets the lead but Meta doesn't - so your Meta lead campaigns optimise on nothing. A lead must reach every active platform, not just the one you remembered to set up.

3. Don't forget click-to-call and email

On many lead-gen sites half the enquiries never touch a form. Phone (tel:) and email (mailto:) clicks, and WhatsApp links, are real leads. Add GTM Click - Just Links triggers matching tel: and mailto:, and fire the same lead conversions. Otherwise you're blind to a huge share of your pipeline and under-crediting the campaigns that drive calls.

4. Verify it actually fires - on every platform

Setting it up is not the same as it working. Do a real end-to-end test:

Use GTM Preview

Submit the form and confirm lead_submit appears and all three tags fire once (not zero, not twice).

Confirm on the wire

In DevTools → Network, check the GA4 (/g/collect), Meta (/tr/) and Google Ads (/pagead/conversion) requests each go out with the right parameters.

Check the platform UIs

Look for the lead in GA4 DebugView, Meta Events Manager (Test Events) and Google Ads conversion diagnostics. If it's not in all three, one path is broken.

duckmetric automates this: it detects the form, checks whether a submit triggers an event, and shows which platforms actually receive the lead and with what data - so you catch the missing Meta Lead before you spend on it.

Check your lead tracking free

FAQ

Why isn't my form submit tracked in GTM?

Most likely the form is JavaScript or iframe-based (HubSpot, an SPA, an AJAX form) and never fires the native submit event GTM's Form Submission trigger listens for. Push a custom lead_submit dataLayer event on success and trigger on that instead.

How do I track leads in GA4, Google Ads and Meta at once?

Use one trigger (the custom success event) and three tags - a GA4 generate_lead, a Google Ads conversion, and a Meta Lead event - so a single submit fires all three. Then verify each independently.

Should I track phone and email clicks as leads?

Yes, for most lead-gen sites they're a large share of enquiries. Add GTM link-click triggers for tel: and mailto: and fire the same conversions, or you'll under-count leads and mis-credit campaigns.

How do I know the lead event actually fired?

Test end to end: GTM Preview to see the tags fire, DevTools Network to confirm the requests go out, and each platform's debug view (GA4 DebugView, Meta Test Events, Google Ads diagnostics) to confirm it arrived.

Related: how to check GTM tracking · funnel coverage · Google Ads conversion tracking

Is your lead tracking actually working?

Paste your contact page and see whether form submits fire a lead on every platform.