Atlas Business Management
Government IT Services/Technology Procurement/Business Advisory
AboutServicesManaged ITWeb DevelopmentMarketingAI AutomationProductsBuild a QuoteAdvisoryContractsBlogContactSupport
Web & Marketing

Why Your Contact Form Leads Disappear: A Conversion Tracking Checklist

Eight ways form leads vanish from GA4 and Google Ads reporting, a checklist to fix each one, and the monthly check that keeps them from coming back.

Printed bar and line charts spread on a desk next to an open laptop

Form leads vanish from reporting for a few reasons: a thank-you page that never loads, a form inside an iframe, a GA4 event nobody marked as a key event, consent mode, duplicate tags, untracked phone clicks, or a conversion the ad platform never imported. This conversion tracking checklist finds which one is yours and fixes it.

Why do contact form leads disappear from reporting?

Because a form submission is not one event; it is a chain. The visitor submits, the plugin validates, something changes on the page, a tag notices, the tag sends an event to GA4, GA4 decides whether it is a key event, and the ad platform imports it. A break anywhere in that chain means the lead arrives in your inbox and nowhere else. The common breaks:

The thank-you page never fires

The classic setup counts a pageview of /thank-you. Then someone changes the form to show an inline success message instead of redirecting, and the conversion count drops to zero while the leads keep coming. Or the redirect goes to /thank-you/ with a trailing slash and the trigger matches /thank-you exactly.

The form is in an iframe

Embedded forms from CRMs and booking tools render inside an iframe on another domain. Your Tag Manager container cannot see inside it, so the submission is invisible unless the vendor posts a message to the parent page and you listen for it.

The GA4 event exists but is not a key event

GA4 records every event you send, but only events marked as key events appear in the conversion reports and can be imported into Google Ads. A generate_lead event that was never flagged is data without a report.

If the site has a cookie banner wired to Google consent mode and the visitor does not accept, analytics and ads tags either do not fire or send cookieless pings that feed modeled data. That is working as designed, but a share of real leads will never appear as individual conversions, and the share is larger than most expect when the banner defaults to reject.

Two tags fire at once

A GA4 tag hard-coded in the theme plus the same tag in Tag Manager, or a form plugin's built-in analytics integration plus your own trigger, produces double counts. Then someone notices the inflation, deletes the wrong one, and the count goes to zero.

Phone clicks are not tracked

For many local businesses the phone brings more leads than the form. If tel: link clicks are not an event, a large share of leads is invisible, and the form conversion rate you are optimizing is the wrong number.

The ad platform never gets the conversion

Google Ads only counts what it is told. Either you import the GA4 key event into Ads, or you install the Ads conversion tag directly. If neither was done, or the import points at a key event that was later renamed, automated bidding is optimizing toward nothing. Google's conversion tracking help page walks through both methods.

The form plugin's own success event is ignored

Most form plugins fire a JavaScript event or push to the data layer on a successful submission. That is the most reliable signal available, and it often goes unused because whoever set up tracking used a generic form-submission trigger that fires on every button press, including failed validation.

The conversion tracking checklist

Work through it in order. Each item matches one of the failure modes above.

  1. Inventory the forms. List every form on the site, what plugin or vendor renders it, whether it redirects or shows an inline message, and whether it sits in an iframe. Most sites have more forms than anyone remembers.
  2. Pick one success signal per form, and prefer the plugin's own. Use the plugin's success event or data layer push as the trigger. Fall back to a thank-you pageview only when the form always redirects, and match the path with "contains" rather than "equals."
  3. Handle iframed forms explicitly. Check whether the vendor posts a message to the parent window on submit; most do. Add a listener that pushes to the data layer. If there is no signal, move the form onto the page or accept that it cannot be tracked and say so.
  4. Send one well-named event. Use GA4's recommended generate_lead event with a form_name parameter rather than inventing names. Google's GA4 events documentation explains the difference between automatically collected, recommended and custom events.
  5. Mark it as a key event. In GA4 Admin, flag generate_lead as a key event. Until that toggle is on, nothing downstream sees it.
  6. Remove duplicates. Search the theme, the plugins and Tag Manager for a second measurement ID or conversion tag. One container, one tag per destination. If a plugin's built-in analytics integration is on, turn it off or drop the Tag Manager tag; never both.
  7. Track phone clicks. Add a click trigger for links starting with tel: and send it as its own event, marked as a key event. Do the same for mailto: if email leads matter.
  8. Connect the ad platform. Link GA4 to Google Ads and import the key event as a conversion, or install the Ads conversion tag in Tag Manager and fire it on the same trigger. Choose one to be the primary conversion for bidding; counting both doubles it.
  9. Set consent mode up deliberately. Decide what the banner defaults to, confirm every tag honors consent state, and read the reports knowing modeled conversions are estimates. If nothing obliges you to show a banner, ask whether it is costing more data than it protects.
  10. Write it down. One page: each form, its trigger, its event, its key event flag, its Ads conversion. The next person to touch the site will thank you.

If the site does not have Tag Manager yet, Google's Tag Manager setup guide covers installing the container; everything else above happens inside it.

How do you test conversion tracking with GA4 DebugView and Tag Assistant?

Never trust the setup until you have watched one submission travel the whole chain.

  1. Open Tag Manager, click Preview, and connect it to the site. Tag Assistant opens alongside and shows every data layer push, trigger evaluation and tag fire as it happens.
  2. Submit a real test on the form, with a test phrase in the message so you can find and delete it later. Watch Tag Assistant: the plugin's success event should appear in the data layer, the trigger should evaluate true, and the GA4 event tag should fire exactly once.
  3. Switch to GA4 and open DebugView under Admin. Find generate_lead in your session's event stream and check its parameters. Key events are highlighted; if it is not, the flag is not set.
  4. Test the failure paths too. Submit with a required field empty and confirm nothing fires. Submit from a phone. Submit with cookies rejected on the banner and note what happens, because that is what a share of real visitors see.
  5. Check Google Ads the next day. Imported conversions take time to appear. If the test has not shown in the conversion action after two days, the link or import is the problem, not the tag.
  6. Delete the test leads from the CRM and note the test date in your tracking document.

What does a monthly sanity check look like?

Ten minutes, same day each month.

  1. Count the leads that actually arrived (inbox, CRM, call log) for the month.
  2. Count the key events in GA4 and the conversions in Google Ads for the same period.
  3. If GA4 is lower than the inbox by more than you would expect from consent rejections and ad blockers, something broke. If it is higher, something is double firing or a bot found the form.
  4. Submit one test lead and watch it through DebugView. Plugin updates and theme changes break triggers without warning.
  5. Check that the key event is still flagged and the Ads import still points at it. Renamed events silently break imports.
  6. Look at which landing pages produced leads. If a page that gets paid traffic produced none, it is either a tracking gap or a page problem, and the second is a conversion rate optimization job rather than a tracking one.

When is server-side tagging worth it?

Later than most vendors suggest. Server-side tagging routes events through a server you control before they reach Google, which makes tracking more resistant to ad blockers, gives you control over what data leaves the site, and can improve page speed by moving tags out of the browser. It also adds a cloud server to run, a second container to maintain, and a setup that is harder for the next person to debug.

It is worth it when paid spend is large enough that better attribution changes bidding decisions, when you must strip or hash data before it reaches a vendor, or when you have confirmed that browser-side tracking is losing conversions to blockers rather than to a broken trigger. It is not a first fix. Every item above is cheaper, and most missing leads are a broken trigger, not an ad blocker.

If you run paid traffic to dedicated landing pages, get browser-side tracking right there first, where there is one form and one goal. The conversion tracking page describes what a full setup and audit covers.

Frequently asked questions

Why does Google Ads show more conversions than GA4?

Ads and GA4 use different attribution models, different lookback windows and different counting methods, and consent affects them differently. Small gaps are normal. Large ones usually mean a duplicate conversion action in Ads, or the Ads tag firing on a trigger that GA4 is not using.

Do I need Google Tag Manager to track form submissions?

No, but it makes every item on this checklist easier to do and to hand over. A hard-coded GA4 snippet can send generate_lead, but you will edit theme code every time a form changes. Tag Manager keeps tracking out of the site's code and lets you preview before publishing.

What is the difference between a GA4 event and a key event?

An event is anything GA4 records: a page view, a click, a form submission. A key event is an event you have flagged as important, which makes it appear in the conversion reports and available to import into Google Ads. Every key event is an event; most events are not key events.

Should spam form submissions count as conversions?

No, and they will unless you stop them. Add a honeypot field or a modern captcha to the form, and compare the lead count against the inbox monthly. If spam is a large share of submissions, automated bidding is being trained on it.