CPR West Covina Logo

$21 per booking on our own account

Google Ads for Local Service Businesses

We run Google Ads for local service businesses using the same structure we run on our own account, where a booking costs $21 and the return on ad spend is 596%.

  • 01$21 per booking on our own account
  • 02596% ROAS and 9.5% CTR
  • 03Found and fixed a 29% conversion under-report
4.9 from 300+ Google and Yelp reviews on our own local service businessWe spend our own money in this account first

Assembly

How we run a local Google Ads account

Six steps, in this order. Nobody touches a bid until step 1 is finished.

6 steps

  1. Fix the tracking first

    No bid changes until the account can see real bookings and calls.

  2. Split the buyers apart

    Emergency buyers and get-three-quotes planners get separate campaigns.

  3. Build tight ad groups

    Mostly exact match, one service intent per group.

  4. Cover near-me and cities

    Shared phrase term plus two exact city keywords per group.

  5. Load the negative lists

    DIY searches, job seekers, and services you do not offer never get a click.

  6. Feed sales back in

    Phone and walk-in jobs get uploaded against the click that produced them.

From our own account

Google Ads account showing cost per booking
Our own Google Ads account, running at $21 per booking.

Contents

What you get

In the box

  • 01Conversion tracking audit and repair before launch
  • 02Campaign rebuild by buyer intent, not by service name
  • 03Exact-match ad groups with matched landing pages
  • 04Near-me and city ad group structure
  • 05Shared negative keyword lists, maintained monthly
  • 06Responsive search ads written per service
  • 07Offline conversion import for phone and walk-in sales
  • 08Monthly report in cost per booked job, not clicks

Price

What it costs

Starting at

$500/month

Founder pricingFirst 10 clients · Prices rise Jan 2027

What’s included

  • 011 campaign
  • 02Conversion tracking
  • 03Monthly reporting

Anything beyond the starting build gets a real quote after a 15-minute call.

Prices go up in January 2027. Book before then and your rate is locked for as long as you stay a client.

Common assembly error

Good intent, bad plumbing

Without it

Local search intent is unusually good. Someone typing your service plus near me has a problem, a deadline, and a card in their hand. That is about as close to a buying signal as paid search gets. So when a local ad account performs badly, the traffic is almost never the reason.

What goes wrong is structure and measurement. One campaign holds every service, so emergency clicks and browse clicks share a budget and a bid. Broad match pulls in DIY searches, free advice queries, and people looking for jobs in your trade. The landing page is the homepage. And the conversion action fires when someone clicks a button, not when a job actually books.

Then the owner looks at a cost per conversion that is too high, cuts the keyword that was actually working, and the account gets worse. In our own account the reported numbers were missing roughly 29% of real bookings. We were about to make decisions on data that was wrong in a direction we could not see.

How much should a local service business pay per lead in Google Ads?

Ask for cost per booked job instead, because leads are easy to make cheap and hard to bank. On our own account, for our own local service business, we run around $21 per booking at a 596% return on ad spend and a 9.5% click through rate. Those are our numbers on our own money, in our own market. Yours will differ with your service mix, your average ticket, and how competitive your metro is. What travels is the ratio: if your average job is worth several hundred dollars and you are paying more than a third of that per booked job, something structural is wrong, and it is usually tracking or match type before it is bidding.

Why are my Google Ads so expensive?

Three causes, in order of how often we find them. First, broad match with no negative list, so you pay for how-to searches, free-quote fishing, and people looking for work in your trade at buying-intent prices. Second, low ad relevance because one ad group covers every service you offer, so the ad cannot name what the searcher typed and quality score drags the cost up. Third, the homepage as the landing page, which converts worse and quietly raises what you can afford to pay. Expensive clicks are usually not an auction problem. They are a specificity problem, and specificity is free to fix.

How do I build near-me ad groups for a local business?

Near-me queries and city queries behave differently enough to deserve their own ad groups. Our structure per city is one shared phrase-match term plus two city-exact keywords, kept in a group of their own so the ad copy and the landing page can name that city. Location targeting alone does not cover this, because a person typing the city name is telling you something a radius setting cannot: they want to know you actually work there, and the ad that says the city wins the click. Keep the group small enough that one ad honestly matches every keyword in it.

Should a local business use Smart Bidding or manual CPC?

Not until the account can see the truth. Smart Bidding optimizes toward the conversions you feed it, so an account missing a quarter of its sales will confidently bid toward the wrong things. On our own account we keep a manual max CPC cap deliberately, because the expensive end of the auction converts worse for our business and the tracking has known gaps we are still closing. The account shows limited by bid strategy and that is a choice, not an oversight. Once phone and offline conversions are flowing reliably and volume supports it, automated bidding becomes a real option. Order matters more than the setting.

How do phone calls get counted in Google Ads?

By capturing the click ID at the moment the visitor lands and carrying it through to the sale. When someone calls instead of booking online, that job exists in your invoice system and nowhere else, so Google never learns which keyword produced it. The fix is to store the gclid with the lead, match it to the completed payment, and upload it back as an offline conversion. It sounds like plumbing because it is. It is also the single change that most often makes a local account look profitable, since phone-heavy businesses are exactly the ones whose reported numbers understate reality.

Troubleshooting

Local Google Ads questions, answered

What results have you actually produced?
On our own Google Ads account for our own local service business, a CPR training company: $21 per booking, 596% return on ad spend, and a 9.5% click through rate. We also found and fixed a roughly 29% conversion under-report in that account. Those are the numbers we stand behind, from a business we own. We do not borrow client case studies.
What budget do I need to start?
Enough for the account to learn something in a month rather than a quarter. On the call we look at your average ticket, your metro, and current cost per click, and tell you the number honestly. If the math does not work in your market, we will say that instead of taking a retainer.
Do I keep ownership of my Google Ads account?
Yes. The account stays yours, we get access to it. If we ever stop working together, the campaigns, history, and conversion data stay with you. Agencies that build inside their own account are protecting themselves, not you.
How long before the ads improve?
Tracking fixes show up immediately, because bookings that were always happening finally get recorded. Structure changes usually need three to six weeks of data before cost per booked job moves in a way you should trust. We do not judge a rebuild on week one.
Do you run Performance Max for local businesses?
Rarely as the main campaign. Local service intent is explicit, so exact-match search gets first claim on budget. Performance Max can be worth testing once search is saturated and tracking is clean, but it is not where we start.
Can you run ads if my booking or quote form is in an iframe?
We can, but the tracking will leak, because the click ID often does not survive into the iframe and the sale gets attributed to nothing. We usually move the form on-domain first. That is why our own booking pages render the widget natively instead of framing it.
Will you work with a competitor in my city?
No. We do not take two clients bidding on the same customers in the same geography. Ask on the call and we will tell you straight whether your market is open.
What does Google Ads management cost?
Google Ads management starts at $500 a month. What you pay above that depends on ad spend, how many services you run, and how much repair the account needs before it can perform. The tracking audit that comes first is free, so you see the state of your account before you commit to anything.

Need a hand

Get your ad account looked at

Book a 15-minute call. We open your account with you, read the search terms, and tell you where the money is going before we quote anything.

We work with local service businesses nationwide