All posts
5 min readga4, lead-gen, getting-started

Setting up GA4 for a lead-gen site (it is not ecommerce)

Most GA4 guides assume you sell products. If you generate leads, the ecommerce events are the wrong model. Here is the event map that actually fits a lead-gen funnel.


GA4's defaults, documentation, and most of its tutorials assume you sell products. A lead-gen site has no items array, no revenue at purchase, and a conversion that only becomes valuable weeks later in a CRM. Setting it up well means picking a small set of meaningful events, assigning values to leads that are not yet worth anything, and closing the loop from CRM back to the ad platforms — which is where nearly all the value is.

Start with the funnel you actually have

Lead-gen funnels are shallower than ecommerce ones and the meaningful distinctions are about intent, not steps:

  1. Landing — arrival on a page with a conversion path.
  2. Engagement — scroll depth, time, a pricing page view, a case study read.
  3. Micro-conversion — a resource download, a calculator completion, a chat opened.
  4. Lead — the form submission.
  5. Qualification — happens in your CRM, not on your site.
  6. Closed — happens in your CRM, often months later.

Steps 1-4 are measurable on-site. Steps 5-6 are where the money is, and they are invisible to GA4 unless you send them back. That gap is the defining problem of lead-gen measurement.

Use generate_lead, and distinguish with parameters

GA4 defines generate_lead for exactly this. Use it, and separate different forms with parameters rather than with different event names:

window.dataLayer.push({
  event: 'generate_lead',
  form_name: 'demo_request',
  form_location: 'pricing_page',
  value: 250,
  currency: 'USD'
});

Register form_name and form_location as custom dimensions so you can break leads down by source and placement. Inventing demo_form_submit as an event name instead collects the same data and integrates with nothing.

Fire the event on submission success, not on the submit click — why that matters is the single most common lead-gen tracking error.

Assign values to leads, even though they have none yet

This is the step that separates a lead-gen setup that improves bidding from one that just counts.

A lead is not worth money at submission. But you can estimate: if 8% of demo requests close at an average of £4,000, a demo request is worth roughly £320 in expectation. Send that as the value on the event.

Do the same per form type, because the values differ enormously:

Lead typeClose rateAverage dealEstimated value
Demo request8%£4,000£320
Pricing enquiry5%£3,500£175
Content download0.5%£3,000£15
Newsletter signup0.1%£3,000£3

Now bidding can distinguish a demo request from a whitepaper download, which it otherwise treats as identical conversions. Recompute the values quarterly as your real close rates move.

Close the loop from the CRM

Estimated values are a good approximation. Actual outcomes are better, and sending them back is the highest-value work available to a lead-gen business.

The mechanism is offline conversion imports: capture the click ID at form submission, store it on the lead record, and upload the outcome when the deal closes. Bidding then optimises toward clicks that produce revenue rather than clicks that produce forms.

The prerequisite is capturing gclid on landing and persisting it through your pipeline. Without that, everything downstream is unavailable — so do it first, even before you have anywhere to send it.

Which events to mark as key events

Restraint matters more here than in ecommerce, because lead-gen sites have many plausible-looking micro-conversions.

  • Mark the real lead events — demo requests, contact submissions, qualified enquiries.
  • Do not mark newsletter signups, PDF downloads, or video views as key events unless they genuinely predict revenue. They inflate conversion counts and, if imported into Ads, actively degrade bidding.

Three to five key events is a healthy number for most lead-gen properties.

Track engagement that predicts intent

The behavioural signals that distinguish a serious prospect from a browser are worth measuring, because they are what your audiences and lead scoring should be built on:

  • Pricing page views — the strongest single predictor on most B2B sites.
  • Case study or documentation depth.
  • Return visits within a short window.
  • Calculator or configurator completion.
  • Meaningful scroll and time, defined narrowly rather than as blanket enhanced measurement noise. Engagement events without the noise covers doing this without flooding your data.

Do not put PII in GA4

Lead-gen sites handle exactly the data GA4 prohibits — names, emails, phone numbers — and the temptation to attach them to the lead event is constant. Do not. Use a pseudonymous lead ID if you need to join data later, and keep hashed identifiers scoped to Enhanced Conversions for Ads matching only. Keeping PII out of GA4 covers the consequences of getting it wrong.

FAQ

What should I use as a conversion event for a lead-gen site?

generate_lead, GA4's recommended event, with parameters distinguishing form type and location. Reserve key-event status for the forms that genuinely represent sales intent.

How do I assign a value to a lead?

Multiply your close rate by your average deal value for that lead type. Recalculate quarterly. Even a rough estimate is far better than treating every lead as equal.

Should I track newsletter signups as conversions?

Track them as events, but do not mark them as key events unless they demonstrably predict revenue. Marking low-intent actions as conversions is how bidding algorithms end up optimising for the cheapest possible lead.

How do I get CRM outcomes back into Google Ads?

Capture the gclid at form submission, store it on the lead record, and upload the closed value against it when the deal completes. Enhanced Conversions for leads is the alternative when click-ID capture is not feasible.

Can I send a lead's email address to GA4 to join with my CRM?

No — it violates Google's terms. Use a pseudonymous lead ID for joining, and keep hashed personal data scoped to Google Ads matching only.

Confirm your lead events are actually reaching GA4: the free tracking audit checks tag presence, dataLayer initialisation, and PII exposure on any URL.


See where your tracking stands

Run the same 13-check audit referenced in this post against any URL. No signup, results in seconds.

Run a free audit