Skip to main content

PAID MEDIA AND DEMAND GENERATION

i run paid media as a pipeline system, not a media buy.

b2b paid media should be judged on sourced pipeline, not on clicks or cost per lead. that requires conversion definitions and a clean CRM. i install that layer first, then buy media against it.

$200M

marketing-sourced pipeline

$24M → $53M

ARR

92%

forecast accuracy, three years

15 years

inside PE-backed B2B SaaS

what b2b paid media should be measured on

most B2B paid media reporting answers the wrong question well. it reports cost per lead to two decimals. it cannot say whether those leads became revenue.

the reason is structural. the ad platform can only see what it is told, and what it is told is usually a form fill. a form fill is not pipeline. in a long B2B cycle, the gap between those two is where the budget decision lives.

so the first measurement question is not which campaign is cheapest. it is which campaign produced contacts that reached a stage a salesperson cared about.

that reframing changes the buy. campaigns that look expensive on cost per lead often look correct on cost per SQL. the cheap ones frequently turn out to be buying job seekers and students.

i have seen exactly this on a live account. Kahuna Workforce Solutions had active Google Ads spend and no view of pipeline. broken URL tracking was silently breaking attribution in HubSpot. the team could not tell which campaigns produced demos, or whether spend worked at all.

once tracking was correct, the account was legible. $100,789 in year-to-date Google Ads spend. 345 tracked contacts and 54 demo requests. 30 reached MQL or beyond, 13 reached Sales Accepted, 7 reached SQL. verified as of July 21, 2026. that is a funnel you can make a budget decision against. cost per lead alone is not.

sourced pipeline by campaign, defined once and reported monthly.

cost per stage, not just cost per lead: demo request, MQL, Sales Accepted, SQL.

the conversion volume the platform reports, reconciled against CRM contact records.

spend concentration, so you know how much of the funnel depends on one campaign.

a written record of every budget change and what it did.

the measurement layer first

nothing in a paid account can be optimized past the quality of its conversion definitions. that is the whole reason this section comes before the channel sections.

the first job is deciding what a conversion is. in B2B that is rarely the thing the account is currently optimizing toward. a whitepaper download and a demo request are not the same event. a bidding algorithm told to treat them as equal buys the cheaper one forever.

so: one primary conversion per campaign. pick the closest signal to revenue with enough volume to train on. everything else is a secondary conversion, tracked but not bid on.

the second job is CRM truth. the CRM contact record is the ledger. the ad platform is a claim about that ledger. when they disagree, the CRM wins, and the disagreement itself is the finding.

the third job is reconciliation. GA4, the ad platform, and the CRM will each report a different number for the same event. that is normal. what is not normal is nobody knowing why. that is how a tracking break survives months.

the Kahuna case is the clean example. the spend was real and the campaigns were running. the failure was upstream of any optimization decision. URL tracking was broken, so HubSpot could not attribute. no campaign-level judgment was possible.

more on why this layer comes first. see [attribution](/insights/b2b-marketing-attribution).

or see [the mql problem](/insights/why-we-dont-measure-mqls).

define the primary conversion per campaign, and bid on exactly one.

demote soft conversions to secondary, tracked but not optimized against.

verify URL tracking end to end, from ad click through landing page to CRM record.

reconcile GA4, the ad platform, and the CRM on the same event and date range.

set the attribution method once, in writing, and stop changing it.

instrument stage progression so a lead can be followed to Sales Accepted and SQL.

audit it monthly, because tracking breaks silently and nothing alerts you.

google ads and linkedin for b2b saas

the two channels do different jobs and should not be judged on the same metric.

google ads b2b saas is intent capture. someone is typing a problem, and the account exists to be there with the right page. the structure question is mostly negative keywords and match type discipline. broad match in a niche B2B category burns the budget on adjacent industries in a week.

the campaign layout follows intent tiers. high-intent product and competitor terms get their own campaigns and budget floor. problem-aware terms get a separate campaign with a lower bid and a different landing page. research terms get very little, or nothing.

linkedin ads b2b is demand creation against a defined audience. nobody on LinkedIn is searching for you. you are choosing a list and paying to be in front of it repeatedly.

that makes the LinkedIn measurement window longer and the conversion event softer. holding LinkedIn to branded search cost per SQL is a category error. it kills the channel before it can work.

budget by segment, not by channel. decide what the ICP tiers are, then allocate to the tier and let the channel serve it. an account structured by channel budget will always underfund the segment that needs both.

creative and landing pages are part of the media buy, not a separate project. the most common failure I see is a good account pointed at a generic homepage.

google: separate campaigns by intent tier. negative keyword lists maintained weekly.

google: one landing page per intent tier. message match to the ad, not the homepage.

google: conversion action set to the closest-to-revenue event with enough volume.

linkedin: audience defined by ICP tier, not by a broad job-title filter.

linkedin: longer measurement window and a softer primary conversion, stated up front.

both: budget allocated by segment first, then split across channels to serve it.

both: creative and landing page are in scope. they set the conversion rate the bid strategy inherits.

demand generation vs lead generation

the two terms get used interchangeably. they describe different systems with different reporting.

lead generation optimizes for the volume of contacts entering the database. it is measurable quickly and it is easy to scale. its failure mode: volume and quality diverge once you push past a natural ceiling.

demand generation optimizes for the number of qualified accounts that arrive ready to buy. it is slower to measure and it includes work that produces no immediate form fill.

the honest version is that most B2B SaaS companies need both, sequenced. lead generation captures the demand that already exists. demand generation creates the demand that does not.

the reporting difference matters more than the definitional one. a lead generation program judged on pipeline will look like it failed. a demand generation program judged on cost per lead will look like it failed. the metric has to match the job.

this is also where the MQL problem lives. an MQL is a scoring convention, not a fact about a buyer. treating it as a shared target between marketing and sales is what starts the blame loop.

lead generation: fast to measure, easy to scale, quality degrades past a ceiling.

demand generation: slower to measure, includes non-converting work, compounds.

the sequencing: capture existing demand first. it is cheaper and it funds the rest.

the reporting rule: match the metric to the job, or one program will always look broken.

the MQL caveat: it is a scoring convention, so never make it the shared target.

what a paid media agency sells vs what an operator installs

the b2b paid media agency model is built around media management. it does that part well. the boundary is where the contract ends.

an agency sells account management. campaign build, bidding, creative, and platform reporting. that is real work and a competent agency will beat an untrained in-house hire at it.

the structural limit is simple. conversion definitions, the object model, and attribution sit inside the client.

an agency can recommend a change to any of the three. it usually cannot make one.

that gap is exactly where the Kahuna failure lived. the media management was not the problem. the tracking upstream was. it stayed broken because it sat on the client side of the line.

an operator installs across that line. same campaign work. plus conversion definitions and CRM reconciliation. plus the authority to change the primary conversion when it is wrong.

the test is the same one question as everywhere else. when paid pipeline drops next month, who diagnoses it. and do they have CRM access.

agency scope: campaign build, bidding, creative, platform reporting.

agency boundary: conversion definitions, CRM fields, attribution, landing page ownership.

operator scope: all of it, plus the measurement layer platform metrics depend on.

agency reporting unit: impressions, clicks, cost per lead, platform conversions.

operator reporting unit: sourced pipeline and cost per stage, reconciled to the CRM.

the honest overlap: bid management and creative production are genuinely similar work. the difference is who owns the number underneath them.

the first 30 days

the first thirty days are a measurement rebuild and the first spend corrections. no new campaigns in week one.

week one is evidence. i connect the ad accounts, GA4, and the CRM. then reconcile on one event and date range. the gaps between the three are the finding.

week two is conversion definitions. what is the primary conversion, what is bid on, and whether those are the same event. this is usually where the largest single correction is.

week three is waste and structure. search terms, negative keywords, audience overlap, budget concentration, message match.

week four is the corrected buy. budget reallocated by segment and primary conversions set. the reporting line is built so next month is judged on stage progression.

want the diagnosis without the install. that is the [growth diagnostic](/growth-diagnostic). same first two weeks, delivered as a ranked list with a dollar figure per item.

day 1 to 7: reconcile ad platforms, GA4, and CRM. name every tracking gap.

day 8 to 14: set conversion definitions and the primary conversion per campaign.

day 15 to 21: waste audit, negative keywords, audience overlap, landing page match.

day 22 to 30: reallocate budget by segment and stand up cost-per-stage reporting.

what you own after

the accounts are yours and stay yours. I work inside your ad accounts, analytics, and CRM. never a reseller account that holds your history hostage.

you own the conversion definitions, attribution method, and campaign structure. also the negative keyword lists and the reporting method. written down, not held in my head.

the part worth the most is the reconciliation procedure. tracking breaks, and it breaks silently. a documented monthly reconciliation turns a six-month silent failure into a one-month one.

if the engagement ends, the account keeps running. the reporting produces the same number. that is the bar.

the ad accounts, analytics property, and CRM, in your own ownership throughout.

the conversion definitions and the primary conversion per campaign, documented.

the campaign structure and maintained negative keyword and exclusion lists.

the attribution method, stated once and reproducible.

the monthly reconciliation procedure between platforms and CRM.

a written record of every budget change and what it moved.

pricing

paid media is priced as a fixed-scope engagement, never as a percentage of ad spend.

percentage of spend is a direct conflict of interest. it pays more for spending more. the correct call is often to cut a campaign to zero.

current scopes and figures are on [pricing](/pricing).

how to start

start with the diagnosis. thirty minutes, live, on your own ad accounts and CRM, not a template audit.

you leave knowing what is broken between the click and the CRM record. and what it costs. if there is a fit, I scope the install on the spot. if there is not, the list is still yours.

book it from [growth diagnostic](/growth-diagnostic).

b2b paid media questions.

What does a B2B paid media agency typically not cover?

Conversion definitions, the CRM object model, attribution, and landing page ownership. Those sit on the client side of most contracts. That is why a tracking break upstream can survive for months.

How do you measure paid media contribution to pipeline?

Reconcile the ad platform, GA4, and the CRM on one event and date range. Then report cost per stage, not cost per lead. Stage progression through demo request, MQL, Sales Accepted, and SQL is the unit.

What is primary-conversion discipline?

One primary conversion per campaign. Pick the closest signal to revenue that still has volume to train a bid strategy. Everything softer is tracked as a secondary conversion and never bid on.

Google Ads or LinkedIn for B2B SaaS?

Both, for different jobs. Google captures existing intent and is judged on cost per stage. LinkedIn creates demand against a defined audience. It needs a longer window and a softer conversion.

What is the difference between demand generation and lead generation?

Lead generation optimizes contact volume and measures fast. Demand generation optimizes qualified accounts arriving ready to buy. It compounds slowly. Judging either on the other metric makes a working program look broken.

Why not price this as a percentage of ad spend?

Because it pays more for spending more. The correct recommendation is often to cut a campaign to zero. Percentage of spend penalizes that call.

Do you rebuild the landing pages too?

Yes, when message match is the constraint. A good account pointed at a generic homepage is the most common failure I see. No bid adjustment fixes it.

How quickly does a corrected account show results?

Waste removal and conversion fixes move cost per stage within four to six weeks. Segment-level reallocation needs a full sales cycle before the number is trustworthy.

let's find the first blocker worth fixing.

thirty minutes to name the constraint and the first useful fix.

talk to me about the blocker