What HVAC Google Ads should look like
Most HVAC Google Ads accounts are set up to get calls. The ones that make money are set up to get booked jobs. This guide walks through the account the way we build it:
- Track booked jobs, not calls.
- Split campaigns by the job, not the brand.
- Pick keywords that mean someone needs a truck today.
- Build the negative keyword list before you spend a dollar.
- Fix the four settings that leak budget.
- Bid on booked jobs once you have the data.
- Run Local Services Ads next to Google Ads, not instead of them.
- Send every click to a page built for that job and that city.
The examples come from Bob Boldt HVAC in Eagan, Minnesota. Over five months on the account below, their Google Ads booked $127,354 in jobs from $30,597 in ad spend, matched click by click.
4.2xBooked revenue for every dollar of ad spend
139Booked jobs matched to a specific ad click
$220Ad spend per booked job
$0Spent on tracking software
01
Track booked jobs, not calls
Google Ads gets better at whatever you tell it counts. Tell it a call counts, and it finds more calls. In HVAC, a lot of those calls are existing customers asking about a bill, a part, or a warranty. You pay for every one of them.
When we started on Bob Boldt HVAC, they were spending close to $6,000 a month and getting eight new customers out of it. That is about $737 per new customer against a $200 target. The call count looked fine.
The fix is to send booked jobs back to Google with the dollar amount attached:
- Save the ad click ID on every form fill and tracked call.
- When a job books in your scheduling software (ServiceTitan, Housecall Pro, Jobber), send it to Google Ads with its value, matched to that click.
- Do it every day, automatically. A spreadsheet upload once a month is too slow for Google to learn from.
This runs on Google's own free tools. How it works in more detail is on our attribution page.
02
Split campaigns by the job
A $150 tune-up and a $12,000 system replacement should never share a budget. If they do, Google spends it on whichever is cheapest to get, and that is usually the tune-up. Bob's account had one campaign for every service when we found it. This is the structure we rebuilt it into:
| Campaign | What it covers | Why it stands alone |
| Repair | Furnace repair, AC repair, no heat, AC not cooling | Urgent searches. Needs to run during business hours and scale fast in a cold snap or heat wave. |
| Replacement | New furnace, AC replacement, heat pump installation | The biggest tickets. Gets its own budget so cheap clicks can't starve it. |
| Tune-ups and maintenance | AC tune-up, furnace maintenance, maintenance plans | Cheaper clicks and lower tickets. Turned up in spring and fall to fill the schedule. |
| Brand | Your company name | Kept separate so it doesn't make the other campaigns look better than they are. |
If you have more than one location, give each its own location targeting so one location's budget doesn't drain into the other's service area.
03
Pick keywords that mean someone needs a truck
The best HVAC keywords name a problem or a service plus a place. "Furnace repair Eagan" is someone with a cold house. "How does a furnace work" is a student. Start with phrase and exact match on searches like these:
| Campaign | Starter keywords |
| Repair | furnace repair near me, no heat in house, furnace not working, AC repair, AC not cooling, emergency HVAC repair, [city] furnace repair |
| Replacement | furnace replacement, new furnace cost, AC replacement, central air installation, heat pump installation, HVAC replacement [city] |
| Tune-ups | furnace tune-up, AC tune-up, HVAC maintenance plan, furnace cleaning, furnace inspection |
Broad match can work later, once Google is bidding on booked jobs and has months of data. On a new or messy account, it matches too much. Bob's account was running broad match with only 21 negative keywords holding it back.
04
Build the negative keyword list first
Negative keywords stop your ads from showing on searches that will never book. Most accounts add them after the money is gone, one search term report at a time. Build the list before launch. These are the groups every HVAC account needs:
| Who is searching | Negative keywords |
| Job seekers | jobs, careers, hiring, salary, apprentice, technician job, resume |
| Students | school, training, course, certification, classes, degree |
| Do-it-yourselfers | how to, diy, yourself, video, youtube, reddit, diagram, manual |
| Parts buyers | parts, filter, thermostat for sale, wholesale, supply, home depot, lowes, amazon |
| Wrong service | car, auto, truck, rv, refrigerator, window unit, portable |
Then read the search terms report every week for the first two months and add anything new. After that, every other week is enough.
05
Fix the four settings that leak budget
New Google Ads campaigns start with settings that help Google spend money. Check these four on every HVAC campaign:
| Setting | Default | Change it to |
| Networks | Search Partners and Display on | Google Search only. Display puts furnace ads in phone games. |
| Location | People in or interested in your area | People in or regularly in your area. "Interested in" includes people in other states. |
| Ad schedule | All day, every day | The hours someone can answer the phone or book online. |
| Call tracking | Off | Call assets with call reporting on, so every ad call gets a record you can match to a job. |
Bob's account had Display and Search Partners switched on, and some clicks were costing $200.
06
Bid on booked jobs once you have the data
Bidding is how Google decides what to pay for each click. The right setting depends on how much data the account has:
- Starting out: count qualified calls and form fills, and keep a close eye on cost per click. Google has nothing better to learn from yet.
- Once booked jobs flow back every day: switch to bidding on conversion value, so Google chases the searches that end in the biggest booked jobs.
- Give it time: Google needs a few weeks of job data before value bidding settles. Don't judge it in the first week.
This is the step that moved Bob's account. Google stopped paying for calls and started paying for jobs. Five months later, the ads had booked 139 jobs at $220 of ad spend each, and their average was more than $900 per job.
07
Run Local Services Ads next to Google Ads
Local Services Ads are the listings with the Google Screened badge at the very top of the page. They are a separate product from regular Google Ads, and they work differently:
| Local Services Ads | Google Ads (search) |
| You pay for | Each lead (a call or message) | Each click |
| Where it shows | Above everything, with your reviews and the badge | Below Local Services Ads, above the map |
| What you control | Services, service area, budget, hours | Keywords, ads, pages, bids, negatives |
| What decides your rank | Reviews, distance, and how fast you answer | Bids, ad quality, and landing page |
Run both. Local Services Ads catch the urgent "need someone now" searches, and Google Ads covers the replacement and maintenance searches where your own page and offer do the selling. Answer Local Services leads fast, because response time affects how often you show. The other ways to get leads you don't share are in our HVAC lead generation guide.
08
Send every click to the right page
An ad for "furnace repair Burnsville" should land on a furnace repair page that says Burnsville, not your homepage. The page should answer what the person searched for in the first screen:
- The service and the city in the headline.
- A phone number that tracks back to the ad.
- A short form or online booking for people who won't call.
- Reviews from customers in that area.
- The offer, if you have one: a seasonal special, financing on replacements, or a maintenance plan.
The same pages rank on their own, too. For Bob Boldt HVAC over the same five months, the website and Google Business Profile booked $419,064 with no ad click behind it. The HVAC marketing plan guide covers that side, plus how to plan your ad budget around heating and cooling season.