Google Ads for Roofing Companies
This is a recipe, not a guarantee. How well any ad campaign performs depends on things no recipe can control: your budget, how crowded and expensive your industry's auctions are, the products you sell and what you charge for them, how well your website actually converts visitors, the quality of your customer support, your reviews and reputation, your creative, and plain timing. A perfect recipe on top of a weak offer or a broken website will still lose money — ads amplify what's already there, good or bad.
The budgets shown are suggestions only — yours could and should vary with your available funds and your goals. Follow this recipe with caution: make sure every step lines up with your budget and your business, and edit where necessary. We explain why each step exists, but nothing here is one-size-fits-all. Before you spend a dollar, be blunt with yourself about the list above — get your house in order, then use the recipe to learn and test. That's what it's for.
Check the rules that govern your industry before you run anything. Plenty of businesses carry advertising obligations that have nothing to do with the ad platforms: licensing boards, professional advertising standards, rules about what you may claim and how you must substantiate it, age restrictions, and consent laws covering email, texting, and calling. Those rules are yours to know, they vary by state and country, and they override any step in this recipe.
If you work in a licensed or regulated field — health and medical, legal, financial and lending, insurance, real estate, alcohol, firearms, cannabis, childcare, education, anything with a board or a license behind it — confirm what applies to you before you spend a dollar, and ask your attorney or your licensing body if you are not certain. Nothing on this site is legal advice.
This recipe uses Google Search campaigns exclusively — the single best fit for roofing because homeowners who need a roof repair or replacement go straight to Google and search with urgent, specific intent. The sequence is: set up conversion tracking first, run a tightly targeted Search campaign to collect real lead data, then graduate to Performance Max once that signal exists. Skipping straight to automation without data is the most common way roofing budgets get wasted.
This is for local roofing contractors — one location or a handful of service-area cities — with a modest daily budget and little or no prior ad history. The core problem is that roofing is a high-cost-per-click category with strong competition from aggregators and national lead-gen sites, so every dollar has to be pointed at genuine buyers, not browsers or job seekers.
What can you afford to pay for a customer?
Advertising can only cost what's left after everything else. Put in what a typical order looks like and this works out the rest.
These are your numbers as you've typed them. Connect your store and we'll work this out from your actual orders instead — including the costs most people forget.
Tracking Foundation and Compliance Check
Install Google Tag Manager (GTM) on the website. Fire a Google Ads conversion action for every meaningful lead event: phone number clicks (especially on mobile), form submissions, and any live-chat completions. Use Primary conversion status for phone calls and form fills — these are what you're optimizing toward. Set call conversion to count calls of 60+ seconds minimum (shorter calls are usually wrong numbers or price shoppers hanging up). Import those conversion actions into Google Ads and confirm they show Verified status before spending a dollar. Also set up a Google Analytics 4 property and link it to Google Ads for richer session data later.
Compliance note: Roofing is a licensed trade in most U.S. states. Verify your state licensing board's rules on advertising claims — some states restrict terms like 'licensed,' 'certified,' or guarantees unless specific criteria are met. Claim substantiation requirements and consumer protection rules around storm-damage solicitation vary by jurisdiction; review those before ads go live.
Before any ad goes live, make sure every phone call click and form submission on your site fires a conversion event back to Google Ads — otherwise Google has no idea which clicks turned into leads and will spend your budget blindly. The 60-second call threshold filters out hang-ups. Also: check your state's rules on what a roofing contractor can legally say in ads before you write a single headline.
Negative Keyword and Audience Seed List
Before launching campaigns, build a shared negative keyword list in Tools → Shared Library → Negative keyword lists. Add it to every campaign you create. Starter negatives specific to roofing: jobs, careers, hiring, free, DIY, how to, cost of, salary, course, training, school, metal roofing supply, roofing materials, wholesale. Also add competitor brand names you don't want to bid on (unless you have a deliberate conquesting budget). Add the negative list to campaigns at creation time — not as an afterthought.
In Audience Manager, create a Customer Match list by uploading your past customer email list (even a small one). You won't target this list at low budgets, but having it ready lets you use it as an observation segment from day one to see how existing customers behave compared to new visitors.
Reminder: budget figures are suggestions — scale to your funds and goals.
Spend 30 minutes blocking waste before you spend a cent. Roofing searches attract a huge volume of people looking for roofing jobs, roofing materials, or DIY tutorials — none of whom will ever call you for a quote. Building the negative list first means your budget won't evaporate on those clicks. Upload your customer email list too; you won't use it for targeting yet, but it starts collecting signal immediately.
New to "funnel" talk? What top, middle, and bottom mean
Think of every person who could ever buy from you as water moving through a funnel. Top of funnel is strangers — people who've never heard of the business. Campaigns here buy attention and first visits, not sales, so expect cheap clicks and few purchases. Middle of funnel is people who've shown interest — they visited, engaged, or are comparing options. Campaigns here re-engage and build the case. Bottom of funnel is people ready to buy right now — searching for exactly what you sell or abandoning a cart. Campaigns here convert; the clicks cost the most because the intent is worth the most. Full funnel means automated campaigns that work every stage at once. One thing that surprises people: recipes usually start at the bottom — capture the demand that already exists before spending money creating new demand at the top.
High-Intent Local Search Campaign
Create a Search campaign with the goal set to Leads. Use Maximize Conversions bidding with no target CPA set — let it run open for the first 2–3 weeks until you have 15–20 conversions, then consider adding a target CPA. Budget: your full daily budget here while this is the only campaign running.
Targeting: set location to your specific service cities or a radius around your base (10–20 miles is typical for roofing; don't go wider than you can realistically serve same-week). Use Presence: People in or regularly in your targeted locations — not 'interested in.' Disable the Search Partners and Display Network expansion checkboxes.
Ad groups: split by job type rather than running one giant ad group. Suggested splits: (1) Roof Repair, (2) Roof Replacement / New Roof, (3) Storm & Insurance, (4) Inspection / Free Estimate. Each ad group gets its own Responsive Search Ad (RSA) with headlines and descriptions that mirror that specific intent. Pin Headline 1 to a city + service name (e.g., '[City] Roof Repair'). Include your phone number in Description 2 on mobile-heavy ad groups.
Assets (formerly extensions): add Call asset with business hours set so calls only show when someone can answer; Location asset (link Google Business Profile); Sitelink assets pointing to service pages (Repair, Replacement, Free Estimate, Reviews); Callout assets (Licensed & Insured, Free Estimates, 24-Hr Storm Response, Financing Available); Structured snippet asset listing services. More assets = more real estate = better CTR in a competitive auction.
Reminder: budget figures are suggestions — scale to your funds and goals.
Targets people actively searching for a roofer right now — the highest-purchase-intent moment in the funnel — to drive phone calls and form submissions directly.
- Go to Google Ads → New Campaign → Goal: Leads → Campaign type: Search.
- Name the campaign, e.g., 'Search | Local | Roof Services | [City]'. Uncheck 'Search Partners' and 'Display Network.'
- Set bidding to Maximize Conversions. Leave Target CPA blank for the first 2–3 weeks.
- Set daily budget to your full daily amount (e.g., $50/day). Set start date; leave end date open.
- Location targeting: enter your specific service cities or draw a radius. Set targeting to 'Presence: People in or regularly in your targeted locations.' Set language to English.
- Create Ad Group 1 — Roof Repair. Add phrase and exact match keywords for repair intent. Repeat for Ad Group 2 (Replacement), Ad Group 3 (Storm/Insurance), Ad Group 4 (Inspection/Estimate).
- In each ad group, create one RSA with 8–10 unique headlines and 3–4 descriptions. Pin a city + service headline to Position 1. Aim for 'Excellent' Ad Strength.
- Add assets at the campaign level: Call asset (with schedule), Location asset, 4–6 Sitelinks, 4 Callouts, 1 Structured Snippet (Services).
- Apply your shared negative keyword list to this campaign.
- Set up automated email alerts for any week where cost-per-conversion exceeds 2× your target to catch runaway spend early.
"roof repair [city]"
"roofing company [city]"
"roofer near me"
[roof leak repair]
[emergency roof repair]
"storm damage roof repair"
"roof replacement [city]"
"new roof installation [city]"
[local roofer]
"free roofing estimate"
"roofing contractor [city]"
"insurance roof claim"
[roof inspection]
"hail damage roof repair"
"residential roofing [city]"
[roof replacement cost]
"roof repair near me"
[shingle replacement]
roofing jobs
roofing careers
roofing salary
DIY roof repair
how to fix a roof
roofing materials
roofing supply
roofing school
free roofing
roofing courses
wholesale roofing
roofing apprenticeship
This is the core campaign — capturing people who are actively searching for a roofer right now. Splitting ad groups by job type means someone searching 'fix roof leak' sees an ad about repairs, not a generic 'we do all roofing' message. That relevance lifts click-through rate and Quality Score, which lowers your cost per click. The assets (call button, location, sitelinks) make your ad take up more space on the results page and give mobile users a one-tap way to call you — critical for roofing since most urgent searches happen on phones.
Landing Page and Lead Quality Gut-Check
This phase is not a campaign — it's a mandatory review at the end of week 2. Pull the Search Terms report (Keywords → Search Terms) and look for irrelevant queries slipping through; add them as negatives immediately. Check conversion data: are the conversions real leads or noise (e.g., bots, accidental clicks on the call button)? Call through the logged calls and review form submissions.
Honest checkpoint: if your cost per lead is high, the campaign settings are only part of the equation. Roofing landing pages that list services without a clear call to action, don't show reviews, or load slowly on mobile routinely kill conversion rates regardless of how well the ads are tuned. Check Google PageSpeed Insights for your landing page. Confirm your phone number is click-to-call on mobile. Check that you have at least 10 Google reviews visible. No amount of ad optimization fixes a broken landing page.
Stop and check the work before you double down on spending. Look at which actual search terms triggered your ads — you'll almost always find a few bizarre ones that need to be blocked. More importantly, ask yourself honestly: if someone landed on your website from their phone with a leaking roof, would they call you within 30 seconds? If the answer is no, fix the website first. The ads can drive traffic; only the website and your reviews convert it.
Performance Max Graduation (Once Data Exists)
Once the Search campaign has accumulated 30+ conversions (ideally 50+) over a rolling 30-day window, create a Performance Max campaign targeting the same service area. Budget: start PMax at 30–40% of total daily budget and keep Search running at 60–70%; monitor for cannibalization by checking the 'Campaign' segment in the search terms report. If PMax starts serving on branded or direct queries you're already winning cheaply, add those as campaign-level negative keywords (requires a Google rep request or Shared Library → Brand Exclusions in newer accounts).
Asset groups: create one asset group per major service (Repair, Replacement, Storm). Upload 3–5 images of real completed jobs (not stock photos), your logo, and a 15–30 second video of a job site or crew if available — PMax will use YouTube and Display inventory and real visuals dramatically outperform stock. Add the same callouts and sitelinks used in Search. Set a Final URL to the relevant service page, not the homepage.
Audience signals: add your Customer Match list, website visitors (once you have 100+), and a custom segment built from 'people who searched for' your top roofing keywords. These are signals, not targeting — PMax will go beyond them, but signals speed up the learning phase.
Reminder: budget figures are suggestions — scale to your funds and goals.
Spans the full funnel — re-engages past visitors, captures new high-intent searchers, and surfaces the business on YouTube and Display to in-market audiences — but only works efficiently once conversion data from the Search campaign gives the algorithm something to optimize toward.
- Go to Google Ads → New Campaign → Goal: Leads → Campaign type: Performance Max.
- Name it 'PMax | Local | Roofing | [City]'. Set the same location targeting and language as your Search campaign.
- Set bidding to Maximize Conversions. After 2 weeks and 20+ PMax conversions, consider adding a Target CPA.
- Set daily budget to 30–40% of total daily budget (e.g., $15–$25/day if total is $50).
- Create Asset Group 1: Roof Repair. Upload 3–5 real job photos, logo, headlines (up to 15), descriptions (up to 5), and sitelinks. Set Final URL to your repair service page.
- Create Asset Group 2: Roof Replacement. Repeat with replacement-focused copy and imagery.
- Add Audience Signals: Customer Match list, website visitors segment, and a custom segment using your top search keywords.
- Under Campaign Settings → Brand Exclusions, add your own brand name to prevent PMax from cannibalizing cheap branded clicks you're already winning.
- Link your Google Business Profile under the Location asset to enable Maps placements.
- After 2 weeks, compare Search vs. PMax cost-per-lead in the Campaigns view and reallocate budget toward whichever is delivering lower CPL.
Performance Max is Google's fully automated campaign type that runs across Search, YouTube, Display, Maps, and Gmail simultaneously. It's powerful but needs real conversion data to work — launching it cold is one of the fastest ways to burn budget. Wait until you have at least 30 confirmed leads from the Search campaign. When you do add it, keep your Search campaign running alongside it; PMax doesn't replace the high-intent Search traffic, it expands reach into people who haven't searched yet but fit the profile of someone who will.
Measurement Discipline and Budget Scaling Rules
Track these metrics weekly in a simple spreadsheet: Impressions, Clicks, CTR, Avg. CPC, Conversions, Cost/Conversion, Conversion Rate. Set a target CPL (cost per lead) based on your average job value and close rate — for a roofing company with a $8,000 average job and a 30% close rate, a CPL of up to $150–$200 can still be very profitable; don't panic-pause campaigns based on CPL alone without knowing your close rate.
Retargeting unlock: at this budget level, don't run a standalone retargeting campaign. Once your website reaches 300–500 monthly visitors, PMax will naturally re-engage past visitors through its audience signals. A dedicated remarketing campaign becomes worth testing when you're consistently above 1,000 monthly site visitors.
Scaling rule: only increase daily budget by 15–20% per week maximum — larger jumps reset the learning phase and spike CPCs. If a keyword or ad group is delivering leads below your target CPL, increase its budget share before adding new campaigns.
Reminder: budget figures are suggestions — scale to your funds and goals.
Know your numbers before you judge the campaign. A $120 cost per lead sounds scary until you realize one closed job pays for 40 leads. Track leads and their outcomes — not just clicks — so you know whether the campaign is profitable, not just active. Don't add retargeting campaigns yet; your traffic is too thin and it would just split your budget across audiences too small to matter. When you're ready to spend more, increase slowly so Google's algorithm doesn't have to start learning all over again.
The recipe card
- Before anything else: confirm the advertising rules for your own industry and location — licensing board requirements, professional advertising standards, what you may claim, age restrictions, and consent rules for email, texting, and calling. They override every step below.
- Google Search only — roofing is search-driven, high-intent, and CPCs are too high to waste on discovery channels at a modest budget.
- Build conversion tracking for calls and forms before a single ad goes live — without it, automated bidding is completely blind.
- Split ad groups by job type (repair, replacement, storm, estimate) so ad copy matches exactly what each searcher needs.
- Don't launch Performance Max until the Search campaign has 30+ real conversions — automation needs data or it burns budget.
- Know your target cost-per-lead based on your close rate and average job value before judging whether the campaign is working.
Cooked this and changed it? Publish your version as a User Revised recipe — with credit to this one.
Make It Your OwnSee a problem with this recipe? Flag it.
Rather have it cooked for you?
Gorilla Public runs these exact recipes for small businesses — for a flat monthly fee, never a percentage of your ad spend.
Talk to Gorilla PublicRecipes on this site are educational, not legal advice, and not a guarantee of results. You are responsible for each platform's ad policies and for any laws, licensing rules, or consent requirements that apply to your industry and location.