Case Study · Local Services Ads
JS Steam Works got seven times the leads at the same cost per lead.
JS Steam Works, an owner-operated carpet cleaner, was new to Google Local Services Ads. We launched, scaled, and then learned something about adding Search.
- Industry
- Residential carpet cleaning
- Channel
- Google Local Services Ads, then Search
- Engagement
- LSA launched November 2024
- Services
- Full service: SEO, Business Profile, website, LSA & Google Ads
- Status
- Active
19 → 138
Local Services Ads leads per quarter
November 2024–January 2025 vs June–August 2025
Source: Google Ads, Local Services campaigns
$30.62 → $31.57
Cost per lead while scaling
Volume up 7x; cost per lead up less than a dollar
Source: Google Ads, Local Services campaigns
+43%
Business Profile website clicks
143 → 205, April–September 2025 vs April–September 2026
Source: Google Business Profile performance
+25%
Business Profile calls
79 → 99, same periods
Source: Google Business Profile performance
262 → 372
Paid leads per year
October 2024–September 2025 vs October 2025–September 2026
Source: Google Ads, all campaigns
The challenge
The goal was more booked cleanings without paying for every click.
The owner wanted a dependable flow of new jobs, and didn't want to pay per click for people shopping for rental machines or DIY tips. Local Services Ads — pay per lead, with the Google Guaranteed badge — was the obvious first channel.
- Grow lead volume without the cost per lead running away
- Pay for leads, not clicks
- Keep the Business Profile pulling its weight alongside the ads
The approach
Here is what we changed.
Launched Local Services Ads
Google Guaranteed setup with services and service area configured, live in November 2024.
Scaled in steps
Budget raised gradually while watching cost per lead, so volume grew without the price running away.
Kept the Business Profile active
Profile calls and website clicks grew alongside the paid channel.
Added tight Google Search campaigns
From October 2025, Search campaigns built narrowly around specific jobs with high booking rates — not broad "carpet cleaning" traffic.
What we learned
The lesson was to judge each channel by the jobs it books.
Adding Search grew total paid leads 42% year over year (262 → 372). On the dashboard, blended cost per tracked lead went from $31.87 to $47.01 — but that overstates it. The Search campaigns target specific high-booking jobs, and their phone calls aren't tracked, so Google only counts part of what they produce. We'll always show you the dashboard number and tell you what it misses.
For you
This is the playbook we'd run for you.
Same audit, same sequencing, same honest reporting. The tactics change with what your audit finds. Your first 30 days start with a strategy call.