Skip to main content

We Hit 88% of Client Goals In Q1, 2026. You Should Be Next 🎉

SMB Circus
Case Study·B2B Services·Paid Search

How we cut cost per qualified lead 38% for a B2B fractional finance firm.

6-month engagement (ongoing)·Google Ads + Microsoft Ads

A B2B fractional CFO and outsourced finance firm was spending $18K/month on Google Ads, generating roughly 100 leads a month, and watching the sales team flag 78% of them as unqualified. The previous agency had been celebrating lead volume in monthly reports while the partners watched calendar bookings from $400K-revenue solopreneurs ask for free strategy hours. We rebuilt the account into single-product ad groups, connected Salesforce so Google’s bidding could learn what a qualified lead actually looked like, and killed the Performance Max campaign that was eating 40% of the budget with no offline signal. Six months later, cost per qualified lead dropped 38%, the pipeline created from paid search grew 4.2x, and the partners stopped dreading the weekly lead review meeting.

−38%

Cost per qualified lead

from $760 to $471

2.8x

Sales-qualified leads

22/mo → 67/mo

4.2x

Pipeline created

$410K → $1.74M / mo

We had three Google Ads agencies before SMB Circus and all three optimized for leads. SMB Circus is the first one who optimized for clients.

Managing Partner

B2B fractional finance firm

What we walked into

The firm was eight years old, mid-market focused (clients in the $5M–$50M revenue range), and had been running Google Ads for four years through a sequence of generalist agencies. Revenue from paid search was real but had plateaued, and the partner team had stopped trusting the reporting.

Five findings from the first-week audit:

Salesforce was not connected to Google Ads.

Google had no visibility into which leads turned into SQLs, opportunities, or closed clients. Smart Bidding was optimizing toward raw form fills, which is the same as optimizing toward whoever's most likely to fill out a form regardless of fit. The sales team had been tagging unqualified leads in Salesforce for years and that signal was going nowhere useful.

One campaign called "Search — Services" with 14 keywords mashed together.

"Fractional CFO", "outsourced bookkeeping", "startup accounting", "audit prep", "R&D tax credit", and "financial modeling" were all sharing the same ad group and the same generic ad copy. The keywords had nothing in common except the word "finance" and the algorithm couldn't tell them apart.

Performance Max was eating 40% of budget with no offline conversion signal.

PMax requires reliable conversion data to bid intelligently. Without Salesforce offline conversion imports, PMax was burning spend on whoever Google's black box decided looked like a 'lead' — which included a remarkable share of accounting students researching career paths.

Every ad pointed to the same homepage.

No service-specific landing pages. A search for "fractional CFO for SaaS startups" landed on the same page as a search for "outsourced controller for ecommerce." Message match between ad and landing page was effectively zero, and the contact form on the homepage had a seven-field length that was scaring off qualified prospects.

Brand bidding had no exclusions.

The brand campaign was active but had no negative match exclusions on competitor terms or unrelated queries. Branded clicks were cannibalizing organic traffic the firm was already getting for free, and the cost-per-acquisition on brand was being reported as the headline number to make the overall numbers look better.

The previous agency had been billing $3,800/month for “lead generation” and the only metric on the monthly report was raw lead count. The partners had been asking for “cost per qualified lead” for two years and never gotten an answer.

What we did

Stop optimizing for leads. Start optimizing for clients.

Month 1Qualification signal

Rebuild the qualification signal

In B2B services, “lead” and “qualified lead” are two completely different things. The single most leveraged change we made in the first 30 days was connecting Salesforce to Google so the bidding algorithm could finally tell the difference.

  • Salesforce → Google Ads offline conversion import configured via the native integration. SQL stage, opportunity stage, and closed-won stage all flowing back to Google with click IDs preserved.
  • Server-side GTM via Stapefor first-party tracking that survives Safari ITP and Chrome’s third-party cookie deprecation.
  • Enhanced Conversions for Leads implemented (hashed email and phone passed back to Google) to recover attribution lost on devices and browsers blocking traditional pixels.
  • Conversion event hierarchy rebuilt. Five conversion actions, each weighted by pipeline stage: Discovery Call Booked > Discovery Call Held > Proposal Sent > Engagement Letter Signed. Form fills were demoted to a secondary signal. The primary optimization target became “Discovery Call Held with ICP-Fit Lead” — a Salesforce-driven event, not a website event.

Honest framing:This work alone, before we touched any campaigns, would surface 25–30% more apparent ROAS just by recovering attribution. We told the client upfront so they didn’t credit the wrong work for the wrong gains.

Month 1–2Account architecture

Single Keyword Ad Groups by service line

The architecture rebuild was the second-most-leveraged piece of work. Instead of one campaign trying to cover every service, we built dedicated SKAGs (Single Keyword Ad Groups) for each service line.

Service Line SKAGExample KeywordsLanding PageBid Strategy
Fractional CFO (SaaS)“fractional cfo for saas”, “saas cfo services”, “fractional cfo software company”/services/fractional-cfo-saastCPA
Fractional CFO (Ecommerce)“fractional cfo for ecommerce”, “dtc cfo services”, “ecommerce financial leadership”/services/fractional-cfo-ecommercetCPA
Outsourced Controller“outsourced controller services”, “controller as a service”, “fractional controller”/services/outsourced-controllertCPA
R&D Tax Credit Consulting“r&d tax credit consultant”, “r&d tax credit study”, “section 174 consulting”/services/rd-tax-credittCPA
Series A/B Finance Prep“series a finance preparation”, “vc due diligence preparation”, “fundraise financial readiness”/services/fundraise-prepMax Conversions (learning)
M&A Sell-Side Advisory“sell side financial advisor”, “m&a financial preparation”, “business sale financial advisor”/services/sell-side-advisorytCPA
Audit Readiness“audit prep services”, “first audit preparation”, “audit readiness consultant”/services/audit-readinesstCPA

Each SKAG followed strict discipline:

  • 3–5 tightly themed keywords per ad group, all variants of a single service intent
  • Exact and phrase match only for the first 90 days — broad match added only to SKAGs that had hit reliable offline conversion volume
  • Responsive Search Ads written specifically for that service line, with the headline mirroring the search query (e.g., “Fractional CFO for SaaS Startups” not “Outsourced Finance Services”)
  • One dedicated landing page per SKAG with copy, case studies, and an SDR-routed contact form tailored to that service intent

This is more work than throwing everything into Advantage+ Shopping or PMax. For B2B services it pays back every time because the qualification logic varies materially across service lines.

Month 1–2Structural decisions

Kill Performance Max, defend brand

Two parallel structural decisions:

Killed Performance Max.

PMax can work for B2B services after Search campaigns are mature and offline conversion data has been flowing for 6+ months. Launching PMax before that infrastructure exists is one of the most expensive mistakes we see in services-firm Google Ads accounts. We turned it off in week one and saw zero net negative impact on qualified lead volume — the conversions PMax was claiming credit for had largely been incremental zero.

Brand defense rebuilt.

Brand campaign restructured with explicit exclusions on competitor names and unrelated queries. Bid strategy changed from Max Conversions to manual CPC with a hard ceiling, because brand traffic is captive and Google has no incentive to bid it efficiently if the algorithm is given freedom. Brand spend dropped 60% with no measurable impact on branded conversion volume — the same conversions were going to land regardless, the previous agency was just being charged for them.

Month 2–3Negative keywords

Negative keyword discipline

B2B services Google Ads accounts bleed more spend to junk traffic than any other category we work with. The search-terms report in the first week told the full story.

Services-firm Google Ads bleeds spend to:

  • Job seekers(“fractional cfo jobs”, “controller positions”, “accounting careers”)
  • Students(“how to become a fractional cfo”, “fractional cfo certification”, “accounting course”)
  • DIY queries(“fractional cfo template”, “controller job description”, “diy financial model”)
  • Free tools(“free financial model”, “free audit checklist”, “controller cost calculator”)
  • Vendor research with no buying intent (“fractional cfo salary”, “average fractional cfo cost”, “fractional cfo vs full time”)
  • Sub-ICP queries(“fractional cfo for solopreneurs”, “fractional cfo under $1m revenue”, “personal cfo services”)

We added 380+ negative keywords in the first 30 days, organized into shared negative keyword lists by category. We then ran the search terms report weekly and added 20–40 new negatives per week for the first three months. By month four the rate of new negatives required dropped to under 10 per week as the campaigns had stabilized.

The sub-ICP negative list is the one services firms most often miss. The firm explicitly didn’t want clients under $5M revenue. Every click from a $400K-revenue founder asking about “cheap fractional CFO services” was burning $14–22. Suppressing those queries at the keyword level recovered an estimated 18% of monthly spend that was going to unqualified inquiries.

Month 3–6Bidding optimization

ICP-aware bidding via Salesforce data

Once Salesforce offline conversion data had been flowing for 90 days, the bidding algorithm had enough signal to optimize toward ICP-fit leads, not just any leads. The shift:

  • tCPA migration. Every SKAG moved from Max Conversions (optimizing for raw leads) to tCPA (optimizing toward a target cost per offline conversion — specifically, cost per Discovery Call Held).
  • Value-based bidding. Each offline conversion stage carried a weighted value (Discovery Call Held = $1, Proposal Sent = $3, Engagement Letter Signed = $10) so the algorithm learned which clicks produced the highest-value outcomes, not just the most outcomes.
  • Quarterly tCPA tightening. Started with conservative tCPA targets and tightened 10–15% per quarter as conversion volume and signal quality matured.
Month 3–6Landing page CRO

Landing page CRO

Once the campaign structure was stable, the work moved to optimizing what happened after the click.

  • Service-specific landing pages built on Unbounce for each SKAG, with copy, case studies, and social proof tailored to that specific service intent.
  • Form length reduced from seven fields to three (name, email, company revenue range). The revenue-range dropdown served as a self-qualification filter — prospects under $5M self-selected out.
  • Calendly direct bookingadded to qualified inquiries’ thank-you page, replacing the previous “we’ll be in touch within 24 hours” message. Calendly-booked discovery calls had a 2.4x higher show rate than email-confirmed bookings.
  • Form abandonment retargetingvia Google Display and LinkedIn for visitors who landed on a service page and didn’t convert. Low spend, high intent — these visitors already searched for the service and clicked.

The math

MetricBaselineMonth 6Δ
Google Ads spend$18K/mo$32K/mo+78%
Raw leads100/mo215/mo+115%
Cost per raw lead$180$149−17%
MQL → SQL rate22%31%+9 pts
Sales-qualified leads (SQLs)22/mo67/mo2.8x
Cost per SQL$760$471−38%
Discovery calls held16/mo52/mo3.3x
Proposal-to-close rate18%27%+9 pts
Pipeline created (paid search)$410K/mo$1.74M/mo4.2x
Average ACV$96K$94K−2%

On why cost per SQL dropped 38% while raw cost per lead only dropped 17%. The structural change is in the MQL-to-SQL rate. The previous setup was attracting raw leads efficiently and unqualified leads efficiently. The new setup is attracting fewer raw leads per dollar but a much higher share of them qualify. Cost per SQL is the metric that compounds in your favor when qualification rate improves, even if raw cost per lead barely moves.

On the proposal-to-close rate lift.This isn’t agency work — it’s downstream of better-fit leads reaching the partners. When the leads coming through the funnel are more likely to be in-ICP, the partners have more productive conversations and close more of what they pitch. We can’t take credit for the sales team’s close rate, but we should be honest that better acquisition makes downstream conversion easier.

On the small ACV compression.Slight downward drift because the new campaign mix pulled in some smaller mid-market clients ($5M–$10M revenue) that the previous unqualified pipeline had been suppressing. Net pipeline is up 4.2x even with the small ACV compression, and the firm’s partner team explicitly chose to keep targeting the broader mid-market band.

What we’d flag to anyone reading this

This worked because four things were already true. They aren’t always.

The firm had a clear ICP and the discipline to defend it.

Partners could say "we don't want clients under $5M revenue" and mean it. Brands that hedge on their ICP — "we'd take anyone if the fit is right" — can't run this playbook because the qualification signal stays muddy and the negative keyword list stays soft. We have this conversation in discovery and we walk away from engagements where the ICP is fuzzy.

Salesforce data hygiene was good enough to be useful.

The sales team had been tagging lead stages and lead-fit scores in Salesforce for years, even though no one downstream was using the data. If Salesforce had been a junk drawer, we would have spent the first 60 days cleaning it up before touching Google Ads. Some clients aren't willing to invest in that prerequisite, and on those engagements we're upfront that the offline conversion approach won't work yet.

There was real category search demand.

Fractional CFO and outsourced finance is a growing category with hundreds of thousands of monthly searches in the US. Services categories where buyers don't search yet (typically new or category-creator services) need a different acquisition playbook with paid social and content as the lead channels, not Google Ads.

Partner time was protected for high-intent discovery calls.

When the qualification logic improves and high-fit SQLs start landing on the partners' calendars, the partners have to actually show up to take those calls. Firms where the partners are too busy to be reachable for new business get the leads but don't close them. We coordinated with the firm's ops lead on capacity before scaling spend each step.

And a fifth thing worth naming: services Google Ads requires patience that paid social doesn’t.

The full offline conversion learning loop takes 90–120 days to mature, because the sales cycle from click to closed-won averages 75 days in this category. Operators who want week-to-week ROAS proof are better suited to a paid social engagement than a paid services engagement. We say this upfront in discovery.

Engagement details

Team on the account
1 strategist, 1 paid search specialist, 1 copywriter (RSA and landing page copy), 0.25 conversion analyst
Tool stack
Google Ads, Microsoft Ads, Salesforce, Stape (server-side GTM), Unbounce (campaign landing pages), Calendly, GA4, Looker Studio
Reporting cadence
Weekly search terms and bid strategy review, monthly executive performance review, quarterly QBR with partner team
Contract structure
3-month minimum, month-to-month after that

Ready for the same teardown on your paid search?

We’ll audit your Google Ads, Microsoft Ads, and Salesforce attribution setup, and show you where qualified leads are leaking before you commit to anything.