How-to · Updated October 11, 2026
Fix GA4 counting more form submissions than you received
Updated October 11, 2026
30 minutes
Submit each form on your site once while watching GA4's DebugView. If form_submit fires on a search box or newsletter form, or twice for one fill, it is not counting leads. Count leads with one event that fires only on a confirmed submission, mark it as the key event, and unmark form_submit.
Before you start
- Editor access to the GA4 property. Google asks for the Editor role or above to mark an existing event as a key event and to change enhanced measurement, which covers every step here.
- Access to whatever loads your tags, usually Tag Manager, otherwise the website builder or the site's code.
- The leads you actually received for one recent week, from the inbox or system the forms deliver to, to compare against GA4.
Watch one submission of each form
One test submission of each form in DebugView shows which forms send an event and how many times each one fires.
- Open tagassistant.google.com and connect it to your website address. Tag Assistant adds a parameter to the address that turns on debug mode for your browser. If the site shows a cookie banner, accept analytics cookies first: DebugView shows nothing without that consent.
- In GA4, click Admin and, under Data display, click DebugView. Choose your browser in the Debug Device list if more than one shows.
- Fill in your main lead form once with test details and submit it. In the Seconds stream, count the form_submit events and any lead event, such as generate_lead, that arrive for that one submission.
- Click the form_submit event to see its parameters. form_id and form_name tell you which form fired, and form_destination shows the address the form posted to.
- Now use the site's search box once, and any newsletter, login or quote-calculator form once each. Write down every one that sends form_submit.
Match what you saw to the cause
Each pattern in DebugView points to one of three causes, and each cause has a different fix.
- form_submit from a search box or newsletter form. GA4's enhanced measurement sends form_submit when a visitor submits a form, and Google's description draws no line between a lead form and any other form on the page. If form_submit is marked as a key event, every site search counts as a lead.
- The same lead event twice for one submission, or two events both counted. Two generate_lead events (or two of any one lead event) for one fill mean two installs send it, such as a website builder's Analytics setting and a tag in Tag Manager; two installs usually double page views too, and the page on page views counted twice covers removing one. One form_submit plus one generate_lead is normal, but DebugView does not show which events are key events: check Admin > Events > Key events, and if both are starred, one fill counts twice.
- One event per fill, but still more than the leads you received. Some forms send their entries somewhere other than where you collect leads, such as a third-party booking or chat widget, or an old form address. Compare the form_destination values from DebugView with where your leads actually arrive.
Count leads with one event
Make one event that fires only on a confirmed submission the key event, and stop counting form_submit as a lead.
- If the form shows its own thank-you page, create the event in GA4. Open Admin, under Data display click Events, then click Create event. Name it generate_lead and base it on page_view with the thank-you page's address as the condition; Google's newer screen calls this Create without code.
- If the form shows no thank-you page, have the site send generate_lead when a submission is confirmed, and fire a GA4 event tag of that name from it in Tag Manager. Google lists generate_lead as the recommended event for a visitor who submits a form or a request for information.
- In Admin > Events, find generate_lead in the Recent events tab and click the star next to it to mark it as a key event. A new event can take a while to appear there; Google lets you mark it ahead of time with Mark as key event when you create it.
- Open the Key events tab and deselect the star on form_submit, so it stops counting as a lead.
- Once generate_lead works, decide whether to keep form_submit at all. To stop it, open Admin > Data streams, click your web stream, and under Enhanced measurement edit the options and turn off Form interactions. Leaving it on is harmless once it is no longer a key event.
Every change counts from now on. Google says created events do not apply to historical data and unmarking a key event leaves past data in reports as key events.
Check it worked
If you created generate_lead in GA4, wait an hour or more before testing; Google says created events take that long to start. Then repeat the DebugView test: one lead form submission should send exactly one generate_lead, and the search box and newsletter form should send no key event.
Google says a newly marked key event can take up to 24 hours to show in standard reports. After a full week, compare generate_lead in Reports > Engagement > Events with the leads you received in the same week. Expect them close, rarely identical: ad blockers and cookie refusals hide some visits from GA4, and a visitor can submit twice. A gap near double either way means one of the causes above is still there.
Google Ads is bidding on the inflated count
If a Google Ads conversion was built from the GA4 form_submit key event, Google Ads receives the same inflated count and bids toward site searches as if they were leads. Build the conversion from generate_lead instead, then edit the goal that holds the old one in Google Ads and set it to Secondary (observe only). Google says secondary actions are reported but not used for bidding, unless they sit in a custom goal.
Counting method makes repeat submissions count
Google's recommended counting method, Once per event, counts every time the key event fires, so a visitor who submits three times counts three times. Once per session counts one per session. Changing it in the Key events tab affects future data only, and it does not fix a form that fires twice per submission.