Short answer
A good B2B lead generation strategy judges every channel on qualified pipeline and closed revenue, not form fills. Agree on lead stages with sales. Store the source on every lead and deal. Send qualified and closed-won stages back to Google Ads and Meta. Then cut campaigns that fill forms but never create opportunities.
Composite example: a 20-person B2B software company sells a $15,000-a-year product. The numbers are illustrative, not a real company. Last quarter, a broad Google Ads campaign brought 300 form fills at $80 each. Sales accepted 30, four became opportunities and one closed. That's $24,000 for one customer.
A competitor-terms campaign brought 40 form fills at $150 each. Twelve were sales qualified, five became opportunities and two closed. That's $3,000 per customer. The marketing report praised the first campaign for its cheap leads.
As one agency put it: "in B2B, the website conversion is usually a promise, not a result" (Prose, March 2026). This playbook is part of our growth playbooks by business type.
What stage is your B2B lead gen at?#
A B2B lead generation strategy is your plan for which channels bring buyers to sales, judged by the pipeline and revenue each creates.
The bands below are illustrative. Use closed deals per quarter, not lead counts, to place yourself.
| Stage | Closed deals per quarter | What's true | What breaks next |
|---|---|---|---|
| 1. Founder-led | 0–10 | The founder runs every call. Leads live in a spreadsheet or a free CRM. | No one stores where a lead came from. |
| 2. First paid lead gen | 10–40 | A marketer runs Google Ads, Meta or LinkedIn with an MQL target. | Sales ignores MQLs. Ad platforms learn to find cheap, junk form fills. |
| 3. Sales team and several channels | 40+ | SDRs work leads. Three or more channels compete for budget. | Long sales cycles hide what works. Teams argue about attribution. |
Stage 2 has a familiar problem. Marketing hits its lead target and sales misses its number. Both are right, because they count different things.

The five moves that matter most#
These are in the order I'd make them. Costs and timings are my estimates, not benchmarks.
1. Write down your lead stages with sales#
Agree on what each stage means before you change a campaign. HubSpot's default lifecycle stages are a good start (HubSpot):
- Marketing qualified lead (MQL): "qualified as ready for the sales team" by marketing.
- Sales qualified lead (SQL): "qualified as a potential customer" by sales.
- Opportunity: a contact or company "associated with a deal."
- Customer: one "with at least one closed deal."
The SQL is the first stage sales owns. That's why I'd make it marketing's main target, not the MQL. Write one sentence for each stage that both teams sign.
- Cost: two or three meetings, about four hours in total.
- Time to revenue: none directly. Every later step depends on it.
2. Store the source on every lead and carry it to the deal#
Save UTM tags and the ad click ID on each lead, and copy them to the deal. The setup is in SaaS marketing attribution: tie every campaign to real revenue.
Keep more than one view. Store first touch, last non-direct touch and a "How did you hear about us?" answer. Our guide to first touch vs last non-direct click attribution explains when to trust each one.
The self-reported field matters most in B2B. Refine Labs, a B2B agency, analyzed 620 conversions in 2023. Software credited web search with 78% of them. Buyers named web search only 12% of the time (Refine Labs). That's one agency's data, but check the gap in your own CRM.
- Cost: one to three days of marketing ops or developer time.
- Time to revenue: none directly. It makes every budget call cheaper.
3. Send qualified and closed stages back to the ad platforms#
Offline conversion import means uploading what happened after the form, like a qualified lead or won deal, to the ad platform. Then bidding chases buyers, not forms.
Google Ads has two goal types for this: "Qualified leads" and "Converted leads" (Google Ads Help). Upload click-based conversions within 90 days of the click, since Google keeps the click ID for 90 days (Google Ads Help). New builds should use the Data Manager API from June 15, 2026 (Google Ads Help).
HubSpot can sync lifecycle stage changes to Google Ads as conversions. It's available on Marketing Hub Starter, Professional and Enterprise, with limits of 5, 50 and 100 events (HubSpot).
Meta offers a Conversion Leads goal that learns from your CRM stages. The limits are tight (Meta for Developers):
- Instant Forms only, at least 200 leads a month.
- The target stage must happen within 28 days of the lead.
- That stage should convert at 1% to 40%.
- Upload at least once a day.
If you get fewer than 200 Instant Form leads a month, judge Meta on cost per SQL in your CRM instead. LinkedIn accepts qualified-lead stages through its Conversions API. See LinkedIn ads for SaaS: measure paying customers, not leads.
- Cost: two to five days of setup, or a connector subscription.
- Time to revenue: two to six weeks for bidding to adjust.
4. Judge channels on cost per opportunity, after the sales cycle#
B2B buyers do most of their research without you. Gartner research found that buyers spend only 17% of the buying journey meeting potential suppliers (Gartner, as cited by Mediafly). So a lead form is often late in a long, mostly invisible process.
So don't judge a campaign a week after launch. Find your median days from lead to closed-won, and wait that long before you cut. Until then, judge on cost per SQL.
- Cost: one hour a week to review.
- Time to revenue: one sales cycle for the first clear answer.
5. Review pipeline velocity every week#
Pipedrive gives the standard formula: "Number of opportunities × Average deal size × Win rate percentage ÷ Sales cycle length" (Pipedrive).
Illustrative example: 20 opportunities × $15,000 × 25% ÷ 90 days = about $833 of new revenue a day. Split it by source. A channel with fewer opportunities but a higher win rate can win this test.
Once a channel works, scale it in steps, checking payback each time (B2B SaaS growth strategy).
- Cost: about 30 minutes a week.
- Time to revenue: it speeds every other decision.
Which revenue numbers should you track?#
Pull deal data from your CRM and payment data from Stripe or billing. Ad platforms come last.
| Metric | Formula | Where the data comes from | Healthy range (sourced) |
|---|---|---|---|
| Lead-to-SQL rate | SQLs ÷ leads, by source | CRM | No reliable public benchmark; track the trend |
| Cost per SQL | Channel spend ÷ SQLs from it | Ad platforms + CRM | Compare channels with each other |
| Cost per opportunity | Channel spend ÷ opportunities from it | Ad platforms + CRM | Compare channels with each other |
| Pipeline created | Sum of opportunity value, by source | CRM | Track against your revenue target |
| Win rate | Closed-won ÷ closed opportunities | CRM | Track by source |
| CAC payback | CAC ÷ (new monthly revenue per customer × gross margin) | CRM + Stripe | Under 12 months SMB, 18 mid-market, 24 enterprise (Bessemer) |
In HubSpot, contact create attribution comes with Marketing Hub Professional. Deal create and revenue attribution are Enterprise only (HubSpot). On a lower plan, a deal report grouped by original source covers most of it.

What to stop doing#
Paying for MQL volume#
Pay someone per MQL and they'll find more MQLs. Sales ignores them and trust breaks. Pay on SQLs or pipeline instead. Continuing costs the fee plus sales hours on dead leads.
Training ad platforms on raw form fills#
Bidding finds more of what you reward. Search Engine Land warned that without offline conversion data, "Google's systems are prone to bringing in a lot of spam" (Search Engine Land, 2023). Each month you wait, the campaign gets better at finding the wrong people.
Running lead gen on a tiny budget#
Chris Walker of Refine Labs described the pattern: "Companies will take $2,000 and they'll go into Facebook with a lead generation mindset" (UserGems). They "collect 20 low-quality leads," he said. At that budget, I'd put the money into high-intent search or founder outreach instead.
Fighting over one attribution model#
No model is fully right, and teams can lose hours a week arguing about credit. Agree on two or three views and use each for one decision.
How to do this in Kratly#
- Connect Google Ads, Meta Ads, your website and Stripe. Kratly ties each paying customer to the campaign, page or email that brought them. LinkedIn Ads is coming soon. Until then, tag that traffic with UTMs and upload its spend as a CSV.
- See revenue and cost per paying customer by campaign. Compare what each campaign cost with the payments it brought, not its form fills.
- Connect HubSpot to bring in your pipeline. Kratly reads deals from HubSpot and ties them to the source that brought each contact. Salesforce isn't connected yet.
- Review suggestions and approve. Kratly flags spend that brings no paying customers and suggests changes. You approve them, and every change is logged and reversible.
Questions, answered
What is the best B2B lead generation strategy?
The best one judges every channel on pipeline and closed revenue, not lead volume. Start with high-intent channels such as search for your category and competitor terms. Send qualified and closed stages back to the ad platforms. Then move budget to the channels with the lowest cost per opportunity after one sales cycle.
What is the difference between an MQL and an SQL?
Marketing decides a lead is an MQL, usually from form fills, page visits or a lead score. Sales decides a lead is an SQL after checking fit and need, often on a call. Because sales owns the SQL, it's a better target for marketing. MQL counts are easy to inflate.
How do I import CRM conversions into Google Ads?
Create a conversion action with the import option, and choose "Qualified lead" or "Converted lead." Save the click ID on each lead. Then upload stage changes within 90 days of the click, at least daily. HubSpot and Salesforce both offer ways to sync this. New custom builds should use Google's Data Manager API.
Does Meta Conversion Leads work for B2B?
It can, if you qualify. Meta's Conversion Leads goal works only with Instant Forms and needs at least 200 leads a month. The stage you optimize for must happen within 28 days and convert at 1% to 40%. Judge Meta on cost per SQL in your CRM instead.
How long should I wait before judging a B2B lead gen campaign?
Wait at least one median sales cycle before judging on closed revenue. Until then, judge on cost per SQL and cost per opportunity, which show up sooner. If your cycle is 90 days, a campaign launched last month hasn't had a fair test. Cut early and you lose the channels with larger deals.
Written by
Priyansh Kumar
Priyansh Kumar has spent more than a decade in growth, scaling brands from 1 to 10 and from 10 to 100. He now builds Kratly, an autonomous growth team that ties every campaign, page and email to the revenue it brings.
Sources
- HubSpot Knowledge Base: Lifecycle stages · Sync ad conversion events with Google Ads · Attribution reporting
- Google Ads Help: Qualified leads and converted leads · Offline conversion imports FAQs · Data Manager API
- Meta for Developers: Conversions API for CRM integration (Conversion Leads)
- Gartner: The B2B buying journey · Mediafly: summary citing Gartner
- Pipedrive: Sales velocity (Sept 2026)
- Bessemer Venture Partners: Scaling to $100M
- Refine Labs: The attribution mirage (agency data)
- Prose: Offline conversion imports in B2B paid search (March 2026)
- Search Engine Land: Why Performance Max lead generation fails (2023)
- UserGems: How to win in marketing with Chris Walker of Refine Labs
Was this article useful?
