This is a new page with no prior canonical URL to preserve. It focuses on one task: structuring Google Search and Local Services campaigns for a 0–5 person HVAC shop so spend matches what each job type is worth and what your team can actually pick up. It assumes you already have a Google Ads or Local Services account running or being set up; channel selection and organic ranking are handled elsewhere. Budget: 15–20 minutes to set up the lanes below, then a recurring 10-minute weekly check.
What changed in Google Ads for HVAC in 2026
- Starting August 2026, Google began migrating Local Services Ads into Google Ads as pay-per-lead Performance Max campaigns. HVAC is in this first migration wave. Manual bidding and vertical-level Target CPA are deprecated — Google now applies one Target CPA per account unless you split your campaigns by vertical or service.
- Standard and pay-per-lead campaigns bill against an average daily budget with a hard monthly cap of daily budget × 30.4, no matter how many hours your ad schedule is active.
- Seasonality adjustments in Google Ads are built for short 1–7 day conversion-rate spikes (like a heat wave), not a whole busy season — Smart Bidding already adapts to normal seasonal patterns on its own, and Google says the tool isn't reliable past about 14 days.
- Call-only ads stopped accepting new campaigns in February 2026 and existing ones stop serving in February 2027. If you're still running call-only ads for emergency repair, you need to move to Responsive Search Ads with call assets and call conversion tracking.
One mechanic worth knowing before you build anything: on Local Services Ads, you can pause your ad any time you're too busy to take new leads, and you pay only for qualified leads (calls, messages, bookings), not clicks. That pause button is your fastest seasonal lever — use it before you touch budgets.
Step 1: Split your campaigns by job type, not just by season
Because Google now applies one Target CPA per account on the new pay-per-lead campaigns unless you split by vertical, running repair, installation, and maintenance under one campaign forces all three to share a single bid target. That's a problem: a $150 tune-up and an $8,500 replacement can't tolerate the same cost per lead. Set up (or keep) three separate campaigns — repair, installation, maintenance — each with its own keywords, ad schedule, and budget, so each can carry its own Target CPA.
Step 2: Set a cost ceiling for each lane from your own margins
Use this formula per lane: Max cost per booked job = your target share of gross profit you're willing to spend acquiring that job. Max cost per lead = that number × your close rate (since you need more than one lead to land one job at a close rate under 100%). The table below is a fully illustrative worked example with invented-but-labeled assumptions, not a measured result — replace the ticket size, margin, close rate, and acquisition-cost target with your own numbers before you set a real Target CPA.
| Lane | Illustrative ticket | Assumed margin | Assumed close rate | Max cost per booked job (15% of gross profit) | Max cost per lead |
|---|---|---|---|---|---|
| Emergency repair | $750 (midpoint of a $600–$900 moderate repair) | 40% (example) | 60% (example) | $45 | $27 |
| Installation / replacement | $8,500 (midpoint of a $7,500–$9,500 AC replacement) | 25% (example) | 25% (example) | $319 | $80 |
| Seasonal maintenance | $150 (midpoint of a $75–$200 tune-up) | 50% (example) | 70% (example) | $11 | $8 |
Compare those ceilings to published 2026 benchmarks: one vendor source reports an HVAC Search average of about $89 per lead, while a separate LSA-focused vendor source cites a typical range of roughly $60–$180 per charged lead. Both are self-reported marketing-agency benchmarks, not independent audits, and the spread between them is itself the point — don't target someone else's average. In this illustrative example, the repair lane's $27 ceiling and the maintenance lane's $8 ceiling sit well below those published ranges, which is a sign that maintenance rarely pencils out as its own paid-search campaign at typical market rates; it's usually better run through reminders, bundling, or organic channels rather than a standalone Search budget. The installation lane's $80 ceiling lands closer to the benchmark range, which is why installation is usually the lane most worth defending with paid spend.
Step 3: Size the budget (and schedule) to what you can actually answer
Remember that monthly spend is daily budget × 30.4, regardless of your ad schedule — narrowing the hours your ads run to match your staffed hours does not reduce monthly spend if the daily budget dollar amount stays the same. If you can only staff phones 8am–5pm, the fix is lowering the daily budget, not just shortening the schedule.
Size each lane's daily budget to: (answerable calls per day in that lane) × (max cost per lead from Step 2). A real account example from a small-business forum shows what happens when this isn't done: one HVAC company reported getting 22 Local Services calls a day during peak season, answering only 9 of them, while being charged for all 22. That's a single anecdote, not a controlled study, but it illustrates the exact failure mode this step is meant to prevent. If your answerable capacity is lower than what a lane's budget can generate, lower the daily budget or pause the Local Services ad for that lane rather than let it keep spending.
Step 4: Use seasonality adjustments only for short spikes
Save the seasonality-adjustment tool for a true short event — a forecast heat wave or a cold snap lasting a few days — not for the start of your busy season. It's designed for 1–7 day windows and isn't reliable past about two weeks, and it's only available on certain bid strategies (Target CPA/Target ROAS on Search, Shopping, Display, or on Performance Max/App). For the actual multi-month seasonal ramp, raise each lane's daily budget directly, since Smart Bidding already adapts to normal seasonal demand patterns on its own.
Step 5: Move off call-only ads before they stop serving
If your emergency-repair lane still leans on call-only ads, no new ones can be created as of February 2026, and existing call-only ads stop serving in February 2027. Rebuild that lane around Responsive Search Ads with call assets and call conversion tracking now, so you're not scrambling to rebuild it during next year's peak season.
How to check it's working
- Weekly, pull cost per lead and cost per booked job by lane — not blended across repair, installation, and maintenance.
- Flag any lane where actual cost per lead is tracking above the ceiling you set in Step 2; lower that lane's daily budget or Target CPA before it overspends for the month.
- If a lane is generating more calls than you can answer, pause that Local Services ad or cut its daily budget rather than letting unanswered leads keep billing.
- Recheck your margin, close rate, and ticket-size assumptions each season — they're what the Step 2 ceilings are built on, and they drift as material costs and competition change.
If the leads are good but nobody's answering
The capacity mismatch described in Step 3 — paying for leads a one- or two-person team can't pick up during peak season — is the most common way HVAC paid search looks like it's "not working" when the real problem is unanswered calls, not bad targeting. That's a phone-answering capacity problem, separate from the campaign-structure decisions in this guide.