Getting ICP Leads in B2B SaaS Is Hard — Here’s Why

Why ICP leads in B2B SaaS are hard to generate: the volume-vs-fit gap, misleading title and company proxies, and how to fix lead gen for pipeline contribution.

Getting ICP Leads in B2B SaaS Is Hard — Here’s Why
Free pipeline audit

Pipeline,
not promises.

Senior operators audit your funnel in 48 hours. Ship 3 specific moves in 30 days.

$60M+
Ad spend managed
4.9/5
on G2 · 300+ teams
  • Full-funnel audit · 4 velocity levers
  • 3 wins to ship in 30 days
  • $3K flat · month-to-month

30-min call · No commitment

★★★★★ Trusted by PriceLabs, Trackxi, Rocketlane & 300+ B2B teams
Last Updated:

Getting Leads Is Easy. Getting ICP Leads Isn’t. Here’s Why

Any competent media buyer can lower your cost per lead. Point a campaign at broader keywords, loosen the targeting, shorten the form, and the numbers improve within a fortnight.

What usually happens next is that sales stops replying to the lead queue.

This is the most common failure pattern in B2B SaaS paid acquisition, and it is not a targeting mistake. It is structural. Four things work together to pull your campaigns away from your ideal customer, and none of them show up on the dashboard you are looking at.

Quick answer

ICP leads are hard to generate because the systems you use are built to produce the opposite:

  1. Ad algorithms optimise for the cheapest conversion. The cheapest people to convert are usually the least qualified: junior staff, tiny companies, students, competitors and the merely curious.
  2. A form fill cannot carry the signals that predict a deal. Budget, urgency, and internal consensus do not fit in an email field.
  3. The proxies you substitute are weak. Job title and company size are the two most common, and both are wrong often enough to be dangerous.
  4. Your reporting hides the drift. Cost per lead, click through rate and conversion rate all improve while fit degrades, so the problem is invisible until pipeline misses.

The tell is simple. When your lead metrics improve and your SQL rate falls at the same time, you have an ICP problem, not a performance win.

Key takeaways

  • Off-ICP drift is the default behaviour of an optimised campaign, not an error. It happens when nothing in the system tells the algorithm what a good customer looks like.
  • In GrowthSpree’s audit of 104 B2B SaaS accounts and $78.0M of Google Ads spend in 2025, broad match accounted for 47 percent of spend but only 23 percent of SQLs.
  • Average waste across those accounts was 34.0 percent, but the spread is what matters: the best managed quartile wasted 13.2 percent and the worst wasted 49.8 percent. This is a management problem, not an industry constant.
  • The two biggest causes of waste were measurement failures, not targeting failures: Performance Max running without offline conversions, and broad match without negative keyword discipline.
  • You can diagnose this yourself in about 15 minutes with data you already have.

The evidence

We audited 104 enterprise B2B SaaS Google Ads accounts covering $78.0M of spend across calendar year 2025, measuring waste against a 90 day lead-to-SQL window. Waste was defined as spend on queries that never converted, plus spend on form fills that never became a sales qualified lead within 90 days.

FindingFigure
Average waste rate34.0 percent, about $26.5M in total
Waste per account per yearRoughly $255,000
Best managed quartile13.2 percent waste
Worst quartile49.8 percent waste
Broad match share of spend47 percent
Broad match share of SQLs23 percent
Largest single waste driverBroad match without negative keyword discipline, $8.2M, 31 percent of all waste
Second largestPerformance Max running without offline conversions, $6.6M, 25 percent of waste

That broad match line is the clearest picture of ICP drift you will find. Half the budget going to a match type that produces less than a quarter of the qualified pipeline. The leads arrived. They were cheap. They were not buyers.

Reason 1: The algorithm is doing exactly what you asked

Smart bidding optimises toward the conversion action you gave it. If that action is a form fill, it will find the people most likely to fill in a form for the lowest cost.

Think about who those people are. A solo consultant evaluating tools has no procurement process and no committee to convince, so they convert instantly. A student researching a paper converts instantly. A competitor checking your positioning converts instantly. A VP at a 2,000 person company with a live budget and three internal stakeholders converts slowly, if at all, and costs five times as much to reach.

The algorithm has no way to know the second person is worth a hundred times the first. You never told it. So it buys more of the cheap ones, quarter after quarter, and your cost per lead chart looks like a success story.

This is why the fix is never “better targeting.” Targeting decides who is eligible to see the ad. Optimisation decides who actually sees it, and optimisation wins.

Reason 2: A form fill cannot carry the signals that matter

The things that actually predict a closed deal are budget authority, a live internal trigger, and the ability to build consensus among colleagues. None of these are things a person types into a form.

Gartner’s research frames B2B buying as six jobs rather than a funnel: problem identification, solution exploration, requirements building, supplier selection, validation, and consensus creation. Most buyers revisit at least one of them, so the journey is not a sequence you can read from a single event.

The relevant point for lead generation is the last job. Consensus creation is a buying job. A form fill is one person taking one action, usually early. It tells you almost nothing about whether an account is genuinely in play, because the work that determines whether a deal happens takes place between people, after the form, out of your view.

So a single lead record is a very thin piece of evidence. Treating it as the unit of qualification is the root mistake.

Reason 3: Your proxies are weaker than you think

Because the real signals are missing, teams substitute proxies. The two universal ones are job title and company size, and both fail in predictable ways.

ProxyWhy teams use itHow it fails
Job titleAvailable on the form, easy to scoreTitles are not standardised. A “Director” at a 40 person startup may have no budget; a “Manager” at an enterprise may own a seven figure line. Many real buyers fill in forms with junior titles on purpose
Company sizeAvailable from enrichment, feels objectiveSize says nothing about whether the company is in market. A perfect-size account with no trigger event is a worse lead than a slightly small one with a live problem
Email domainFilters out consumer addressesCatches the obvious, misses everything else. Plenty of qualified buyers use a personal address on a first touch
Form completenessFeels like intentCorrelates with patience, not purchasing power

None of these are useless. They are just weak individually, and most scoring models stack several weak proxies and treat the total as strong. It is not.

Reason 4: Your dashboard is hiding it

Here is the part that makes this problem so persistent. The metrics most teams report are the ones least connected to revenue.

MetricWhat it moves when fit degrades
Cost per leadImproves
Click through rateImproves
Conversion rateImproves
Lead volumeImproves
MQL to SQL rateFalls
Cost per SQLRises
Pipeline contributionFalls

Every metric in the top half of that table gets better while the business gets worse. If your reporting stops at the top half, you will congratulate your team for months while pipeline quietly erodes, and you will only find out when a quarter misses and sales tells you the leads are junk.

The diagnostic signature is divergence. Lead metrics and pipeline metrics moving in opposite directions at the same time is the single most reliable sign of ICP drift.

The 15 minute diagnostic

You can run this today with data you already have. No new tooling.

Check 1: Plot the divergence. Pull the last six months. Put cost per lead and MQL to SQL rate on the same chart. If CPL fell while SQL rate fell, you have drift. If both improved, you are fine.

Check 2: Compare match type to SQL share. In Google Ads, break spend and conversions down by match type, then join to your CRM for SQL outcomes. If broad match is taking a much larger share of spend than of SQLs, that is your leak. In our audit the average gap was 47 percent of spend against 23 percent of SQLs.

Check 3: Check whether the algorithm can see quality at all. Is Performance Max, or any smart bidding campaign, running without offline conversions imported from your CRM? If yes, the platform has literally never been told which leads were good. This was 25 percent of all waste in the audit.

Check 4: Read 20 recent lost or disqualified leads. Not a report, the actual records. Sort by disqualification reason. If one reason dominates, such as company too small or no budget, you have found the specific shape of your drift and you can act on it this week.

Check 5: Count the unqualified rate by campaign. Most teams look at lead quality in aggregate. Broken out by campaign, it is usually one or two campaigns producing the bulk of the junk. Those are the ones to fix first.

If checks 1 and 2 both come back positive, stop optimising for cost per lead today. That single change buys you time to fix the underlying system.

What the fix actually involves

The fix is a system, not a setting, and it has a required order. Skip a step and the rest does not work.

  1. Define fit from closed-won data, not from a workshop. Look at your best customers by revenue, retention and sales cycle length, and find what they share.
  2. Score the account, not the person. Because buying is done by a group, company level fit predicts closing better than individual engagement.
  3. Send the score back to the ad platforms as tiered offline conversion values. This is the step almost everyone skips, and it is the only one that changes what the algorithm buys. A score that lives in your CRM cannot influence bidding.
  4. Filter before the form with exclusions and honest landing page qualification, so poor-fit visitors remove themselves.
  5. Measure on SQL rate and pipeline, not on cost per lead.

Step three is where the loop closes. Without it, you have documented your ICP rather than acted on it, and the algorithm carries on buying the cheapest form fills exactly as before.

We cover the scoring model itself, including the rubric and the weightings, in the ICP scoring system guide. Expect four to eight weeks before platform behaviour changes, because the algorithms need a learning window. Waste reduction from filtering shows up faster, often within two weeks.

Frequently asked questions

Why is it so hard to get ICP leads in B2B SaaS?

Because ad platforms optimise for the cheapest conversion, and in B2B the cheapest people to convert are usually the least qualified. Nothing in a standard setup tells the algorithm which leads were valuable, so it keeps buying more of the cheap ones while your dashboard metrics improve.

How do I know if my leads are off-ICP?

Look for divergence. If cost per lead is falling while your MQL to SQL rate is also falling, fit is degrading. Then compare spend share to SQL share by match type and campaign. The gap tells you where the leak is.

Is this a targeting problem?

No, and this is the most common misdiagnosis. Targeting decides who is eligible to see your ads. Bidding decides who actually sees them, and bidding follows the conversion signal you send. If that signal is an undifferentiated form fill, better targeting gets overridden within weeks.

Why can’t I just filter by job title?

Titles are not standardised across companies, so the same title means very different things at a 40 person startup and a 4,000 person enterprise. Plenty of genuine buyers also enter vague or junior titles on a first touch. Title is a useful input to a score and a bad filter on its own.

What is the difference between lead scoring and ICP scoring?

Lead scoring grades a person’s engagement, such as opens, visits and downloads. ICP scoring grades a company’s structural fit, such as industry, size, revenue and tech stack. Because B2B purchases are made by a group rather than an individual, account level fit is the better predictor of whether a deal closes. Use both, for different jobs.

How much of my ad spend is likely going to non-ICP traffic?

In our audit of 104 B2B SaaS accounts and $78.0M of spend, the average waste rate was 34.0 percent, or roughly $255,000 per account per year. The spread matters more than the average: the best managed quartile wasted 13.2 percent and the worst 49.8 percent.

Should I stop trying to generate more leads?

Stop optimising for lead quantity. That is different from not wanting leads. Once you optimise for fit, volume usually drops and pipeline usually rises, which is uncomfortable to report in month one and obvious by month three. Agree the expected volume drop with your leadership before you start.

Why does Performance Max make this worse?

Performance Max has broad reach and heavy automation, so it amplifies whatever conversion signal you give it. Running it without offline conversions imported from your CRM means it optimises purely toward form fills. In our audit that single gap accounted for $6.6M of waste, 25 percent of the total.

How long before lead quality improves?

Expect measurable change four to eight weeks after qualified signals start reaching the platforms, because smart bidding needs a learning period. Savings from filtering and negative keywords appear faster, usually within two weeks.

Does this apply to LinkedIn and Meta as well as Google?

Yes, and the mechanism is identical. Any platform optimising toward a conversion event will find the cheapest instance of that event. The fix is the same: send a quality signal back, whether that is offline conversions, the conversions API, or LinkedIn’s conversions API.

Our CPL is great and sales still complains. Who is right?

Both, which is the point. The CPL number is accurate and the complaint is accurate, because a falling CPL is what off-ICP drift looks like from the media side. Resolve it by agreeing a single shared metric, usually cost per SQL or pipeline per pound of spend, that both teams report against.

What is the single fastest thing I can change?

Import offline conversions from your CRM so the platforms can see which leads became qualified. Everything else in the fix depends on that data existing, and it is usually the step that has been skipped.


Want the diagnosis run on your account?

We audit B2B SaaS paid acquisition for exactly this pattern, then rebuild the measurement so your campaigns optimise toward accounts that actually close. If your lead metrics look good and your pipeline does not, that gap is what we fix.

Book a free demo →



Sources


About the author: Ishan Manchanda is Co-Founder of GrowthSpree, a Google Partner and HubSpot Solutions Partner rated 4.9 on G2, working with B2B SaaS teams on ICP-led paid acquisition across 300+ accounts and $60M+ in managed ad spend.

Ishan Manchanda

Ishan Manchanda

Turning Clicks into Pipeline for B2B SaaS · Founder, GrowthSpree