Get in touch
Have a project in mind? Tell us a bit about it.
A good roofing Google Ads cost per lead is any figure that still leaves you profit once you’ve paid for the leads that never sign. There isn’t one right number, because a small leak repair and a full reroof can’t share the same target. Work it out from your own jobs: multiply the gross profit on an average job by the share of leads you turn into signed work. That’s the most a lead can cost before Google Ads starts losing you money, and the price you should aim for sits below it.
Roofers ask this because the figures online disagree so badly. On r/Roofing there’s a thread asking for insight into Google Ads budgets for residential roofing, and on r/googleads a roofing repair owner posted 30 days of numbers after being told their cost per call was “alright”. The top answer there is the one we’d give: “Cost per call only tells half the story.” What you need is your cost per signed job, split by the kind of work, and a lead count you can trust.
How much do Google Ads charge per lead?
Google Search ads don’t charge per lead at all. You pay for clicks, and your cost per lead is simply what you spent divided by the leads you counted. Google’s own definition of cost per conversion is total cost divided by the number in your Conversions column. So the figure depends completely on what you told Google Ads to count as a conversion.
Local Services Ads are different. There you pay per lead, and Google sets the rules for what a lead is. Its page on how Local Services Ads charges work lists them: an answered call, a missed call during your business hours where the caller stays on the line for more than 20 seconds, a voicemail, a text or email, or a booking request (US and Canada only). Repeat contact from the same number or email within 15 days of a charged lead isn’t charged again.
| Question | Google Search ads | Local Services Ads |
|---|---|---|
| What you pay for | A click on your ad | A lead that meets Google’s rules |
| Who decides what counts as a lead | You, through conversion tracking | |
| What “cost per lead” means | Your spend divided by the conversions you chose to count | The charge for each lead Google counted |
| Leads that turn out to be junk | You still paid for the clicks | Google reassesses leads for 30 days and credits ones it finds invalid, low quality or duplicate (not available to EMEA or EEA advertisers) |
| How spend is capped | Average daily budget; a month never bills more than 30.4 times it | Average weekly budget, turned into a monthly maximum |
The budget rules come from Google’s pages on the average daily budget (a single day can spend up to twice the daily figure) and the Local Services Ads charging page above. When you compare your cost per lead with anyone else’s, the first thing to ask is which of these two columns they’re in.
How do I work out the most I can pay per roofing lead?
Multiply your average gross profit per job by your close rate, the share of leads that become signed jobs. The answer is your break-even cost per lead. Do it separately for repairs and replacements, because they behave nothing alike.
The figures below are examples to show the arithmetic, not benchmarks. Put in your own numbers from last year’s jobs.
| Example figures | Roof replacement | Roof repair |
|---|---|---|
| Average job value | $12,000 | $800 |
| Gross margin | 30% | 40% |
| Gross profit per job | $3,600 | $320 |
| Leads that become signed jobs | 1 in 5 (20%) | 1 in 2 (50%) |
| Break-even cost per lead | $720 | $160 |
| Target if you want to keep half the profit | $360 | $80 |
Break-even is the ceiling, so decide how much of the gross profit you want to keep and take that off first. In the example, keeping half means aiming for $360 a replacement lead and $80 a repair lead.
The split matters more than the exact figures. Say a campaign mixes both kinds of work and reports a blended cost per lead of $150. Against the replacement target that looks cheap. If most of those leads are repair calls, though, every one costs nearly twice the repair target. Run repair and replacement keywords in separate campaigns or ad groups so you can see each cost per lead on its own, and judge each against its own target.
Once leads are coming in, track cost per signed job too: total spend divided by jobs signed from those leads. It folds in your close rate, so it tells you whether the problem is the ads or the follow-up.
Why do roofing cost per lead figures vary so much?
Mostly because people are counting different things. One roofer counts every phone call, another counts only calls over a set length, and a third quotes Local Services Ads charges. Those can’t be compared.
The other big differences are easier to check in your own account:
- Job mix. An account full of replacement and insurance work will tolerate a much higher cost per lead than one doing gutter and repair calls.
- Brand searches. People searching your company name already know you, so those clicks usually turn into leads cheaply. Mixing them in makes non-brand results look better than they are. Keep them in their own campaign.
- Your area. Click prices come from competition where you advertise. Google says the top of page bid estimate is based on each keyword’s Quality Score and on competition from other advertisers. You can see estimates for your own area in Keyword Planner, which sits in the Tools menu.
- Who sees the ads. By default, Google shows ads to people in your area and to people who’ve shown interest in it. The Presence option limits ads to people likely to be in, or regularly in, the places you target.
How do I make sure Google Ads is counting real roofing leads?
Count calls only when they last long enough to be a real enquiry, count form submissions separately, and send signed jobs back into Google Ads. Here are the steps from Google’s guide to tracking calls from ads:
- In Google Ads, open the Goals menu, go to Summary and select + Create conversion action.
- Choose Conversions from phone calls, select Save and Continue, and pick Phone call lead as the category.
- Add Calls from ads. This needs at least one call asset or location asset with a verified phone number, and call reporting turned on in your account settings.
- Add Calls from website visits too, so calls from people who clicked through to your site count. Google replaces your number on the site with a forwarding number using a phone snippet and the Google tag, as its website call tracking guide explains.
- Set a minimum call length for each call action. Google’s overview of call conversion tracking says calls shorter than the length you set aren’t counted. Pick a length that drops wrong numbers and quick hang-ups, then check real call durations in the Call details report in the Report Editor.
If call recording is on, Google uses the recording to judge lead quality and falls back to your call length when there’s no recording. Recording only covers calls where both people are in the US or Canada.
The last step is the one most roofing accounts skip: telling Google which leads became jobs. You can import call conversions from your CRM, which lets you count only calls that turned into sales and add their values. For web form leads, enhanced conversions for leads matches offline sales back to the ad that brought the lead in. With that in place, you can read cost per signed job straight from the account.
Should a roofer use Local Services Ads or Search ads to keep cost per lead down?
You don’t have to pick one, because they solve different problems. Local Services Ads make you pay only for leads, and Google credits some bad ones, so your cost per lead is clearer from day one. Search ads cost you clicks that may never call, but you choose the keywords, which means you can push spend toward replacement searches and away from small repairs.
Roofers is one of the listed Local Services Ads categories. In the US, Google’s screening requirements for roofing include general liability and professional liability insurance, plus business and owner licenses where local law requires them. Google’s country list for Local Services Ads covers the US, Canada, the UK and Ireland among others, but not Australia or New Zealand, so roofers there are working with Search ads.
We compared the two budgets line by line in our post on Google Ads budgets for HVAC companies. The same weekly and daily budget rules apply to roofing.
What pushes a roofing cost per lead up, and how do I fix it?
The usual causes are paying for searches that were never going to become jobs and counting calls that weren’t leads. Check these first:
- Job seekers and DIY searches. Searches like “roofing jobs” or “how to patch a roof leak” can trigger your ads. Open Campaigns, then Insights and reports, then Search terms to see what people actually typed, and add the wasted ones as negative keywords. Google handles misspellings for you, but negatives don’t match close variants, so add singular and plural forms separately.
- Clicks from outside your service area. Check your location option and switch to Presence if leads keep coming from towns you don’t cover.
- Counting every call. If a 10 second wrong number counts as a lead, your cost per lead looks better than it is. Set a minimum call length as shown above.
- Repairs and replacements in one campaign. Split them so each has its own budget and its own cost per lead target.
- Missed calls. In Local Services Ads, a missed call during business hours is charged once the caller has waited 20 seconds, and your business hours come from your Google Business Profile. Make sure those hours match when someone can actually pick up.
- Judging by cost per lead alone. A cheap lead that never signs costs more than an expensive one that does. Check cost per signed job every month.
If you’d rather have someone set this up and run it, our Google Ads management for trades starts with conversion tracking and job-type targets like these. The first two months of management are free, and you fund your own ad budget. Already paying someone? Here’s how to know if your Google Ads agency is doing a good job.
FAQ
How much do roofing leads cost?
It depends on the channel and the job. In Search ads you pay per click and your cost per lead is spend divided by the leads you count; in Local Services Ads you pay for each lead Google counts. Work out your own ceiling as gross profit per job multiplied by your close rate.
Is $10 or $20 a day enough for roofing Google Ads?
Google bills no more than 30.4 times your average daily budget in a month, so $10 a day is at most $304 and $20 a day at most $608. Divide that by your target cost per lead to see how many leads to expect. At the example replacement target of $360, that’s under one lead a month at $10 and under two at $20, which is too few to judge whether the ads work.
Is cost per call the same as cost per lead?
Only if every call you count is a real enquiry. Set a minimum call length so wrong numbers and hang-ups drop out, and track form leads as well. Then look past both to cost per signed job, which is the number that decides whether the ads pay.
Sources: 1. Understand your conversion tracking data (Google Ads Help). 2. How Local Services Ads charges work (Local Services Ads Help). 3. About overdelivery and your average daily budget (Google Ads Help). 4. Top of page bid estimate: Definition (Google Ads Help). 5. Use Keyword Planner (Google Ads Help). 6. About advanced location options (Google Ads Help). 7. Track calls from ads (Google Ads Help). 8. Set up tracking calls to a phone number on a website (Google Ads Help). 9. About phone call conversion tracking (Google Ads Help). 10. About enhanced conversions (Google Ads Help). 11. Getting started with Local Services Ads (Local Services Ads Help). 12. Business screening and verification requirements (Local Services Ads Help). 13. About the search terms report (Google Ads Help). 14. About negative keywords (Google Ads Help).
