Skip to main content
TrackingConsulting
PlaybookHVAC· 11 steps · free to use

Google Ads for HVAC companies: the build order

Written for an owner or the ops manager running the schedule. Keyword buckets, the negative list to load on day zero, the ad group structure, ad copy inside Google's character limits, and the weekly hour that keeps it honest — in the order you would actually build the account.

The auction
Demand is weather-driven and spiky. The first heatwave triples CPCs overnight, and the accounts that win are the ones already warm when it hits rather than the ones switching on that morning.
The conversion
a completed, invoiced job
Source of truth
your job management system (ServiceTitan, Housecall Pro, Jobber)
Costliest mistake
Counting booked calls as conversions when the money is in the completed job. A booked estimate is a van, a technician and an hour already spent.

Written by Ariful Islam — eight years building Google Ads accounts and the conversion tracking underneath them.

Read this before step one

Google Ads does not fail on its own. It fails on top of three things that were already broken.

  1. 01

    Conversion tracking that reports the truth

    If Google is counting form fills rather than a completed, invoiced job, every bid it makes is aimed at the wrong outcome. First-party, server-side, joined back to your own system — not a browser tag that a consent banner or a cookie policy can silence.

  2. 02

    A landing page that answers the search

    One page for every ad group means the page answers a general question when the search asked a specific one. Google scores that as poor landing page experience and charges you more per click for it.

  3. 03

    The right campaign for the goal

    Performance Max on a broken signal spends faster and explains less. Search first, on a conversion you trust, then expand — in that order, because the order is not a preference.

Get all three right and the playbook below compounds. Get the first one wrong and everything below is executed perfectly in the wrong direction — which is the single most expensive thing that happens in this channel.

Not sure which of the three is wrong on your account? Send it over and we will tell you what it is actually reporting.

Decide what counts as a conversion before you spend anything

For HVAC companies the conversion that matters is a completed, invoiced job, and it lives in your job management system (ServiceTitan, Housecall Pro, Jobber) — not in the ad platform. Google can only optimize toward what you send it, so whatever you pick here decides what the algorithm spends the next ninety days chasing. Pick the wrong one and every later step in this playbook is executed perfectly in the wrong direction.

Google will spend ninety days chasing whatever you tell it to count. That decision is made here, in five minutes, before any money moves.
WHAT THE BIDDING ALGORITHM LEARNS FROMSearchthe query is typedClickyou are charged hereForm or callwhat Google counts todayjob managementsystemwhere money is decidedthe outcome, sent back as the conversionWithout the dashed returnGoogle optimizes toward step three and buys more form fills, cheaper —including every one that never becomes a completed, invoiced jobIt reports that as an improvement, because by its own measure it is one.
The full path runs through your job management system (ServiceTitan, Housecall Pro, Jobber). Google sees only as far as step three unless you build the return, and it cannot want what it cannot see.
  1. 01Write down the single event that means money: a completed, invoiced job.
  2. 02Find where that event is recorded today. For most of this industry that is your job management system (ServiceTitan, Housecall Pro, Jobber).
  3. 03Check whether that system can be joined back to a click — a GCLID field, an email, or a phone number captured at the form.
  4. 04If it cannot, fix that before you launch. An account optimizing toward form fills is optimizing toward the wrong thing the moment the form is easy to fill.
  5. 05Set the conversion action to the real one, and mark every softer action as secondary so it reports but does not bid.

Turn off the three defaults before you turn the campaign on

Google enables these on every new Search campaign, and none of them are keyword decisions — they are switches on the settings screen that decide where the money goes before a single keyword applies. Everything else in this playbook operates on whatever is left after they have taken their cut, so a reader who skips this step spends the rest of it optimizing a remainder.

Three switches decide where the budget goes before a single keyword is involved. All three are on.
YOUR DAILY BUDGET, BEFORE ANY KEYWORD APPLIESThe searches you meant to buySearch partnersOn by default. Your ads run on sites that are not Google.Display expansionOn by default. A Search campaign starts buying banners.Presence or interestThe location default. People merely interested in your area.Turn all three off before launch. Add them back later, separately,when you can see what each one contributed on its own.
All three are enabled by default on a new Search campaign, and none of them are keyword decisions — they are switches on the settings screen. The proportions here are illustrative; the defaults are not.
SettingWhat Google defaults it toSet it to
Networks — search partnersIncluded. Your ads run on sites that are not Google.Off at launch. Add it back later, as its own campaign, when you can see what it contributed on its own.
Networks — display expansionIncluded. A Search campaign quietly starts buying banner placements.Off. Display is a different intent and a different campaign; mixing them makes both unreadable.
Locations — targetingPresence or interest — people merely interested in your area count.Presence only. Under Location options, choose people in or regularly in your targeted locations.
AudiencesObservation, which measures without restricting.Leave on observation deliberately, not by accident. If you meant to narrow, you have to switch the mode.
BiddingMaximize clicks, or a target set before any data exists.Maximize conversions on the real conversion action. A target set on day one is a guess the algorithm will honor.

Build the keyword list in four buckets, not one

One flat keyword list is why most accounts in this vertical cannot tell which half of the budget works. Sorting terms by the intent behind them means you can bid, write and judge each group on its own terms — a problem-aware search and a competitor search convert at rates that have nothing to do with each other, and averaging them hides both.

BucketTerms to build on
Commercial intentReady to buy. Highest CPC, highest conversion rate. Exact and phrase only.
  • ac repair near me
  • furnace replacement cost
  • hvac installation [city]
  • emergency ac repair
Problem-awareSymptom searches, before they know what they need. Cheaper, longer to convert.
  • ac blowing warm air
  • furnace won't turn on
  • ac making loud noise
CompetitorPeople shopping you against someone specific. Low volume, high margin.
  • [franchise] hvac reviews
LocalProximity intent. Where most of the budget goes if you let it.
  • hvac near me
  • ac repair [suburb]
  • 24 hour hvac [city]

Match types, and why exact has not meant exact since 2021

Exact match includes close variants — misspellings, plurals, reordered words, dropped function words. Phrase match now behaves roughly like the old broad-match-modified. Broad match reaches as far as Google judges useful, which with a good conversion signal is genuinely valuable and without one is an open tap. Start narrow, prove the signal, then widen — in that order, because widening is reversible and a mistrained bidding algorithm is not.

WHAT EACH MATCH TYPE LETS INBroadac repair near mePhrase"ac repair near me"Exact[ac repair near me]That search, plus plurals, misspellings,reordered words and dropped function words.Not literal. It has not been since 2021.Phrase addswordings you neverwrote, same meaning.Broad addswhatever Google judgesrelated. No ceiling.ALSO IN THE OUTER BANDhvac jobshvac technician salarySame cost per click as thesearches you meant to buy.Launch on the inner two. Widen only once the conversion signal is one you trust.
Each match type contains the one inside it and adds a band you did not choose. Exact has included close variants since 2021, so even the innermost box is not literal — and everything in the outer band is bought at the same cost per click as the searches you meant.
  1. 01Launch on exact and phrase only. You are buying data you can read, not volume.
  2. 02Give broad match its own campaign when you add it, so its spend and its search terms are separable from everything else.
  3. 03Keep 5 to 10 tightly themed keywords per ad group. When you want an eleventh, that is usually a signal to build another ad group instead.
  4. 04Do not add the same keyword in three match types in one ad group. Google picks by relevance, not by your match type ladder, and you are only making the report harder to read.

Load the negatives before the first click, not after the first invoice

Every vertical has a set of searches that look commercial and are not. In HVAC companies those are job seekers, students, people looking for free help, and DIY researchers. Broad and phrase match will find all of them for you. Add this list at the account level on day zero — the first week of an unfiltered account is the most expensive week it will ever have.

Account-level negatives — paste into Shared library
  • hvac jobs
  • hvac technician salary
  • hvac apprentice
  • hvac school
  • hvac training
  • hvac certification
  • epa 608
  • how to become an hvac tech
  • hvac courses near me
  • diy ac repair
  • fix my own ac
  • how to clean ac coils
  • ac not cooling diy
  • furnace troubleshooting yourself
  • hvac parts
  • hvac supply house
  • ac units for sale
  • furnace for sale
  • condenser fan motor price
  • capacitor replacement part
  • home depot ac
  • lowes air conditioner
  • window unit
  • portable air conditioner
  • mini split diy kit
  • hvac wholesale
  • hvac software
  • dispatch software
  • hvac marketing
  • hvac business for sale
  • wikipedia
  • reddit
  • youtube
  • manual pdf
  • wiring diagram
  • free
  • cheap
  • jobs
  • salary
  • training
  • course
  • used

One ad group per intent, and no more than you can write ads for

Ad groups exist so the ad can match the search. The moment a group holds two intents, the ad has to be vague enough to cover both, and vague ads lose the auction on relevance before budget ever enters the picture. Build these groups, each with its own ads and its own landing page.

WHAT TO BUILDSearch campaignbudget · location · schedule live hereEmergency repair5–10 keywords, one intentits own responsive adits own landing pageReplacement / insta…5–10 keywords, one intentits own responsive adits own landing pageMaintenance plans5–10 keywords, one intentits own responsive adits own landing pageWHAT MOST ACCOUNTS HAVEOne ad group — Emergency rep… · Replacement /… · Maintenance p…One ad covering all of them. One page answering none of them.
Each ad group carries its own ad and its own landing page, so both can answer one search. Collapse them and the single ad has to speak to every intent at once — which is the same as speaking to none of them.
  1. AG01

    Emergency repair

    Now-intent, best conversion rate, bid hardest

    • emergency ac repair
    • 24 hour hvac near me
    • ac repair open now
  2. AG02

    Replacement / install

    Highest ticket, longer consideration

    • furnace replacement cost
    • new ac unit installation
    • hvac system replacement
  3. AG03

    Maintenance plans

    Recurring revenue, cheap clicks

    • hvac tune up
    • ac maintenance plan
  4. AG04

    Symptom

    Catch the problem before they name the service

    • ac blowing warm air
    • furnace not heating

Responsive search ads that the landing page can actually back up

Google rewards assets that match the search and the page behind it. It penalizes — and increasingly disapproves — copy that promises something the page does not deliver. Every line below is written to be provable on arrival. Character counts are shown because assets over the limit are rejected at upload, which is where most copied-from-a-blog ad copy dies.

Headlines · max 30 characters
  • Same-Day AC Repair18/30
  • Techs On Call 24/718/30
  • Upfront Pricing, No Surprises29/30
  • Licensed & Insured in [City]28/30
Descriptions · max 90 characters
  • No cool air? A licensed tech can be out today. Flat-rate price quoted before work.82/90
  • Replacement quotes in writing, financing available, and we service what we install.83/90

Why the advertiser bidding the most is often third

Position is not bought, it is earned and then paid for. Google ranks you on your bid multiplied by how good it expects your ad and landing page to be, plus your assets — so a relevant advertiser at half the bid outranks a vague one, and then pays less per click at the same position. This is the mechanism underneath everything above: tight ad groups and honest ad copy are not tidiness, they are the discount.

Position is not bought. A relevant advertiser at half the bid outranks a vague one — and then pays less for the click.
AD RANK = BID × AD QUALITY27303636AD RANK$4.00bid9/10qualityAdvertiser ATop of page30AD RANK$6.00bid5/10qualityAdvertiser BSecond27AD RANK$9.00bid3/10qualityAdvertiser CThirdQuality wins the position and then discounts the click — you pay the rank below you ÷ your own quality.
Height is where the ad lands. Width is what the advertiser bid. C bids more than twice what A bids, and comes third — then pays more per click for the worse position, because price is set by rank divided by your own quality. The numbers are illustrative; the reversal is the point.
  1. 01Read Quality Score as a diagnostic, not a target. The 1 to 10 number is not what runs the auction; the three components underneath it tell you which of ad copy, keyword grouping or landing page is dragging.
  2. 02Ad relevance low? The ad group holds more than one intent. Split it.
  3. 03Landing page experience low? The page is not answering the search — usually because one page is serving every ad group.
  4. 04Expected CTR low? Your ad is not the one being clicked. Rewrite the headlines against the actual search terms, not against the keyword.

Bidding, and the point at which you are allowed to change it

Maximize Conversions on completed jobs, with a budget schedule that ramps ahead of forecast heat. Dayparting matters more here than in most verticals — an emergency ad that runs when nobody answers the phone is money set on fire. Smart bidding is a data problem before it is a strategy problem: with thin or wrong conversion data it will confidently optimize toward noise, and it does that faster than a manual account can lose money.

What to judge, and when you are allowed to judge it

Most accounts are killed or rescued on evidence that could not have meant anything yet. The bidding algorithm is fitting a model, and a model fitted on two weeks of data is fitted on noise. This is the shortest honest schedule: what to look at each stretch, and — more usefully — what to ignore.

The first month buys data. The second corrects for it. The third is the first one worth judging.
  1. 01Weeks 1–2 — watch search terms and nothing else. Add negatives daily. Cost per conversion at this stage is not a number, it is a rumor.
  2. 02Weeks 3–4 — the first real read on which ad groups get impressions. Pause nothing on conversion volume yet; fix relevance where the ad and the query disagree.
  3. 03Weeks 5–8 — conversion data starts to mean something. If you are near thirty conversions in thirty days, a target becomes an option. If you are not, the answer is a narrower footprint, not a lower target.
  4. 04Weeks 9–12 — the first period worth judging on cost per outcome. Compare against your own system, not the Google column, and expect the two to disagree.
  5. 05Only now: consider broad match, Performance Max, or a second market. Each of them needs the signal you spent the quarter building.

The weekly hour that decides whether this works

An account left alone drifts toward the cheapest clicks it can find, because that is what the system is built to do when nobody corrects it. This is the shortest routine that keeps it honest. It takes about an hour and it is the difference between an account that compounds and one that plateaus at month three.

  1. 01Search terms — DIY and parts queries appear constantly
  2. 02Call answer rate by hour; pause hours you cannot cover
  3. 03Booked vs completed by campaign, from the job system
  4. 04Average ticket by ad group — is replacement getting its share?

When Google Ads is the wrong answer here

Three situations where running this playbook will lose money. Read them before you fund the account, not after.

  • You cannot yet record a completed, invoiced job against the click that caused it. Run the account blind and you will spend three months teaching Google to buy the wrong outcome — fix the measurement first, it is cheaper.
  • You do not have the capacity to serve what the campaign brings in. Paid search turns on demand faster than most HVAC companies can staff for it, and a lead you answer four days late costs the same as one you close.
  • Your budget cannot sustain thirty conversions a month in this auction. Below that, smart bidding never leaves the learning phase and you are paying auction prices for a sample size that cannot teach you anything.

Questions this raises

How much should I budget to start?
Enough to buy roughly thirty conversions a month at your vertical's cost per click, and enough runway to spend it for three months. Anything less and you are funding a test that cannot reach significance. Work backwards from your own numbers rather than from a figure in an article.
Should I use Performance Max instead of Search?
Not first. Performance Max needs a working conversion signal to be worth anything, and it will not tell you which of its channels spent your money. Get Search profitable on the real conversion, then let PMax expand on top of a signal you trust.
Why does my current agency's report look better than your job management system (ServiceTitan, Housecall Pro, Jobber)?
Because the ad platform counts what it can see, on its own attribution window, and it credits itself generously. Your own system counts what actually happened. When those two numbers disagree, the second one is the one you bank. Reconciling them is the single highest-leverage thing most accounts have never done.
Can I run this without server-side tracking?
You can start. You will lose signal as browsers keep shortening cookie lifetimes and blocking third-party requests, and the loss is not evenly spread — it hits the conversions that take longest to close, which in HVAC companies are the valuable ones. First-party server-side tagging is how you keep sending Google the outcome instead of the click.
How long before I know whether it works?
Three months, honestly measured. The first month buys data, the second corrects for it, and the third is the first one worth judging. Anyone promising a verdict in three weeks is reading noise.

Five problems we get called in to fix

Every one of these arrived as “the campaign has stopped working”. None of them were the campaign. If you recognize your own symptom here, the cause is probably the one sitting next to it.

01

The Google Ads column says forty conversions. Your own system shows eleven.

What is actually happening

Google is counting the form fill or the phone tap. It has never been told which of those became a completed, invoiced job, so it cannot tell the difference and neither can your report.

What fixes it

Send the outcome back from your job management system (ServiceTitan, Housecall Pro, Jobber) as the conversion, with the click ID attached. Bidding starts chasing the thing you get paid for instead of the thing that is easy to count.

02

Cost per lead looks fine and the leads are worthless.

What is actually happening

Smart bidding is doing exactly what it was told. Optimize toward the cheapest conversion and it will find the cheapest people — which in practice means the least committed ones.

What fixes it

Give the conversion a value, not just a count. The algorithm can then tell a $200 outcome from a $4,000 one, which is the only way it stops buying volume.

03

Spend climbs every month, revenue does not follow.

What is actually happening

Usually search partners, display expansion and presence-or-interest targeting still on from launch, plus a search terms report nobody has read since. The account is buying reach it was never asked for.

What fixes it

Turn the three defaults off, work the search terms report properly, and rebuild the negative list. This is the least glamorous fix on this page and it is usually the biggest one.

04

Conversions collapsed and nothing in the account changed.

What is actually happening

The tracking broke, not the campaign. A site update, a consent banner change, or a browser tightening cookie rules — the tag stops firing and the algorithm reads the silence as failure.

What fixes it

First-party server-side tagging, so the measurement does not depend on a third-party cookie surviving in the browser. Then monitoring, so the next break shows up as an alert instead of a quarter.

05

The ads are fine. The page they land on is not.

What is actually happening

One landing page serving every ad group. The search asks a specific question and the page answers a general one, which Google scores as poor landing page experience and charges you for.

What fixes it

A page per intent that repeats the words in the ad, with the action above the fold and nothing else competing for it.

Or we run it for you

Eight years of Google Ads, on top of tracking that reports the truth.

Most agencies will run the campaign and take your word for what a conversion is. We build the measurement first — first-party, server-side, joined back to your job management system (ServiceTitan, Housecall Pro, Jobber) — and then manage the account on a signal we can both trust. It is the same reason the playbook above starts with the conversion rather than the keywords.

  • Account build or rebuild, structured the way this page describes
  • Conversion tracking wired to your job management system (ServiceTitan, Housecall Pro, Jobber), not to form fills
  • Server-side, first-party tagging so the signal survives the browser
  • Landing pages that answer the ad, one per intent
  • Monthly reporting against your own numbers, not the Google column
  • The search terms report worked every week, not quarterly

The first conversation is a read of what your account is actually reporting. No deck, and nothing to sign to get it.