Open Tracked/Guides/GA4 lead quality tracking

GA4 lead quality tracking

A form fill is not a lead worth money. Track what happens next, send it to GA4 and to the ad platforms, and measure cost per qualified lead.

4 min read · Updated October 26, 2026

Form fill in GA4CCRM qualifies the leadStage sent back to GA4 and ads
In this guide
Key takeaways
  • GA4 sees the form fill. Your CRM knows if the lead was qualified or won.
  • Pass a lead ID with the form, then send later stages to GA4 with the Measurement Protocol and to the ad platforms.
  • Judge campaigns by cost per qualified lead, not cost per form.

Lead generation has a built-in blind spot. Analytics counts form fills, and the sales team knows that most are not worth calling. If campaigns are judged by cost per lead, the cheapest campaign wins, often by attracting the least qualified people. This page shows how to bring lead quality into GA4 and the ad platforms. It uses ideas from how to send offline conversions and GA4 event tracking.

The plan

1

Capture identifiers at the form

Client ID, click IDs, hashed e-mail and a lead ID, saved in the CRM.

2

Send the form event to GA4

generate_lead with the lead ID as a parameter.

3

Define quality stages in the CRM

Qualified, opportunity, won. Keep them few.

4

Send each stage back

To GA4 through the Measurement Protocol, with the same client ID and the lead ID.

5

Mark stages as key events

In GA4, so they appear in conversion reports and can feed Google Ads.

6

Send the stages to the ad platforms

As offline conversions to Google Ads and Meta.

Live view

Watch events arrive, live

A sample feed. In Open Tracked you see the same stream for your own store.

Measurement Protocol in brief

The Measurement Protocol lets your server send events to GA4 directly. You need the measurement ID, an API secret and the client ID of the visitor, so the event joins the right user. Store the GA4 client ID with the lead at the form. A server container can send the Measurement Protocol events when your CRM calls it. Events sent this way arrive without a browser, and carry the stage as an event name and the lead ID as a parameter.

POST https://www.google-analytics.com/mp/collect?measurement_id=G-XXXX&api_secret=SECRET
{
  "client_id": "123456.7654321",
  "events": [{ "name": "qualified_lead", "params": { "lead_id": "4821", "value": 150, "currency": "USD" } }]
}

Use the quality signal

01

In GA4

Report by source, campaign and landing page on qualified leads, not only form fills.

02

In Google Ads

Import the stage as a conversion and let bidding learn from it. See Google Ads offline conversions.

03

In Meta

Send the stage through the Conversions API. See Meta offline conversions.

04

In your decisions

Compare cost per qualified lead by campaign, and shift budget.

Trusted

Brands that grow on cleaner data

Stores and agencies use Open Tracked to see which ads earn the sale.

Pitfalls

SymptomStages do not join to the original session
Likely causeThe client ID was not saved with the lead.
FixCapture it at the form.
SymptomLead counts look doubled
Likely causeThe form event and the CRM event share a name.
FixUse different event names for the form and the stages.
SymptomValues are missing
Likely causeLeads have no value.
FixUse an estimated value per stage.
SymptomThe sales team does not update stages
Likely causeThe data is late or empty.
FixMake stage updates part of their routine.
0 of 5 done

A realistic example

A home renovation company runs ads for a quote request form. Cost per lead looks good on one campaign, at $18, and poor on another, at $45. The company sends "qualified" and "won" stages back to GA4 and Google Ads with the lead ID and client ID. A month later the picture reverses: the cheap campaign produces mostly small jobs and few wins, and the expensive one brings fewer, larger projects. Cost per qualified lead is $90 for the cheap campaign and $70 for the expensive one. The company moves budget to the second. The form count would have led it the wrong way. Lead quality data turned a plausible mistake into a good decision.

Set up in minutes

Connected in minutes

Add your domain, install the pixel, connect your ad platforms and watch the first events land.

Frequently asked questions

How do I track lead quality in GA4?

Save the client ID and a lead ID at the form, then send CRM stages back to GA4 with the Measurement Protocol.

What is the Measurement Protocol?

An API for sending events from your server to GA4.

Which stages should I send?

Qualified lead and won, sometimes an opportunity stage in between.

Can I use this for Google Ads bidding?

Yes. Import the stage as a conversion.

Do I need a server container?

It helps, because a CRM webhook can call it and it can send the events to several platforms.

Do I need spreadsheets to read my results?

No. Once tracking is live, the Open Tracked analytics shows spend, revenue, ROAS and profit, and you can ask Ari, the built-in AI assistant, questions about your own numbers in plain words. Ari's allowance depends on your analytics plan.

Is Open Tracked different from Open Track or Open Space Track?

No. Open Tracked is the official name of our server-side tracking platform, and the website is opentracked.io. Many people search for it as Open Track, OpenTrack or Open Space Track. All of them lead to the same product: server-side Google Tag Manager hosting, first-party analytics and a CRM pipeline.

Fix your tracking at the source

Open Tracked hosts your server-side Tag Manager, keeps first-party cookies alive and shows what each ad is really worth.

Open Tracked
Written by

The Open Tracked team

We build Open Tracked: server-side tracking hosting, analytics and the tools around them, for stores that spend on ads. Questions about this guide, or an idea for the next one?

Write to us Read the docs

Was this article helpful?

Comments

Loading comments...

Turn better tracking into better marketing performance

Start free