Skip to content
ZENOS
US home services operator · United States · Home Services

Smart Bidding was optimizing on form fills that never booked. We rebuilt tracking first — ROAS moved from 2.9× to 6.4×.

Anonymized US HVAC and plumbing operator across four metros — recovered invisible phone conversions, cut wasted spend 22%, and reached top-quartile performance on a $19k/month budget.

Outcomes calibrated from Zenos SMB benchmark data (Jul 2026); all case studies are anonymized composite engagements — not named clients.

US home services Google Ads case study — lead generation and call tracking
US home services Google Ads engagement audit findings and diagnosis
US home services Google Ads measurable campaign outcomes and ROI

01 · The Situation

This US home services operator runs emergency and scheduled HVAC, plumbing, and drain work across four metros — Phoenix, Dallas, Denver, and Tampa. Google Ads was their primary demand channel: roughly $19,000/month across Search, Local Services Ads, and Performance Max.

Dashboard ROAS hovered around 2.8–3.1× — below the 3.5× median we see for local-services SMB accounts and well under the 6.5× top-quartile benchmark for the vertical. The marketing director's frustration was familiar: spend climbed every quarter, reported conversions looked fine, but booked jobs and revenue did not move in proportion.

The dispatch team knew the truth: most jobs still closed on the phone. Form fills were a minority path. Smart Bidding was learning from incomplete signals.

02 · The Diagnosis

Day-one audit scored the account 47/100 on our Google Ads health framework — typical pre-engagement range for local-services (median peer 55). Four structural issues dominated:

Call conversions were not wired. Dynamic number insertion existed on two of four city landing pages but did not feed Google Ads as primary conversion actions. Roughly 38% of attributable conversions — our local-services baseline for invisible attribution without full call + CRM import — never reached the platform.

Conversion actions were polluted. "Submit lead form," "click to call," and a legacy GA4 pageview event all counted as conversions. Smart Bidding optimized toward the easiest signal, not booked revenue.

Campaign architecture blended incompatible intent. Emergency "AC repair near me" queries shared budget with branded and competitor campaigns. PMax asset groups covered all four metros in one bucket — hiding which cities actually converted.

Landing pages underperformed benchmarks. Service pages converted at ~2.4% vs the 5.0% median we benchmark for local-services service URLs on paid traffic. Message mismatch between ad copy and mobile landing paths added friction.

03 · What We Did

Week 1–2 · Tracking rebuild. GTM, GA4, enhanced conversions, call tracking on every money page, and offline import of CRM "job scheduled" stages. Conversion action hygiene: primary = qualified call + booked job; secondary = form submit for observation only.

Week 3–5 · Campaign separation. Branded, emergency, category, and competitor campaigns split by metro. LSA coordinated with Search — not competing for the same query intent. PMax restructured with city-level asset groups and search themes aligned to margin services (HVAC tune-up vs emergency repair).

Week 6–12 · Bid strategy and landing alignment. Smart Bidding enabled only after seven clean days of imported data. Landing page CTA paths simplified — click-to-call above fold, service-area proof per city, trust signals matching ad promises.

Waste cleanup. Applied our local-services waste benchmark (32% typical, 70% recoverable in ~30 days). Negative keyword discipline, search term exclusions, and budget reallocation from zero-conversion geo pockets recovered ~22% of monthly spend in the first month post-restructure.

04 · The Results

At 120 days, the operator stabilized at 6.4× ROAS — within striking distance of the 6.5× top-quartile benchmark for local-services Google Ads:

  • 2.9× → 6.4× ROAS on the same ~$19k monthly budget (revenue attributed via call + CRM import)
  • +31% more conversions visible to Google Ads after attribution recovery
  • Account health score 47 → 78 (tracking 30% weight in our health model)
  • Cost per booked job down 34% month-over-month once Smart Bidding trained on revenue events
  • Phoenix and Dallas emerged as highest-ROAS metros — budget shifted accordingly

The marketing director stopped asking "why did ROAS drop this week?" because weekly reporting tied platform data to CRM booked jobs — not blended form-fill fiction.

05 · What's Next

The operator is expanding Local SEO in parallel — map pack capture for non-emergency queries LSA does not own. Cross-channel coordination prevents paid and organic from bidding against the same local-modifier keywords blindly.

We are testing value-based bidding once six months of offline import history accumulates — the next ceiling above top-quartile ROAS for operators with clean measurement.

Running US home services Google Ads? See the home services & trades playbook, the multi-location & franchise structure guide, or start from Google Ads Agency United States.

We thought we had a lead problem. Zenos showed us we had a measurement problem — and fixing that changed everything Smart Bidding did.

Marketing Director
Anonymized · United States
Similar cases
Benchmark
Automotive studio Google Ads case study — multi-branch ROAS growth in Malaysia
Malaysia automotive studio · Malaysia · GOOGLE ADS

"We needed Google Ads to do more than just spend — we needed it to compound."

7.75×
March 2026 ROAS
Read full case
Read full case
Benchmark
US franchise local SEO case study — multi-location map pack visibility
US home services franchise · United States · LOCAL SEO

Twelve franchise locations. One broken GBP strategy. Map pack visibility in 90 days.

8 of 12
Locations in map pack top 3
Read full case
Read full case
Explore

Related services and markets