folder_open Demand Generation

What useful GA4 looks like for UK lead-gen sites

Martin Marinov Martin Marinov
17 min read
Topics uk-ga4enquiry-eventsconsent-modefirst-party-datacost-per-qualified-lead

A Leeds finance lead will not thank you for a 14% lift in engaged sessions. They want to know whether last month’s Google Ads spend, sitting in GBP with VAT on the media invoice, produced booked conversations: quote requests, callback forms, click-to-call from a mobile SERP, maybe a chat that sales actually picked up. Useful GA4 is the property that answers that without a second spreadsheet and a prayer.

UK lead-gen sites live on mixed traffic. Search still carries high intent, and for many accounts we audit, PMax now accounts for 40-60% of Google Ads spend, which makes the imported conversion definition the single most leveraged setting in the account. In our UK client set, Meta tends to trail Google-attributed ROAS by roughly 30-40%, though the gap closes on remarketing. None of that matters if the only thing GA4 counts is a thank-you pageview that also fires when someone hits the back button. The job of the property is simple: name the enquiry the same way the CRM and the ad account name it, then keep that definition stable while consent, redesigns, and bidding models change around it.

This guide is for the person who owns the marketing number. It is not a tag-by-tag GTM tutorial. You already know events exist. What you need is a picture of how the mechanism works on a UK site, what “good” looks like when pipeline is the scoreboard, and which reports you can stop pretending to care about.

How GA4 turns a UK enquiry into a signal ads can actually use

GA4 does not “see a lead”. It sees a hit: an event name, a timestamp, a set of parameters, and whatever user identifiers survived consent. On a typical UK lead-gen stack that hit starts in the browser (or in a server container), lands in the GA4 property, and, if you marked it as a key event and imported it, becomes the conversion Google Ads or Microsoft Ads will bid against. Break any link in that chain and Smart Bidding still runs. It just optimises to the wrong thing.

Think in three objects, not twenty. First, the enquiry action itself: form submit that actually posts, tel: tap that is not a footer decoration, chat that a human opened. Second, the parameters that make the action useful later: form_id, page_location, lead_type, gclid if you still have it, and hashed email when Enhanced Conversions is on. Third, the consent state. UK traffic is heavy on CMP banners. If analytics_storage or ad_user_data is denied, you get a thinner event, or nothing, and you lose a chunk of the 20%+ conversion data privacy and blockers already eat. That is why first-party data and a unified Enhanced Conversions toggle matter more than another custom dimension named “funnel_stage_v3”.

The mechanism most teams get wrong is the difference between a page_view of /thank-you and a generate_lead (or a tightly named custom event) that fires once, after a successful response from the form endpoint. Thank-you pageviews double-count refreshes, miss SPA forms that never change the URL, and ignore click-to-call. A Bristol B2B site we watched had 312 “conversions” in GA4 and 187 unique HubSpot contacts in the same window. The gap was a GTM trigger on History Change plus a duplicate Google tag on the thank-you template. Ads was happily learning from the inflated number. CPL looked cheap. Sales said the opposite.

Alignment with ad-platform conversions is not a reporting nicety. It is the signal. If GA4’s key event is “any form interaction” and Google Ads’ primary conversion is “qualified enquiry”, you will watch automated bidding inflate spend without improving quality. That objection is fair. The fix is not to abandon bidding. It is to make the event match the CRM stage you actually want more of, then import that one event. Secondary events (scroll, file download, video) can sit in the property. They should not sit in the conversion column that sets bids.

Landing pages sit in the same loop. A dedicated page that matches the ad, loads well enough that INP does not stall the form, and posts without a 500 is part of measurement. Fewer than six in ten origins pass all three Core Web Vitals, per the latest CrUX report. If the form is slow on mobile (63%+ of paid search clicks, with conversion rates often 30-40% behind desktop), you are measuring a bottleneck, not demand. When you need to see why the event never fires, session behaviour on the page is more useful than another GA4 exploration. HeyLead Insights is how we watch form abandon, rage clicks on the submit button, and proof that never gets scrolled into view, then we fix the tag only after the page is actually completable.

If the mapping between events and ad conversions is still a black box, a focused GA4 configuration pass is usually cheaper than another quarter of mis-trained Performance Max.

A useful UK property when cost per qualified lead is the scoreboard

A healthy setup is boring on purpose. One GA4 property for the marketing site (plus a roll-up only if you truly have separate brands). Stream settings that match production, not a staging clone leaking into reports. Google signals on where consent allows it. Data retention at 14 months if you need year-on-year seasonality for a Manchester or London pipeline that actually has seasons. Enhanced measurement left on for scrolls and outbound clicks, then ignored for bidding.

Key events should be a short list. For most UK lead-gen sites that is: successful form enquiry, click-to-call, and chat or WhatsApp start if sales treats those as real work. Name them so a new hire can read the Admin screen without a glossary. Mark only those as key events. Import only those into Google Ads as primary or secondary with a written rule: primary = sales-accepted enquiry, secondary = everything else you still want to observe. If last-click in GA4 and last-click in Ads disagree, that is expected. Do not “fix” it by counting the same conversion in three tools. Last-click already double-counts across channels. Useful GA4 admits that and still gives you a clean volume of unique enquiry events you can reconcile to CRM IDs once a week.

Parameters do the quiet work. lead_type (quote, callback, brochure), service_line, and location (even a coarse region) let you see that Edinburgh traffic books calls while a generic UK campaign burns budget on brochure downloads. UTM hygiene still matters because Performance Max will otherwise dump everything into “cross-network”. Build links with a consistent schema so GA4’s session source / medium is not a junk drawer. You can mint those URLs with a UTM link builder instead of letting every media buyer invent utm_campaign=test2.

Consent Mode v2 is part of “good”, not a legal sidecar. Modelled conversions will appear. Treat them as directional, not as invoice truth. Compare modelled GA4 key events to CRM creates over 28 days, not over a Tuesday. When the two diverge by more than you can explain with weekend lag, you have a tagging or qualification problem, not a modelling feature to celebrate.

What good looks like in numbers is ranges, not theatre. A UK B2B form that is the actual offer might convert in the low single digits on cold search and higher on branded or remarketing. A local services page (think boiler, electrician, estate agent valuation) can sit higher if the CTA is a call. If mobile conversion lags desktop by a third or more, look at the form and INP before you look at the bid strategy. If 20-30% of search spend is still leaking to irrelevant queries, GA4 will not save you; negatives and landing-page match will. The property’s job is to show that leakage as enquiry rate by query cluster and landing page, not to hide it in “Engagement rate”.

Access is part of the picture. Marketing should own the GA4 property and the GTM container. The agency or in-house team that runs media should have Editor, not a screenshot PDF. If someone else holds the keys, you cannot debug a duplicate conversion at 17:40 on a Friday when Google Ads has already trained on it. That is operations, not politics.

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

What useful GA4 looks like for lead-gen websites in the UK

Vanity, cargo-cult Admin, and the compact check that actually changes booked work

You can ignore session duration as a KPI. You can ignore bounce rate’s ghost in GA4’s engagement rate unless you are debugging a broken page. You can ignore 40 custom events named for every H2 click. Volume is a dead metric when the volume is scrolls. Finance already knows that. The reports that do not produce pipeline are the ones that rank pages by views, compare “new vs returning” without a conversion overlay, and treat DebugView screenshots as a strategy deck.

Cargo-cult settings show up as: marking every recommended event as a key event because the interface offered a toggle; turning on user-ID without a real login; collecting gender and interests you will never use; cloning the US property’s currency instead of GBP; leaving the Google tag firing twice, once in GTM and once in a WordPress plugin. None of that improves cost per qualified lead. It does create duplicate conversions, which is how bidding quietly inflates.

Also ignore the instinct to rebuild the account every time a consultant says “native GA4 is enough, delete GTM”. GTM is how you keep form, call, and chat definitions in one place when the website redesigns. The property should survive the next theme change. If your only conversion is a thank-you URL, the next Webflow migration will zero your history and reset learning. That is avoidable.

Here is a compact check you can run without turning the week into a tagging project. Keep it to the enquiry path, then stop.

Apply it

  1. List the three enquiry types sales will accept this quarter (form, call, chat). If sales will not work a chat, do not mark chat as a key event.

  2. In GA4 Admin, confirm only those events are key events, currency is GBP, and timezone matches the UK office that closes the books.

  3. Submit one live form, one tel: tap, one chat start. Confirm a single hit each in DebugView, then in Realtime, with the parameters you care about.

  4. Compare 28 days of those key events to unique CRM records created from the website. Write down the gap. Do not average it away.

  5. In Google Ads, confirm the imported primary conversion is that same event, not a pageview and not a flooded generate_lead from a plugin.

  6. Spot-check the highest-spend landing pages for form friction and load. If the event never fires, fix the page before you retune bids.

A Birmingham SaaS team ran that list and found the “demo” key event firing on the calendar widget open, not on booked slot. Ads CPA looked brilliant for 11 days. Pipeline did not move. They switched the trigger to the confirmation callback, cut the event volume by more than half, and bidding calmed down within a learning cycle. One definition. One primary conversion. That was the whole win.

When the page itself is the leak, do not add tags. Watch the session, fix the field that people abandon, then re-test the event. If you want a partner on the measurement side while you do that, the same GA4 workstream covers events, Ads import, and the landing-page handoff without turning reporting into a monthly novel.

Two patterns we see repeatedly

On B2B SaaS accounts, generate_lead often fires on every HubSpot form render. Google Ads trains on that for weeks. CRM-accepted enquiries can land around 41% of what GA4 showed. Killing the render event makes bidding look more expensive overnight - which is usually the first honest number the team has had.

On UK professional services, Consent Mode modelled conversions can look fine until they are matched to Salesforce creates in GBP. The modelled slice often does no work for sales. Those teams stop putting modelled volume on the board and treat it as directional only.

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

What useful GA4 looks like for lead-gen websites in the UK

FAQs

Should generate_lead be our only key event on a UK lead-gen site?

Only if that event is wired to a successful submit (or equivalent) and sales treats it as work. Many sites are better with a custom name plus generate_lead as a duplicate they never import. The name matters less than firing once and matching Ads.

Do we still need GTM if the Google tag is in the CMS?

Yes if you have more than a thank-you URL. Forms, tel: links, chat widgets, and consent updates are easier to keep consistent in one container when the site changes. Two tags firing the same conversion is how duplicates start.

How often should we reconcile GA4 to the CRM?

A 28-day lookback, once a week, is enough for most UK lead-gen teams. Daily matching just creates panic around weekends and modelled conversions. Investigate when the gap jumps, not when Tuesday is quiet.

Can we use GA4 ROAS as the number we show finance?

Treat it as directional. Google Ads in-platform ROAS will not match GA4’s last-click value, and neither will match CRM revenue on a long cycle. Show enquiry volume, accepted-lead rate, and cost per accepted lead in GBP. Use ROAS as a channel health check, not the close of the board pack.

What if Performance Max is the bulk of spend?

Then the quality of the imported conversion is the whole game. PMax will find cheaper volume if you feed it form starts. Feed it sales-accepted enquiries (or as close as your cycle allows) and keep asset groups pointed at matching landing pages, not the homepage.

Putting it to work

Execution sprint

This week

  1. Pull 30-90 days of performance for what useful ga4 looks like for lead gen websites (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.

Pull the last 28 days of key events next to unique website-sourced CRM records, in GBP cost if you have spend in the same window. Circle the three biggest mismatches by landing page. That is the near-term action: one reconciliation, not a property rebuild.

This week

  • Export key events and CRM creates; note the gap in writing.

  • Confirm GBP, UK timezone, and which events are marked key.

  • Fire one real form, call, and chat in DebugView; kill duplicates.

  • Check Google Ads primary conversion matches that event.

  • Run the highest-spend URLs through a Core Web Vitals checker if mobile enquiry rate lags.

Next 30 days

  • Trim key events to what sales will work.

  • Standardise UTMs on every paid URL.

  • Add lead_type (or equivalent) so reports split quote vs brochure.

  • Re-import conversions after the definition is stable; do not drip-feed changes.

HeyLead can own the unglamorous loop this piece is about: making GA4 key events match real UK enquiries and the conversion Google Ads bids on, so you are not training Performance Max on pageviews. If that gap is sitting on your board pack, Chat with us on WhatsApp.

Other free tools: Schema markup validator, H1 checker, Meta description checker.

Work with HeyLead
Free marketing audit, or reach Martin directly:
Get a free audit Connect on WhatsApp · martin@heylead.com