Google Ads for HVAC: 90-Day Lead Generation Playbook

Google Ads for HVAC: 90-Day Lead Generation Playbook

This Google Ads for HVAC playbook walks through how we would take a heating and cooling company from a leaky, agency-built account to a predictable lead engine over 90 days. This is an illustrative scenario based on typical accounts, not a specific client: the company, numbers, and timeline are composites built from what we see across local-service accounts in the US and Western Europe. Use it as a template, not a promise.

The short version: HVAC is one of the most expensive local verticals in Google Ads, with emergency-repair clicks commonly costing $20 to $50 in US metros and €8 to €25 in German, Dutch, or French cities. Winning accounts do not out-bid competitors; they separate emergency, install, and maintenance intent into different campaigns, track calls as conversions, and let Smart Bidding work on clean data. That is the whole playbook. The rest of this article is the detail.

The starting point (illustrative)

Picture “Northside Heating & Air,” a 12-technician company serving a mid-sized US metro, spending $6,000 per month on Google Ads through a previous agency. Monthly results before the rebuild: about 310 clicks, 38 form fills and calls counted as leads, roughly $158 per lead, and the owner’s complaint that “half the calls are people asking if we sell filters.” The account had one Search campaign with 14 ad groups, broad match on everything, Maximize Clicks bidding, no call tracking, and ads running 24/7 across a 60-mile radius.

A European equivalent, say a Dutch installer spending €3,500 per month in the Randstad, usually shows the same shape with lower click prices and a heavier mix of heat pump and “warmtepomp subsidie” queries driven by government incentives. The structure fix is identical; only the keyword themes and the price points change.

Phase 1 (days 1–14): fix tracking before touching bids

Nothing in the account could be judged because leads were counted as “form submits + any click on the phone number.” The first two weeks went entirely to measurement:

  1. Call tracking with duration thresholds. Google forwarding numbers on call assets and a call-tracking script on the website, counting only calls over 60 seconds as conversions. Short calls (wrong numbers, parts inquiries) were excluded. This alone cut “leads” from 38 to about 26 per month, which was the real number all along.
  2. Form conversions via GA4 and Google Ads. One primary conversion action for booked-service forms, with a secondary action for quote requests. The step-by-step is in our Google Ads conversion tracking guide.
  3. Lead-quality feedback. A weekly five-minute call where the dispatcher marks each lead as booked, quoted, or junk. This later fed offline conversion imports so Smart Bidding could optimize toward booked jobs, not just calls.
  4. Consent and privacy. For EU accounts this is where conversion tracking gets wired through a consent banner with Consent Mode v2; a US account typically needs only a clear privacy policy and recording disclosure on tracked calls.

Phase 2 (days 15–45): restructure by intent, not by service page

The old account mirrored the website’s menu: one ad group per service. Searchers do not think that way. An HVAC account should mirror urgency and job value:

Campaign Intent Example keywords Bidding Illustrative budget share
Emergency Repair Needs someone today “ac repair near me”, “furnace not working”, “emergency hvac” Max Conversions → Target CPA once 30+ conversions 45%
Installation & Replacement High-ticket, researching “ac installation cost”, “heat pump installation”, “replace furnace” Target CPA, higher target 35%
Maintenance & Tune-up Low urgency, recurring “ac tune up”, “furnace maintenance plan” Target CPA, low target 10%
Brand & Competitor Knows a name Own brand, 2–3 local competitors Manual CPC or Target Impression Share 10%

Within each campaign, ad groups were tightened to 5 to 10 closely related phrase-match and exact-match keywords. Broad match was kept only in Emergency Repair with Smart Bidding, where the volume justifies it. Each ad group got its own responsive search ad with the service, the city, “same-day” or “financing available,” and a price anchor where legal (“AC repair from $89 diagnostic” or “Installatie vanaf €2.950”).

Two more changes made an outsized difference. First, a negative keyword list of about 200 terms was loaded at the account level on day 15: “jobs,” “salary,” “training,” “parts,” “filter,” “DIY,” “manual,” “how to,” every brand of thermostat, and the names of nearby cities outside the service area. Our negative keyword list is the starting point we use. Second, the radius was cut from 60 miles to the actual dispatch area, with bid adjustments by zip code based on job history.

Phase 3 (days 46–90): let Smart Bidding work, then add layers

With clean conversions flowing, the Emergency campaign moved from Maximize Conversions to a Target CPA of $120 once it crossed 30 conversions in 30 days. The Installation campaign ran a higher target around $180, because a replacement job is worth ten to twenty times a repair. We cover how to pick between these strategies in the Smart Bidding strategies guide. Ad schedules were adjusted so Emergency ran 24/7 with a positive adjustment on evenings and weekends, while Installation paused overnight when nobody could answer a quote request.

In the last month, three additions were layered in:

  • Local Services Ads alongside Search, so the business appeared in the Google Guaranteed block for repair queries while Search ads covered install and maintenance.
  • Call-only ad variants in Emergency Repair for mobile searchers after 6 p.m.
  • Google Business Profile optimization: 40 new photos, service-area settings, weekly posts, and a review request flow. GBP does not directly change Search ad costs, but it lifts click-through and conversion on brand and “near me” terms where the profile shows next to the ad.

Illustrative results after 90 days

Metric Before (month 0) After (month 3)
Monthly spend $6,000 $6,000
Clicks ~310 ~260
Qualified leads (calls >60 s + booked forms) ~26 (38 reported) ~55
Cost per qualified lead ~$230 (real) / $158 (reported) ~$109
Booked jobs (dispatcher feedback) ~14 ~31
Share of junk calls ~45% ~15%

Fewer clicks, more leads. That pattern is the signature of an intent-based restructure: you stop paying for parts shoppers and job seekers, and the budget concentrates on people who need a technician. The illustrative numbers above are in line with what we typically see when an account moves from a service-page structure with no call tracking to the setup described here, but every market, season, and competitor set is different, and no agency can guarantee a specific cost per lead.

What this looks like in Europe

In Germany, the Netherlands, and France, the same structure applies with three differences. Click prices are lower, so the same €3,500 budget often buys 400 to 600 clicks rather than 250. Heat pump installation is a far larger share of install demand, and government subsidy queries (“Wärmepumpe Förderung,” “warmtepomp subsidie,” “pompe à chaleur aide”) deserve their own ad group with landing pages that explain the incentive. And consent rates after the cookie banner usually leave 60 to 80 percent of conversions measurable, so Smart Bidding needs Consent Mode v2 modeling to see the full picture. UK accounts sit closer to the US pattern, with boiler repair playing the role that AC repair plays in the US.

Google Ads for HVAC: the checklist you can apply this week

  1. Install call tracking and count only calls longer than 60 seconds.
  2. Split campaigns into Emergency, Install, Maintenance, Brand.
  3. Load a negative keyword list of at least 150 terms on day one.
  4. Cut the location target to your real dispatch radius.
  5. Write one responsive search ad per ad group with city, speed, and a price anchor.
  6. Start with Maximize Conversions; move to Target CPA after 30 conversions.
  7. Set up the dispatcher lead-quality loop and import booked jobs as offline conversions.
  8. Add Local Services Ads and optimize your Google Business Profile in month three.

FAQ

How much should an HVAC company spend on Google Ads?

Enough to generate 30 or more conversions per month per campaign, which is what Smart Bidding needs to work. In a US metro that usually means $3,000 to $8,000 per month; in Western European cities €1,500 to €4,000 is a typical starting range. Below that, run one campaign only and keep it on Maximize Conversions.

Are Google Ads or Local Services Ads better for HVAC?

Both. Local Services Ads win on emergency repair searches because they sit at the top with a Google Guaranteed badge and charge per lead. Standard Search ads win on installation and replacement, where the searcher wants to read, compare, and request a quote. Most mature HVAC accounts run both.

Why are my HVAC clicks so expensive?

Emergency intent plus high job value attracts national lead-generation companies and franchise brands into the same auction. You cannot change that, but you can avoid overpaying by splitting intent, excluding low-value queries, and letting Target CPA decide which auctions are worth entering.

Should HVAC ads run 24/7?

Emergency repair campaigns should, as long as someone answers the phone; a missed 11 p.m. call is a lost $300 to $600 job. Installation and maintenance campaigns can pause overnight.

How long until results stabilize?

Expect the first two to three weeks after a restructure to be noisy while Smart Bidding learns. Judge the new structure on 30-day windows, not day by day.

Need help with your campaigns?

If your HVAC account looks like the “before” column, our Google Ads audit (€349) shows exactly where the budget leaks, and Google Ads management (from €490/month) runs the full restructure and the ongoing lead-quality loop described here. Local visibility work is covered by Google Business Profile optimization (€279).

Want a quick read on your current account first? Request a free mini-audit or book a 30-minute call.

Want this handled for you? Fixed prices, no long-term contracts.

Free Google Ads Audit Book a Call