Bid by the clock, because a 4pm Perimeter crawl kills the same day slot
An ad schedule that ignores traffic buys clicks for appointments you cannot honor.
A click at 8am and a click at 4:30pm are worth different amounts to an HVAC company here, because one can still become a same day job and the other usually cannot. If a call at 4:30 means crossing I-285 in the worst hour of the day, the booking either slips to tomorrow or arrives late.
Pull the dispatch record before touching bid adjustments. Which hours produce jobs that actually got run that day, and from which direction. Most accounts we look at have never had that question asked of them.
Adjust in both directions. Bid up the morning hours when a truck can still be routed profitably, and pull back the late afternoon in the zones that require a long haul. The point is not to spend less. It is to spend where the click can turn into work today.
Weekends are a separate decision, not a copy of weekdays. Traffic patterns differ, the caller's situation differs, and the on-call cost of answering differs.
No-heat in January and no-cool in July are two different auctions
The same account cannot serve both seasons with one set of keywords, ad copy and landing pages.
Two demand peaks mean two campaign builds. Winter brings furnace failures, heat pumps running on backup heat and pilot and ignition questions. Summer brings compressor failures, refrigerant questions and systems that cannot keep up. The searcher's urgency is similar; almost nothing else is.
Keep emergency intent and replacement intent apart, because the economics differ. Emergency terms are expensive and convert fast into a service call. Replacement terms convert slowly, cost more per click and produce far larger tickets. Mixing them in one campaign means one of the two silently starves.
Ad copy has to match the season on the ground, not the season on the calendar. The first hard cold night of the year and the first sustained hot stretch both move demand suddenly, and an account still running the previous season's copy loses the auction on relevance.
Landing pages should follow the same split. Sending furnace searches to a general heating and air page wastes the intent you just paid for.
Home warranty and new construction clicks are the ones that never invoice
Most wasted spend in an HVAC account is traffic that was never going to become billable work.
Home warranty holders are a large and expensive category. They search like a customer, click like a customer, and then ask whether you are in their network. Unless you take that work deliberately, it belongs on the exclusion list along with the warranty company names.
Builder and new construction terms behave the same way. So do parts and model number lookups, DIY repair questions, filter sizes, window units, portable units, and anyone searching for technician jobs. Each of those has a distinct query pattern and each is worth excluding explicitly rather than hoping a broad match learns.
Build the negative list from your own search terms report every week for the first stretch, then monthly. It is the part of the account that compounds, and it is the part most agencies stop maintaining after month three.
Watch for competitor brand traffic in both directions. Sometimes it is worth buying and sometimes it is people trying to reach a company you are not. Read the actual queries before deciding.
Ring the map by how far a van gets by 3pm, not by miles from the shop
Geographic targeting should be drawn from dispatch capability, and dispatch capability here is a function of the hour.
A twenty mile circle around a shop in Sandy Springs includes places that are a straightforward run and places that are effectively unreachable in the afternoon. Paying the same amount for both is a slow leak.
Split the metro into zones you can defend. Inside the Perimeter, the northern arc through Dunwoody and Roswell and Alpharetta, the Cobb side through Marietta, the Gwinnett corridor. Give each zone its own bid adjustment, and be willing to run one at a loss only if it is a deliberate expansion decision.
Set location targeting to people in or regularly in your zones, not people who showed interest. Interest targeting will hand you clicks from someone in another state researching a property here, and those rarely book.
Say the coverage out loud in the ad. Naming the specific suburbs you serve costs you clicks from people you cannot help, which is exactly the point.
Budget follows two peaks and two troughs, so stop spending in even twelfths
Even monthly pacing is the default in most accounts and it is wrong for a two-season market.
Demand here arrives in bursts: the first sustained cold, the first sustained heat, and the tail of each. Spending the same amount in April as in July means overpaying in the quiet months and running out of budget exactly when the auction is worth winning.
Pace against dispatch capacity, not just against the calendar. There is a point in a heat wave where more leads produce longer arrival windows and worse reviews rather than more revenue. Slowing down at that point is a profitable decision.
Hold back a reserve for weather events. A hard freeze changes the auction inside of a day, and an account with no headroom cannot respond.
Review pacing weekly during the peaks and monthly in the shoulders. Weekly review of a quiet April is theater.
Ask what a released changeout cost, not what a form fill cost
Cost per lead is the easiest number to report and the least useful one to run a business on.
The chain that matters runs click, call, booked appointment, run job, sold work. Every step loses some volume, and the loss rate differs sharply between campaigns. A campaign with a cheap cost per lead and a terrible booking rate is more expensive than it looks.
Connect the ad platform to the dispatch record, even if the connection is manual at first. A weekly reconciliation of lead source against jobs run is unglamorous and it is the single highest-value reporting habit in a paid account.
Report cost per booked job by zone and by season. Those two cuts usually reveal that one geography is subsidizing another, which is a decision for the owner to make consciously rather than by accident.
Repair and replacement should be priced separately in the report. A campaign that buys service calls at a good price may be a poor use of money if the same budget in replacement terms buys changeouts.
Questions we actually get
- What should we budget to start?
- It depends entirely on your average ticket, your close rate and how much dispatch capacity you have spare, so any figure quoted before those are known is invented. The more useful framing is capacity: work out how many additional jobs per week you can run without hurting arrival windows, then buy toward that number and stop. We would rather start narrow in one zone and expand than spread a budget thin across the metro.
- Do Local Services Ads make sense for us?
- They are worth evaluating, and they run on a different model from search ads, with screening requirements around licensing and insurance. Eligibility and the specifics of what Google asks for change over time and are worth confirming directly with the program terms and with your insurer. Where they work, they tend to complement search rather than replace it.
- How much of the budget should go to replacement versus repair?
- Run them as separate campaigns first so the question can be answered with your own data rather than a rule of thumb. Repair terms are usually cheaper per click and faster to convert; replacement terms cost more and produce larger jobs. After a season you will be able to see which produces better cost per booked job, and the answer differs by company depending on how well the team sells replacement on a service call.
- Should we bid on competitor names?
- Sometimes, and it should be a deliberate test rather than a default. Read the actual search terms first: some competitor traffic is genuine shopping and some is people trying to reach a specific company for an existing job. Keep the ad copy factual and do not use another company's name in the ad text itself.
- Why is cost per lead going up?
- Usually one of three things: the season shifted and the auction got more competitive, the geography expanded into zones with weaker intent, or the negative keyword list stopped being maintained and cheap irrelevant traffic stopped absorbing impressions. Look at cost per booked job before reacting. A rising cost per lead alongside a steady or falling cost per booked job is often an improvement, not a problem.