Why generic Google Ads waste trade and service spend
Local service demand is not one market. It is three markets stacked on top of each other: the person with a burst pipe, a dead fuse box, or an AC that quit in a heatwave; the person booking a routine service, clean, or tune-up; and the person pricing a big-ticket job — a new system, a renovation, a full treatment plan. Same business, three completely different searchers, three different margins, three different close rates. A campaign that treats them as one audience overpays for all three.
The most common account we audit — plumber, electrician, HVAC operator, cleaning company, clinic — has a single "Services" campaign, broad-match keywords, one landing page (usually the homepage), and no call tracking. It looks like it is running. Mostly it is buying clicks from people comparison-shopping a five-figure project, while the urgent $400 job — the one that actually closes on the phone in ten minutes — gets the same generic ad and the same slow homepage.
Urgent intent is the whole game in local services. "Emergency plumber", "no power", "ac not cooling", "burst pipe" — these searches convert at multiples of "[trade] near me", and they convert by phone, fast, often after hours. If your account is not built to win those specific moments, you are subsidising your competitors' emergency leads with your own maintenance budget.
The fix is rarely more budget. It is structure. Spend only follows intent when the account is shaped around intent in the first place.
The account structure we run
We build trade and service accounts on three intent tiers. Each tier is its own campaign, with its own budget and its own definition of a conversion.
Tier one is emergency and urgent work. Keywords are tight and symptom-led: "burst pipe", "no hot water", "emergency electrician", "ac not cooling", "locked out". Exact and phrase match, never broad. Ads lead with speed and availability — 24/7, same-day, on the way fast — and they point at a service-plus-suburb landing page with the phone number above the fold, not the homepage. Where a business has seasonal opposites (cooling vs. heating, for instance), split them into separately-budgeted campaigns so money can shift with the season.
Tier two is repair, maintenance, and recurring service. Lower urgency, lower ticket, but high lifetime value, because a maintenance customer becomes a repair and then a replacement customer. Keywords: "appliance repair", "ac tune up", "gutter cleaning", "pest control service", "annual service plan". Ads sell the membership, the plan, or the seasonal check. This tier runs on a tighter budget and can tolerate slightly broader match, because the searcher is calmer and the click is cheaper.
Tier three is the big ticket: installs, replacements, projects, and anything quoted. The long consideration cycle, the lowest close rate per click. Keywords: "new hot water system cost", "furnace replacement", "bathroom renovation quote", "full home rewire". This is where Performance Max earns its place — but fenced, with its own budget cap, a strong asset group per service type, and audience signals from your real customer list, so it does not cannibalise the emergency and branded terms that Search already wins cheaply.
A warning on Pmax: run it for big-ticket and brand-adjacent discovery, never as the whole account. Unfenced Performance Max in a local service account will quietly absorb your emergency conversions, take the credit, and convince you it is working. Cap it, feed it good conversion data, and keep watching what it is actually claiming.
| Campaign (intent) | Example ad groups | Keyword style | Lands on |
|---|---|---|---|
| Emergency / urgent | Burst pipe, no power, AC not cooling, emergency lockout | Exact / phrase, symptom-led | Service + suburb page, phone above the fold |
| Repair & maintenance | Appliance repair, tune-ups, cleans, service plans | Phrase, plan-led | Service or membership page |
| Install / project / quote | New system, replacement, renovation quote | Phrase + fenced Pmax | Quote page with proof and pricing anchors |
| Brand | Business name + variants | Exact | Homepage / reviews page |
Stacking LSAs on top of Search
Google's Local Services Ads sit above the regular Search results — the "Google Guaranteed" badge block at the very top of the page — and they cover most trade and home-service categories: plumbers, electricians, HVAC, locksmiths, cleaners, pest control, garage doors, and more. If your category qualifies, you want both LSAs and Search, not one or the other. They occupy different parts of the same results page, which means you can win that page twice.
LSAs are pay-per-lead, not pay-per-click, and they are gated behind license and insurance verification — which is exactly why they are worth it. Fewer advertisers clear the bar, the badge carries real trust on an urgent search, and you only pay when someone actually calls or messages. We treat LSAs as the top-of-page trust layer and Search as the precise, keyword-controllable layer beneath it.
The stack works like this: LSAs win the badge slot and the "verified, fast, local" impression. Search wins the specific symptom queries with tightly matched ads and matching landing pages. Branded Search defends your name, so a competitor's LSA does not intercept someone who already went looking for you. Together they make the whole top of the page feel like you.
One discipline decides whether LSAs are cheap or a slow leak: dispute bad leads aggressively — wrong numbers, spam, out-of-area, jobs you do not do. Google credits legitimate disputes, and the operators who treat disputing as a weekly habit pay materially less per real lead.
Call tracking and the missed-call backstop
Here is the part most local service accounts get wrong, and it has nothing to do with the campaigns. In these businesses, the conversion happens on the phone. If you cannot see which campaign, ad group, and keyword drove each call, you are optimising blind — and you will eventually switch off the campaigns that are working because they "look" unprofitable on clicks alone.
We wire CallRail into Google Ads and GTM with dynamic number insertion, so every call is attributed back to the exact keyword that earned it. Now the emergency campaign gets judged on booked jobs, not clicks, and budget moves toward what actually books.
Then the backstop. Urgent calls arrive at night, on weekends, mid-job when the crew has its hands full. In one HVAC operator's account we later wrote up as CS-014, the after-hours missed-call rate was above 60% before we touched anything — most of the emergency demand, the highest-intent calls in the entire category, hitting voicemail and dialing the next company.
That is what Echo, our missed-call agent, exists for. It texts back within nine seconds of a missed call, qualifies the job, and books or triages it. In that account it took the after-hours miss rate from 60% to 4%. You can buy all the clicks you want; if more than half the resulting calls go unanswered after hours, you are funding your competitors. The account structure earns the call. The backstop makes sure the call earns a job.
This is why we do not sell campaigns in isolation. Ads, call tracking, landing pages, and the missed-call agent are one system. Pull any single piece out and the math stops working.
What good looks like
A word before the numbers: benchmarks for trade and service accounts swing hard with category, season, geography, and how mature the account is. Treat what follows as the shape of a healthy account, not a guarantee.
Cost per lead on urgent-intent Search, in most North American metros, tends to land between $25 and $80 — lower on tight symptom keywords, higher on competitive "near me" terms. Big-ticket keywords run far higher per lead and should be judged on a longer close cycle. The number that actually matters is cost per booked job, because clicks and even leads can lie. Booked jobs do not.
Close rate is the other half of the equation. A generic account converting calls at roughly 11% and a structured account converting at 28% can spend the identical budget and still run completely different P&Ls. What moves that number is the structure, the landing pages, and the answer-rate — not the bid.
The rebuild below is one account — an HVAC operator, but the structure is the same one we run across trades and home services — so weight it accordingly. The pattern repeats: spend went up because spending finally became profitable, not the other way around. The lever was structure and answer-rate, not a bigger budget.
| Metric | Before | After |
|---|---|---|
| Google Ads spend | $1,500 / mo | $6,800 / mo |
| Qualified inbound leads | Baseline | 3.4× / month |
| Close rate | 11% | 28% |
| After-hours missed-call rate | 60% | 4% |
| Cost per booked job | $112 | $66 |
| Pipeline | Referral-only | Booked out 6 weeks ahead by month 3 |
Where to start
If you are running Google Ads for a trade or service business today and cannot answer "which keyword booked my last ten jobs," start there — not with new campaigns. Get call tracking in before you spend another dollar, because you cannot fix what you cannot see.
Then split the account by intent: pull emergency and urgent work out of the generic campaign, give it its own budget and symptom-led keywords, and send it to a real service-plus-suburb landing page with the phone number above the fold. Fence Performance Max to the big-ticket tier. Add Local Services Ads for the trust slot if your category qualifies. Put a missed-call backstop behind all of it.
That is the structure we run, and it is the same structure behind the numbers above. If you want it mapped against your own account, our growth audit is free and specific — we will show you where the spend is leaking and what the booked-job math could look like.
