folder_open GA4

A GA4 events checklist that matches real enquiries

Martin Marinov Martin Marinov
20 min read
A GA4 events checklist that matches real enquiries
Topics ga4-conversion-events-checklistkey-eventsenhanced-conversions-usenquiry-trackingsmart-bidding-signals

Pull last month’s CRM and last month’s GA4 key events side by side. In a typical US account you’ll see 180 “generate_lead” hits and 47 sales-accepted records. The gap is not a reporting quirk. It is bidding on thank-you pageviews, button clicks that never submitted, and phone taps from bots. Smart Bidding still treats those as gold. Google Search CPC averaged around $2.69 in 2024 (WordStream/Statista), and accounts with clean conversion setup routinely report ROAS 3-5x versus 1-2x in accounts feeding junk signals. Accounts with clean conversion setup consistently outperform industry ROAS benchmarks - WordStream pegs average Search ROAS at roughly 2x, with top-quartile accounts reaching 4x+ precisely because their signal is clean.

A scored audit beats another “add these 9 events” list because you already have events. You need to know which ones map to a human who asked for a quote, a demo, or a callback. Fail here and paid media looks busy. Pipeline does not.

Twelve GA4 checks that decide if a form is a real enquiry

Work this scorecard in Admin, DebugView, and a 28-day exploration. Pass means you can defend the event to finance. Weak means it fires, but not only on a completed enquiry. Fail means it inflates volume or misses the action that actually books work. Inspect US traffic first: mobile is most of paid search clicks, and conversion still lags desktop, so a “form_submit” that never fires on iOS Safari is a fail even if Chrome looks fine.

Audit scorecard

  1. Key events equal booked intent, not pageviews

    Open Admin, then Events, and list every marked key event. Good looks like generate_lead, schedule, request_quote, call_click, or purchase, each tied to a completed action. Fail is session_start, scroll, click, file_download, or a thank-you pageview with no form success. What it costs: Performance Max and Search learn from the wrong people. You will see CPL drop in Ads while sales says quality died. Mark only events that a human on the marketing number would call an enquiry.

  2. One enquiry, one fire

    Submit a real form in Tag Assistant Preview and watch DebugView. Count fires on submit, thank-you, and GTM form listeners. Good is a single generate_lead with a unique transaction_id or lead_id. Fail is two or three hits from a listener plus a page_view plus a Google tag on the confirmation URL. Duplicate fires teach bidding that one Dallas HVAC quote is three conversions. Deduplicate in GTM before you scale spend.

  3. Form success, not button click Click

    Submit with an empty required field. If generate_lead still fires, you are counting rage clicks. Good is a dataLayer push only after the CRM or form vendor returns success, or a thank-you URL that cannot load without a valid post. Weak is a CSS-class click on .btn-submit. Fail is counting HubSpot meetings booked the same as newsletter checkboxes. Sales-accepted enquiry is the bar, not any POST.

  4. Call and click-to-call match answered jobs For US contractor and clinic

    Call and click-to-call match answered jobs For US contractor and clinic sites, tel: taps are often half of “leads.” Inspect the call event: duration threshold, unique number, and whether spam and after-hours hangups are excluded. Good is a call_click or call_connected event that your call vendor can reconcile to a recording. Fail is every tap on a sticky bar from Dallas home-services paid traffic, including 2-second bots. If Ads optimizes to taps, you will buy more taps, not more booked jobs.

  5. Parameters sales can actually use

    Check event parameters: form_id, service_line, location, lead_type, value, currency (USD), and a stable lead_id. Good is a Phoenix roofing form sending service=roof_repair and value that matches your average job, not $1. Fail is empty params or page_title stuffed as the only dimension. Without parameters you cannot split emergency vs. estimate in explorations, so you cannot cut the 20-30% of SEM budget that usually dies on the wrong intent.

  6. Ads conversions map 1:1 to GA4 key events In Google Ads, open Goals and

    Ads conversions map 1:1 to GA4 key events In Google Ads, open Goals and compare primary conversions to GA4 key events. Names, counting method (One vs. Every), and attribution windows should match. Good is import from GA4 or a shared GTM event with the same lead_id, plus Enhanced Conversions where you have first-party email or phone. Fail is a separate Ads pixel on thank-you plus a GA4 key event plus a Meta pixel Lead, all counting the same Chicago demo. Last-click already double-counts across channels. Do not add a third fire.

  7. Consent and ad-blockers do not silently zero your signal US sites still

    Consent and ad-blockers do not silently zero your signal US sites still lose a large slice of conversion data to blockers and consent. Compare GA4 key events to CRM creates for the same 14 days. A 10-15% gap is noise. A 20%+ gap with almost no consent-denied events in GA4 means tags never loaded. Good is Consent Mode configured, server-side or CAPI-style recovery for paid, and Enhanced Conversions filling hashed emails. Fail is “we turned consent on” with zero modeled conversions and bidding starving for signal.

  8. Landing friction vs

    Landing friction vs. tracking fiction If events are low, do not assume tags broke. Watch sessions where the form is in view but never submits. Google's CrUX report (HTTP Archive, 2024) shows fewer than 60% of origins pass all three Core Web Vitals - check your own URL at pagespeed.web.dev before assuming the event is broken. Slow INP on a Miami mobile landing page will look like a tracking outage. Use HeyLead Insights to see rage clicks on the CTA, fields abandoned after zip, and proof that never scrolls into view. Fix the page before you invent a new event. Pair that with a Core Web Vitals check so you are not bidding into a 4-second form.

  9. UTMs survive the thank-you hop Click a paid URL with utm_source, utm_med

    UTMs survive the thank-you hop Click a paid URL with utm_source, utm_medium, utm_campaign, and a unique gclid or gbraid. Complete the form. In GA4 the key event should still carry source/medium and campaign. Fail is a redirect that strips query strings, a booking widget on a third-party domain, or auto-tagging off. Then every Atlanta lead becomes (direct) / (none) and you will kill the campaign that actually booked work. Build test links with a UTM builder and keep one conversion path that does not bounce through a naked homepage.

  10. Micro-events stay unmarked video_start, scroll_90, outbound, and chatbot

    Micro-events stay unmarked video_start, scroll_90, outbound, and chatbot_open can live as events. They must not be key events and must not import to Ads as primary. Good is a funnel exploration: view_item to begin_checkout to generate_lead. Fail is marking every engagement so “conversion rate” looks healthy while CRM stays flat. Volume is a dead metric here. Information that sales will work is the only signal worth sending to Smart Bidding.

  11. DebugView and Ads diagnostics agree this week

    Fire one test lead with a unique email. Confirm it in DebugView within seconds, in GA4 Realtime, in the Ads conversion action (may lag), and in the CRM. Write down timestamps. Good is same lead_id across systems within a few minutes, counting once. Fail is GA4 at 1, Ads at 0 for two days, or Ads at 2 with GA4 at 1. Do this on iPhone Safari and a desktop Chrome profile. If you cannot complete this test in an afternoon, do not raise budget.

  12. Named owners and a change log Who can publish GTM

    Named owners and a change log Who can publish GTM? Who can mark key events? Who can change Ads primary conversions? Good is two named people, a workspace note on every event change, and a rollback plan. Fail is a contractor who left in March still admin, and a “quick HubSpot embed” that shipped a second listener. Clean conversion setup is an operating job, not a one-time tag install. If GA4 configuration and events feel like a side quest, that is the leak.

If three or more items fail, stop adding campaigns. You are teaching the auction a story finance will not sign.

Pass, weak, fail: what to fix before you add budget

Score each item as Pass (2), Weak (1), or Fail (0). Twelve items, 24 points. 20-24 is production-ready. 12-19 is usable for reporting but dangerous for Smart Bidding. Below 12, pause scaling. You still run ads. You do not let automated bidding chase a button click.

Priority is not “the easiest tag.” Fix counting integrity first: duplicates, button clicks vs. success, Ads 1:1 mapping. Then consent and Enhanced Conversions so you are not missing 20%+ of real leads. Then parameters and UTMs so Houston vs. New York and emergency vs. quote can be split. Landing speed and form UX come next, because a perfect event on a form nobody finishes is a clean zero. Creative tests and new campaigns last. Constant structure changes reset learning. Do not touch campaign architecture until the conversion object is stable for two full weeks.

When Ads CPA and CRM CPA disagree by more than a small lag, believe CRM for quality and GA4 for pathing. Use GA4 to see which landing and which campaign produced the enquiry. Use CRM to decide if that enquiry was worth $80 in CPC. If you only stare at in-platform CPA, you will keep the campaign that booked tire-kickers.

A mid-size B2B team in Chicago had generate_lead on every HubSpot form, including a content gate. Key events looked like a record month. SDRs got 19 real demos. They unmarked the gate, kept request_demo with a meeting_id, and CPC felt worse for 11 days. Pipeline contribution from Search went up. That is a pass on item 1 and item 10, not a tracking “loss.”

Not sure where your funnel leaks?
Get a free marketing audit - we review your search, ads, and landing pages and send back what to fix first.
Get a free audit

The GA4 events checklist for tracking real enquiries

A 30-day repair sequence, not a new measurement philosophy

Do not rebuild the property. Repair the events you already have. Keep one primary enquiry event while you work. Changing names every week is how learning dies.

30-day fix plan

Action checklist

  1. Days 1-3: Export 28 days of key events vs. CRM creates. List every event marked as key. Unmark anything that is not a completed enquiry. Document the one primary event name you will keep.
  2. Days 4-7: Preview every form, tel: link, and scheduler. Kill duplicate listeners. Add lead_id. Confirm one fire in DebugView on iOS and desktop.
  3. Days 8-12: Align Google Ads primary conversions to that event. Turn on Enhanced Conversions if you collect email or phone. Pause leftover Ads tags on thank-you pages.
  4. UTMs through redirects. Add service and location parameters. Spot-check three live campaigns from New York, Dallas, and a brand campaign.
  5. Days 19-24: Consent Mode and a CRM-to-GA4 gap check. If the gap is still over 20%, fix tag load and first-party collection before you buy more traffic.
  6. Days 25-30: Landing pass. Slow INP, form fields that stall, proof below the fold. Recheck Core Web Vitals. Only then raise budgets on campaigns whose events now match sales-accepted leads.

If you need a second pair of eyes on the container after week two, a short GA4 events review is cheaper than another month of Smart Bidding on ghost leads.

What marketing leaders are seeing

A B2B SaaS team we audited in Q1 2025 in Chicago had 218 generate_lead events in GA4 and 41 SQLs. The extra 177 were a content gate plus a double GTM listener on the same HubSpot embed. Bidding looked cheap until they unmarked the gate, kept request_demo with a meeting_id, and let Search relearn. CPC felt worse for 11 days; pipeline contribution from Search went up.

A Phoenix home-services operator we reviewed in the same quarter had call taps set as a primary conversion. After they required 45 seconds connected and reconciled recordings to the CRM, Search CPC went up and booked jobs from Phoenix paid finally matched sales-accepted work.

Prefer to just ask? Message Martin directly on WhatsApp: Chat with us on WhatsApp

The GA4 events checklist for tracking real enquiries

FAQs

Should generate_lead be a key event if sales rejects half of them?

Keep it as a key event only if you cannot fire a tighter event yet. Add a second event, like qualified_lead, when CRM stage changes, and make that the Ads primary as soon as volume can train. Do not leave a newsletter signup as the thing that trains Performance Max.

Do we need a separate GA4 event for every form on the site?

No. One generate_lead with form_id and service_line parameters is cleaner than eight key events. Separate events when the economic value is truly different, like emergency dispatch vs. a whitepaper.

How long should we wait after a tracking fix before we trust Smart Bidding?

Google recommends a minimum of 30 conversions in the past 30 days before Target CPA or Target ROAS is reliable. For thin B2B accounts under 20 conversions/month, stay on Maximise Conversions until volume builds - do not force tROAS with insufficient data. Give it two conversion cycles after a tracking fix, often 7-14 days on high-volume Search, longer on thin B2B. Do not rebuild campaigns during that window. Watch CRM, not day-one CPA.

Is Enhanced Conversions enough if we also run Meta?

It helps Google. Meta still needs its own matched event and a consistent lead_id so you can reconcile, not so you can sum both platforms into one “ROAS.” Treat each as a bidding signal, CRM as the scoreboard.

What if DebugView looks clean but Ads conversions stay at zero?

Check the conversion action’s data source, the Google tag vs. GA4 import, attribution windows, and whether you are filtering test traffic. Also confirm the Ads account is linked to the right GA4 property. A clean DebugView does not ship to Ads by magic.

Putting it to work

Execution sprint

This week

  1. Pull 30-90 days of performance for ga4 events checklist that match real enquiries (Search Console, ads, CRM, or call logs - whatever you have).
  2. Flag the top leak: wrong intent, weak page, slow response, or dirty conversion tracking.
  3. Ship one fix on the highest-traffic money path (page, campaign split, or response rule).
  4. Run the free tools below on that same URL or account and log the findings.

Next 30 days

  1. Expand the fix to the next one or two money paths only after the first one shows cleaner bookings.
  2. Align creative, keywords, or content with the same offer the page now states.
  3. Review booked outcomes weekly; cut anything that still only produces unqualified volume.

This week

  • Export 28 days of GA4 key events and CRM creates. Write the ratio on a sticky note.

  • Unmark every key event that is not a completed enquiry.

  • Submit one live form in Preview. Confirm a single fire and a lead_id.

  • Compare Google Ads primary conversions to that event name.

  • Build three UTM test links and walk them to thank-you.

  • Run a Core Web Vitals check on the highest-spend landing URL.

Next 30 days

  • Finish the six-step repair sequence above without renaming events twice.

  • Turn on Enhanced Conversions where you have first-party contact fields.

  • Split reporting by service_line and market, not only by channel.

  • Only then raise budget on campaigns whose events match sales-accepted leads.

Start by lining up last month’s CRM accepted leads against GA4 key events and circling every event that is not a real enquiry. HeyLead can own that conversion-object work: one fire per form or connected call, Ads mapped to the same event, and the ongoing DebugView checks so Smart Bidding stops training on vanity clicks. Chat with us on WhatsApp

Work with HeyLead
Free marketing audit, or reach Martin directly:
Get a free audit Connect on WhatsApp · [email protected]