How-to · Updated October 11, 2026
Fix a Tag Manager form submission trigger that doesn't fire
Updated October 11, 2026
30 minutes, plus a developer change
Preview the container and send a test form. If no form submission event appears, the form usually sends by script or sits in a frame from another site, so trigger on the form's success instead: a data layer event pushed when the lead is saved, carrying the lead's own ID. Then confirm it fires once per lead.
Before you start
- Publish permission on the Tag Manager container, to preview and publish the fix.
- A test address and phone number you control, so you can find and delete the test leads later.
- A developer, or a form plugin that pushes its own success event, if the form turns out to send by script.
See what the form sends in Preview
Preview shows every event Tag Manager hears on the page, so it tells you whether the trigger is wrong or the event never happens.
- In Tag Manager, click Preview, enter the address of the page with the form, and click Connect. Go back to the Tag Assistant tab and click Continue.
- On the site, fill in the form with your test details and send it.
- In Tag Assistant, read the list of events on the left for a form submission event at the moment you sent it. Click your tag to see whether it fired and which trigger condition did not match.
- If a form event appears but the tag did not fire, open the trigger. Under This trigger fires on, a Some Forms filter on Form ID or Form Classes must match the values Tag Assistant shows for that event. If those variables are not offered, turn them on under Variables: click Configure under Built-In Variables.
- If no form event appears at all, the form overrides the browser's submit event or sits in a frame loaded from another website. A Form Submission trigger usually cannot hear either, so move to the next part.
The Check Validation option makes the trigger fire only when the form is successfully sent. Google says that without it the trigger fires on every attempt to submit, so make sure it is ticked.
Trigger on the confirmed lead instead
Google's answer for a form whose submit event has been overridden is a custom event that the site pushes to the data layer.
- Have your developer, or the form plugin's setting, push an event to the data layer when the submission is saved, named for example generate_lead, with the form system's own ID for that entry as transaction_id.
- In Tag Manager, click Triggers, then New, choose Custom Event, and enter the event name exactly as it is pushed. Avoid regex matching with .*, which Google warns fires on every event.
- Click Variables, then New, choose Data Layer Variable, and enter transaction_id. Use it as the Transaction ID in a Google Ads conversion tag, or as a parameter on a GA4 event tag.
- Swap the tag's old Form Submission trigger for the new one under Triggering, and save.
- With no developer, an Element Visibility trigger on the form's thank-you message is the fallback: select it by ID or CSS Selector, choose Once per page, and tick Observe DOM changes. It carries no lead ID, so a junk lead counted this way cannot be withdrawn by ID later.
Make it fire once per lead, then publish
A trigger that fires is not finished until it fires exactly once for each real lead and never for a failed attempt.
- In Preview, send one test form. The tag should fire once, on one event. Open it and confirm the transaction ID is a real value that changes with every test.
- Send the form with a required field left empty. The tag must not fire.
- Reload the page after a successful send. The tag must not fire again. If it does, the trigger is tied to the page, not the lead.
- Click Submit, choose Publish and Create Version, name the version for the fix, and click Publish.
Google Ads treats a second conversion with the same transaction ID as a duplicate and does not count it, which is why the ID must come from the lead itself. Google warns that a fixed or reused ID causes significant undercounting.
Check it worked
After publishing, connect Tag Assistant to the live site outside Preview and send one more test. The tag should fire once.
Over the next week, if the site sends a GA4 event from this trigger, compare the leads your form system received with the GA4 event count for the same days. Far fewer events suggests some forms still send without the event, and more events than leads means it still fires more than once per lead.
Leave Google Ads conversions out of that comparison. They count only conversions Google links to an ad click, under the action's Count setting, so they run well below the form system's total even when the trigger works.
Why not fire on the submit button click
A click on the button happens before the form checks its fields and before the lead is saved. Counting clicks counts failed attempts and double clicks as leads. The dependable moment is when the form system confirms the submission.
Forms embedded from another website
A form loaded inside a frame from a form service runs on that service's page, not yours, so your container does not hear its events. Google's sitewide tagging guide also advises against firing conversion tracking from within an iframe. Use the form service's own Google integration, or have it redirect to a thank-you page on your site.