Your contact form is the most important button on your website. But when you open Google Analytics 4, you can’t tell how many people filled it in, which page they came from or which ad sent them. Without that number, you’re guessing which marketing actually works.
This guide shows you how to track form submissions in GA4 with five methods, from the quick built-in option to the most reliable setup. I’ll also show you how to pick the right one for your form.
Quick answer: To track form submissions in GA4, send an event each time a form is successfully submitted. You can use GA4’s enhanced measurement, a thank-you page, or Google Tag Manager with a form, visibility or dataLayer trigger. Then mark the event as a key event, test it in DebugView and import it into Google Ads.
How to Track Form Submissions in GA4: Pick a Method
Pick the method based on what happens after someone clicks Submit:
| After submit, the form… | Best method | Reliability |
|---|---|---|
| Sends people to a thank-you page | Thank-you page event | High |
| Reloads the page with a normal submit | GTM form submission trigger | Medium to high |
| Shows a success message without reloading | GTM element visibility trigger | High |
| Is custom-built, for example in React or Next.js | dataLayer event | Highest |
| You just need a rough number today | Enhanced measurement | Low to medium |
Test your form first. Submit it and watch the address bar. If the URL changes, you have a thank-you page. If a message appears and the URL stays the same, it’s an AJAX form, which is how most WordPress form plugins work by default.
Method 1: Enhanced Measurement Form Interactions
GA4 can track forms without any extra tools. According to Google’s enhanced measurement guide, the form interactions setting sends a form_start event when someone first interacts with a form and a form_submit event when they submit it.
To turn it on:
- Open Admin, then Data streams, and choose your web stream.
- Click the gear icon under Enhanced measurement.
- Turn on Form interactions and save.
It’s quick, but I don’t rely on it for leads. It can miss forms that submit in the background, and it can count attempts that failed validation. It also tracks every form on the page, including newsletter and search forms. Use it for a rough trend, not for ad optimization.
Method 2: Thank-You Page Tracking
If your form sends people to a page like /thank-you/, this is the easiest reliable method, and you don’t need Google Tag Manager.
- In GA4, open Admin, then Events, and click Create event.
- Name the new event, for example generate_lead.
- Add two matching conditions: event_name equals page_view, and page_location contains /thank-you/.
- Save it.
Make sure the thank-you page can’t be reached any other way. Add noindex to it and keep it out of your menus and sitemap, or random visits will count as leads.
Method 3: GTM Form Submission Trigger
For forms that do a normal browser submit, Google Tag Manager has a built-in trigger.
- In GTM, open Variables and enable the built-in Form ID, Form Classes and Form Text variables.
- Create a trigger with the type Form Submission.
- Tick Check Validation, so only valid submissions fire.
- Limit it to your form, for example where Form ID equals contact-form.
- Create a Google Analytics: GA4 Event tag with the event name generate_lead and attach the trigger.
This works well for simple HTML forms. Many plugin forms submit through JavaScript instead, and then this trigger may not fire at all.
Method 4: Element Visibility Trigger for Success Messages
Most WordPress form plugins show a success message on the same page. You can track that message.
- Submit a test form and right-click the success message, then choose Inspect.
- Copy its CSS class or ID.
- In GTM, create an Element Visibility trigger with that selector.
- Tick “Observe DOM changes”, because the message appears after the page loads.
- Fire your GA4 event tag on this trigger.
For WordPress sites, this is often the best choice. The message only appears after a successful submit, so failed attempts don’t count.
Method 5: dataLayer Event From Your Developer
If you want to know how to track form submissions in GA4 with the best accuracy, have your website send the event only after the form has actually been delivered. Your developer adds one line of code to the success step, a dataLayer push with an event name like form_success and the form name.
In GTM, you then create a Custom Event trigger for form_success and fire your GA4 tag from it. This is the best option for Next.js and React sites, because custom forms don’t have plugin success messages to watch.
Finish the Setup: Key Events, Parameters and Google Ads
Tracking the event is only half the job.
- Use a clear event name. Google lists generate_lead as a recommended event for lead forms, so reports and Google Ads understand it.
- Send the form name as a parameter, such as quote_form or contact_form, and register it as a custom dimension so you can compare forms.
- Mark it as a key event. Open Admin, then Events, and click the star next to generate_lead. Google now calls important actions key events instead of conversions.
- Import it into Google Ads as a conversion, so your campaigns can optimize for real leads.
How to Test Your Form Tracking
Knowing how to track form submissions in GA4 doesn’t help if the event never fires. Test it before you trust the data:
- Open GTM Preview and submit a real test form
- Confirm the tag fires once, not twice
- Submit an empty or invalid form and confirm nothing fires
- Check the event in GA4 under Admin, then DebugView
- Look at the Realtime report for the event name
- Wait a day or two for standard reports to update
Google says data processing can take 24 to 48 hours, so don’t panic if the event isn’t in standard reports straight away.
If you’d rather have this done for you, my analytics and tracking setup covers GA4, Google Tag Manager, form and call tracking, and Google Ads conversions.
Frequently Asked Questions
Does GA4 track form submissions automatically?
Partly. Enhanced measurement can send form_start and form_submit events if the Form interactions setting is on. But it doesn’t mark them as key events, it tracks every form on the page and it can miss background submissions. For leads you rely on, set up a dedicated event with a thank-you page or Google Tag Manager.
How do I track Contact Form 7 submissions in GA4?
Contact Form 7 submits in the background and shows a message on the same page. Use a GTM Element Visibility trigger on the success message, or a custom listener for its mail-sent event. You can also redirect people to a thank-you page after submission and track that page view as your lead event.
Why is my GA4 form submission count higher than my actual leads?
Usually because the event fires on failed attempts, fires twice or counts other forms like newsletter or search boxes. It can also happen when people reload the thank-you page. Limit your trigger to one form, use validation or a success message and check that the tag fires only once per submission.
Should I use form_submit or generate_lead?
Use generate_lead for the lead forms you want to count as key events. The form_submit event from enhanced measurement fires for many forms and is harder to control. A separate generate_lead event with a form name parameter gives you cleaner data and imports into Google Ads more reliably.
Can I track form submissions in GA4 without Google Tag Manager?
Yes. If your form redirects to a thank-you page, you can create the event inside GA4 with Create event. Enhanced measurement also works without GTM. For AJAX forms with success messages, though, Google Tag Manager or a small code change is usually the most reliable option.
Final Thoughts
Once you know how to track form submissions in GA4, you can finally see which pages, campaigns and ads bring real inquiries. Pick the method that matches your form, mark the event as a key event, test it properly and send it to Google Ads.
If your numbers don’t add up, or you’re not sure your tracking works, send me a message. I’ll check your setup and tell you what’s missing. If you run ads, my Google Ads management service uses this lead data to optimize your campaigns.





Comments
Be the first to share your thoughts or ask a question.
Leave a comment
Your email will not be published. Comments appear after review.