Why are my form submissions not being tracked as events?

Kilian Müller
Kilian MüllerOwner of 1hold.de · Google PartnerUpdated
Google AnalyticsGoogle Certified Specialist

Form submissions go missing in GA4 when nothing on your site reports the successful send: enhanced measurement only sees the browser’s submit, and custom events break as soon as a plugin, a consent setting or a trigger changes. To track form submissions in GA4 reliably, send your own generate_lead event at the moment the form confirms success, and mark it as a key event.

Check what GA4 already receives before you rebuild anything. In our client accounts the forms almost always worked; the signal between form and tag failed. If the event arrives but never shows up as a conversion, also read why conversions are not showing up in GA4.

What does GA4 measure on its own with form_start and form_submit?

With enhanced measurement switched on, GA4 sends form_start the first time a visitor interacts with a form in a session and form_submit when the visitor submits a form. You find the switch under Admin → Data collection and modification → Data streams → your web stream → Enhanced measurement → gear icon → Form interactions.

That is useful for diagnosis, but rarely a good key event:

  • form_submit counts submissions of any form on the site, which can include search boxes, newsletter fields and shop forms. In the online shop described below, GA4 logged 640 form_submit events against 19 generate_lead events in the same 14 days.
  • It fires when the browser registers the submit, so it cannot tell whether your form plugin actually sent the message or showed an error.

How do you track form submissions in GA4 reliably?

  1. Find the success signal of your form. Contact Form 7 dispatches the browser event wpcf7mailsent only when the mail was sent; wpcf7submit fires on every attempt, errors included. Other plugins push their own dataLayer event.
  2. Listen for it in Google Tag Manager. A small Custom HTML tag with document.addEventListener('wpcf7mailsent', …) pushes dataLayer.push({event: 'generate_lead'}). A Custom Event trigger named generate_lead then fires your tags. For forms that send without reloading the page, this is more dependable than the built-in Form Submission trigger.
  3. Send the recommended event. Google defines generate_lead as the event that measures when a lead has been generated, for example through a form. If you pass a value, currency is required.
  4. Mark it as a key event. Go to Admin → Data display → Events and click the star next to generate_lead. For an event GA4 has not seen yet, use Create event and switch on Mark as key event. According to the key events help page, standard reports can take up to a day, and historic data does not change.
  5. Test with a real submission. Start GTM Preview, send the form, then open Admin → Data display → DebugView. The event should appear in the seconds stream.

How did a removed plugin and a consent setting break form tracking for two clients?

A retail client counted 8 to 12 contact-form conversions a week in Google Ads in May and early June 2026. On 18 June a WordPress plugin was switched off because it loaded a second Google tag. Nobody knew that the same plugin had been passing the Contact Form 7 send event to GTM. From the week of 22 June the form conversion showed zero. Phone and e-mail clicks kept converting, so the gap went unnoticed for almost two weeks. On 1 July we added a listener for wpcf7mailsent directly in GTM, and the week of 29 June was back at 12.5 conversions (Google Ads splits credit between clicks, hence the decimal).

Contact-form conversions per weekRetail client · plugin off 18 June, GTM fix 1 JulyWeek of 8 June10Week of 15 June6Week of 22 June0Week of 29 June12.5Week of 6 July16Source: Google Ads, conversion action for the contact form, by week of ad click

An online shop had the opposite picture. Its Google Ads conversion for the contact form had counted 2 to 14.5 a month from January to April 2026 and then flatlined from May, although the form kept working. The Ads conversion tag in GTM required two consent types, analytics_storage and functionality_storage. Google’s consent settings help is clear: such a tag only fires if all listed types are granted. The cookie banner almost never granted functionality_storage, so the tag never fired. We removed the extra requirement and kept one trigger, the plugin’s mail-sent event; the fix went live on 10 July. That was only half the story. In September Ads counted 2 form conversions, while the form database held 25 real submissions. The second cause: the form plugin redirects to its thank-you page without any delay, and the old page was gone after 244 ms, before the Ads tag had finished sending. Since 22 October the conversion fires on the thank-you page itself; at the time of writing it had been confirmed in tests, a real conversion from an ad click was still to come. If your form redirects straight away, measure the conversion on the thank-you page, not on submit.

Track the success, not the click. Use one generate_lead event per sent form, fired by the form’s own success signal, and make only that a key event. After every plugin, theme or consent change, send one real test enquiry and check it in DebugView and in Google Ads – page view and click tests do not prove that forms are counted.

What should you check when the form event is missing?

  • Nothing in DebugView: the trigger or listener does not fire. Check in Preview whether your success event appears in the dataLayer at all.
  • DebugView yes, reports no: wait up to a day, then check whether the event is marked as a key event and whether a data filter excludes your test traffic.
  • GA4 yes, Google Ads no: open the Ads tag in GTM under Advanced Settings → Consent Settings. Require additional consent for tag to fire with consent types your banner rarely grants silences the tag.
  • Numbers far too high: you are probably counting form_submit from enhanced measurement.

Sources

Want to be sure every enquiry is counted? We test your forms end to end in GA4, GTM and Google Ads and repair the signal where it breaks. Book a free initial call or see how we handle Google Ads and conversion tracking for our clients.

Need personal advice?

Our Google-certified experts are happy to help – free and without obligation.

Book a meeting