Skip to content
Mohammed Tahir
Writing5 min read

How to improve lead quality

Cheap leads are easy. Leads that close are a systems problem across the form, the offer, the targeting and the feedback you send back to the ad platform.

  • Growth
  • Product

Every account I've inherited with a lead-quality problem had the same shape: cost per lead looked excellent, the sales team was quietly ignoring the CRM, and nobody had told the ad platform which leads were worth anything.

Lead quality is not a targeting setting. It's what happens when four things agree with each other: what you promise, who you ask, what you ask them, and what you report back.

Start by defining the lead you actually want

Most teams optimise for "form submitted" because that's the event the pixel fires. The platform then does exactly what you asked and finds you people who like filling in forms.

Before touching anything else, write down the qualified lead in one sentence, in terms sales would recognise. Something like: a decision maker at a company with 20 or more staff, with a budget in this quarter, in a city we serve. That sentence becomes the spec for everything below. If you can't write it, no amount of campaign work will fix the pipeline, because there is no target to hit.

Send conversions back, not form fills

This is the single highest-leverage change and it's the one most accounts skip.

Fire a distinct server-side event for each stage the lead reaches: qualified, meeting booked, opportunity, closed won. Push those back to the ad platform through the Conversions API or offline conversion imports, keyed on the click ID you captured at form submit and stored in the CRM.

Once the platform is optimising toward "qualified" rather than "submitted", the auction starts buying a different person. Two practical notes:

  1. Volume matters more than perfection. Most bid algorithms need a meaningful number of the optimisation event per week. If "closed won" happens four times a month, optimise toward the deepest event that still clears a healthy weekly volume, usually "qualified" or "meeting booked".
  2. Latency matters. A signal that arrives 30 days after the click teaches the model far less than one that arrives in 48 hours. Push the earliest event that correlates with revenue rather than the truest one.

Make the form do the qualifying

There's a real tension here: every field you add costs you volume. The trick is to add fields that cost unqualified people more than qualified ones.

  • Ask one hard question. Budget range, team size, timeline. A serious buyer answers it in four seconds. A tyre-kicker bounces, which is the point.
  • Prefer typed inputs over free text. A dropdown gives you a field you can segment and report on. Free text gives you a string nobody reads.
  • Kill the autofill-only instant form if quality is the problem. Native lead forms that prefill everything are optimised for volume, and volume is not what you're short of.
  • Validate on the client and the server. Phone format, disposable email domains, obvious junk. Roughly a tenth of the noise in a bad account is simply invalid contact details.

Add one qualifying field at a time and watch cost per qualified lead, not cost per lead. The first number usually falls while the second one rises, and that's the trade you want.

Fix the promise before you fix the targeting

A large share of bad leads come from an ad that made a different promise than the landing page keeps.

If the creative says "free audit" and the page sells a 12-month retainer, you've bought a queue of people who wanted the free thing. Price anchoring in the ad itself is the bluntest fix available: naming a starting price, a minimum spend, or a company size in the creative filters the click before it costs you a lead. Cost per lead goes up. Cost per customer goes down.

The same applies to the offer ladder. A lead magnet that's useful to anyone attracts anyone. Make the magnet specific enough that only your buyer wants it.

Then, and only then, the targeting

With clean signal flowing back and an offer that filters, the platform work is mostly maintenance:

  • Build the seed audience from customers, not leads. A lookalike built on closed-won revenue behaves nothing like one built on form fills. Weight it by value if the platform supports it.
  • Exclude aggressively. Existing customers, current pipeline, past unqualified leads, and the placements that historically produce them. Audience Network, off-platform display and broad "expansion" settings are usually where the junk lives.
  • Segment by geography you can actually serve. Obvious, and still the most common leak I find.
  • Watch the landing page, not just the ad. Slow mobile pages don't only cost conversions, they change who converts. The people who wait out a five-second load are not a random sample.

Instrument it so the loop closes

None of the above survives without a report that shows cost per qualified lead by campaign, ad set and creative, refreshed without anybody exporting a CSV.

Tag every campaign so the source survives the round trip into the CRM. Capture the click ID on submit, store it against the record, and send the stage changes back out. In Looker Studio or whatever you use, put the sales stage on the same row as the ad spend. The moment one person can see both numbers together, the arguments about "marketing sends us garbage" turn into a targeting decision instead.

The uncomfortable part

Improving lead quality almost always means fewer leads and a higher cost per lead. If the person you report to is measured on cost per lead, this project will look like a failure for its first month.

Agree on the metric before you change anything. Cost per qualified lead, or cost per opportunity, ideally with a revenue number attached. Without that agreement you'll fix the funnel and lose the argument.

Building something where this is relevant? Write to me.