Google Ads and PPC for roofing and storm restoration companies

Google Ads for roofers: 107,800 searches a month contain the word “roof”. Not one of them wants a roofer!

44,800 of them are roof racks, cross bars, cargo boxes, rooftop tents and sunroofs. 18,600 are the roof of somebody's mouth. Put a real job word in front of the keyword and run it on phrase or exact and none of that reaches you, which is why in this trade you settle the match types before you settle the budget. One Google sign-in connects your Ads account, and AdPilot's agent writes every change as a card you approve or skip.

Start free - no credit card

One Google sign-in to start · No PPC experience needed · Flat price, never a cut of your ad spend · Free 7 days · You approve every change

PPC for roofers has a problem no other trade has: the word for the job is not the word for the job.

Type “roof” into Google and the country answers with car accessories. 15,000 people a month want a roof rack, 13,000 want a rooftop tent, 11,000 want a sunroof, and 18,600 are asking about the roof of their mouth, 9,600 of them because it hurts. Add the shingle and sealant shoppers, the people running a roofing calculator over their own house, the 2,400 after a job on a crew and the 2,100 singing a line about the roof being on fire, and you're at 107,800 searches a month that carry your trade's word and buy none of your trade's work.

Now the part most pages selling you something would leave out. Google matches words and meanings, not letters, so phrase and exact match don't pick up any of that. Run [roof repair] and you'll never serve on “sunroof” or “roof of mouth hurts”, and you won't find one of these rows in your own search terms report. A bare roof term on broad match is the one setting that goes looking. That's the entire argument of this page: this is the one trade where the job word is unusable on its own, so match type discipline is the price of admission rather than a tidy-up you get to later.

The money side has its own trap. “Roofing companies near me” is 127,000 searches a month at about $2.50 a click, “roofing contractors near me” is 31,000 at about $9.00, and “roofing contractor near me” - the same words, one letter shorter - is also 31,000 and about $0.70. Thirteen times the price on a plural. AdPilot's agent connects to the account and reads the whole thing before it opens its mouth: what the search terms report says you actually bought, where the storm budget went in the four days it mattered, which ad group is quietly funded by which. Every finding comes back as a card in plain words. Approve it, skip it, ignore it. Your account doesn't move until you tap.

Where the 107,800 goes. Only broad match reaches most of it.

You decide every step of it:

  • You approve every change. The AI proposes; you decide. Every budget, bid, keyword, or ad edit arrives as a plain-language card you approve or skip with one tap. Nothing is ever applied on its own.
  • A snapshot before every change. AdPilot saves exactly how things looked before anything is touched, so you always have a clean “before.”
  • One-click revert. Don’t like a change once it’s live? Undo it in a single click, straight back to that snapshot.
  • A full audit log. Who, what, when, the old value and the new value, every change recorded. Nothing hidden.
  • You keep the keys. You connect with one secure Google sign-in, and it only ever makes changes you approve. The account stays yours start to finish - you never transfer ownership, and you can disconnect anytime.

Where roofing ad budgets leak, and the setting that decides it

Real US search volumes from August 2026. Every row carries a word roofing companies bid on, and not one of them ends with a ladder against a house.

Split them and the shape is obvious. 44,800 searches a month are cars and camping: racks, cross bars, cargo boxes, rooftop tents, sunroofs. 39,900 are people buying shingles and sealant or running the numbers on their own house. 18,600 are the roof of somebody's mouth. 2,400 want a job on a crew. 2,100 are a chant that's been shouted at parties since the eighties.

Read the table as evidence about one setting in your account. If your keywords sit on phrase or exact match, Google is matching meanings and none of these rows is reaching you - check your own search terms report and you'll see that for yourself. If anything in the account is on broad match, or you inherited a campaign and have never looked, this is the list of what it's allowed to go looking for. That's why every campaign AdPilot builds starts on phrase match, and why the first thing it reads in an account it has never seen is which match types are running.

What people searchSearches/moWhy it is not a client
roof shingles29,000Buying shingles by the bundle
roof rack15,000A car accessory
roof top tent13,000Camping gear
sunroof11,000A car part
roof of mouth hurts9,600A part of the mouth
roof of mouth9,000The same
roof sealant6,400Buying a tub of it
roofing calculator4,500Estimating it themselves
roof rack cross bars3,500A car accessory
roofing jobs2,400Looking for work
roof box2,300A car accessory
the roof is on fire2,100A song lyric

US monthly search volume, Ahrefs, August 2026. 107,800 searches a month carrying the word your trade is named after. A qualified keyword on phrase or exact - “roof repair”, not “roof” - reaches none of it. A bare roof term on broad match is the one setting that goes looking.

Negative keywords for roofers. Free, no email, no form.

Take it, paste it, keep it. There's no email box and nothing to buy. Fifteen minutes of work, and on a term like “roofing contractors near me” at $9.00 a click it has paid for itself before Friday. Almost every line below is a phrase, because in this trade the junk words and the money words are the same words - a bare “roof” negative switches your own account off in one keystroke. The handful of single words in there, thule and yakima and moonroof and menards and palate, are safe standing alone, because no homeowner staring at a stain on the ceiling has ever typed one of them. Read the note underneath before you paste: eight of these lines have a paying customer standing right next to them, and two more depend on what you sell.

Cars, racks and rooftop tents
roof rack, roof racks, roof rails, cross bars, crossbars, roof box, roof boxes, cargo box, cargo carrier, roof top tent, rooftop tent, roof tent, sunroof, sun roof, moonroof, thule, yakima, rhino rack, kayak rack, bike rack, ladder rack for truck
Buying the material instead of hiring the crew
shingles for sale, shingle bundle, bundle of shingles, buy shingles, shingles per square, shingle prices per bundle, roof sealant, roof coating, flashing tape, roofing felt, underlayment for sale, roofing nails, roll roofing, corrugated panels, home depot, lowes, menards, abc supply, roofing supply, roofing supplies, tarp for sale
Pricing it themselves
roofing calculator, roof calculator, shingle calculator, square footage calculator, how many squares, how many bundles, how to measure a roof, how to install, how to shingle, how to replace shingles, diy roof, roof repair diy, do it yourself, youtube, tutorial, step by step
Jobs, crews and licensing
roofing jobs, roofer jobs, roofing job openings, hiring roofers, now hiring, roofer salary, roofing salary, how much do roofers make, roofing crew wanted, crew wanted, subcontractor wanted, roofing apprentice, roofing license exam, roofing license classes, get roofing license, license requirements, license application, license renewal, contractor exam, osha training, fall protection training, roofing school
Other roofing companies, not homeowners
roofing leads, buy roofing leads, roofing crm, roofing software, roofing invoice template, roofing contract template, roofing proposal template, roofing marketing, roofing seo, roofing franchise, roofing business for sale, roofers liability insurance, roofing contractor insurance quote, roofing general liability quote, roofing bond, roofing trade show
The mouth, the song and the rest of the English language
roof of mouth, roof of my mouth, sore roof of mouth, burnt roof of mouth, palate, roof is on fire, lyrics, song, chant, raise the roof, hit the roof, roof of the world, roof prism, roof rat, roof rats, minecraft roof, sims roof
Work you don't take (edit this one before you paste it)
rv roof, camper roof, trailer roof, mobile home roof, shed roof, carport roof, pergola, tiny house, roof cleaning, moss removal, snow removal, chimney sweep, solar panel install

Eight things not to block, because each one is a customer wearing a drain's clothes. Never a bare “roof” or a bare “roofing”. It's the word your trade is named after, and blocking it switches the whole account off in one keystroke - block the phrase around it instead, which is what the roof lines above do. Never “roof shingles” on its own, even though it's the biggest row in the table at 29,000 a month: a phrase negative blocks any query containing those words in that order, and “replace roof shingles near me” is somebody about to spend five figures. Never “cost”, “price” or “estimate” - a homeowner asking what a reroof runs is the most qualified search in the trade. Never “free” and never “inspection”, because “free roof inspection” is an offer roofers themselves run and blocking either word kills your own ad. Never “near me”, which is where nearly all your buyer volume sits. Never “insurance”, “claim”, “adjuster” or “deductible”: those searches are storm work, which is why the list goes after “roofers liability insurance” and “roofing bond”, the terms a roofer types when he's shopping for his own coverage, and never touches the words a homeowner uses. Never “roofing license” either. “Roofing license lookup” is a homeowner checking your board record after somebody knocked on their door, which is about the strongest signal you'll ever buy, so the list blocks “roofing license exam” and “get roofing license” instead of the two words together. And never “metal roofing”, which isn't a drain at all - most of that 63,000 a month is people shopping for panels, but roofing contractors rank on the first page of it, so it belongs in its own ad group with its own landing page rather than on a block list. Two more before you paste. “Jobs” is on the list and bare “job” is not, because “roof job cost” is a homeowner. And if you sell flat roof coatings, pull “roof sealant” and “roof coating” straight back out - that's your service, not a leak.

Storm season, the plural problem, and the rest of what matters more than your bids

  • Phrase and exact are the setup here, not a tune-up. On most trades match type is something you tidy up in month two. Here it decides whether the account was ever going to work, because the bare word carries 107,800 searches a month about cars, camping, shingles and the roof of somebody's mouth. Start every keyword on phrase. Earn exact later, on the specific searches that put a ladder on a roof. Broad match wants three things your account almost certainly doesn't have yet, and step three of the guide below names all three - until they're true together, a loose match type on a roofing keyword is an expensive way to learn the English language.
  • One letter, thirteen times the price. “Roofing contractor near me” is 31,000 searches a month at about $0.70. “Roofing contractors near me” is 31,000 searches a month at about $9.00. Same words, same intent, one plural. You can't buy the cheap one and dodge the expensive one - Google folded plurals and misspellings into close variants back in 2014 and widened exact match to same-meaning variants in 2018, so a keyword on either serves on both and no setting turns it off. And when both sit in the account, Google routes each query to whichever keyword matches it exactly, which is why that thirteenfold gap is a fact about a tool's averages rather than a lever in your account. Nobody can tell you which of the two you bought. The search terms report can, it's free, and it's four clicks from the screen you're already looking at.
  • “Metal roofing” is neither junk nor clean, so give it its own room. 63,000 searches a month at about $3.50, and the first page is mostly panel suppliers, corrugated sheets for sheds and cost guides. Mostly shopping. But roofing contractors do rank on it, so some share of that traffic would hire somebody. Don't block it, and don't drop it into your replacement ad group either, where the ad talks about tear-off and shingles. It needs its own ad group, its own headlines about standing seam and its own page, or you're paying panel-shopper prices for reroof clicks and can't tell which is which.
  • Storm work arrives in spikes a daily budget cannot follow. Hail lands on a Tuesday night and the searching happens Wednesday morning. A campaign sitting on a steady daily budget will hit its cap by noon on the one day of the quarter when every click is a real roof, and Google's two-times-daily-budget headroom doesn't stretch to a storm. That's a decision somebody has to make with their hand on the account within hours. The flip side is the February problem: the same budget grinding through a quiet month on terms nobody was ever going to convert on.
  • A claim-funded reroof is a different sale from a cash one. Both are five-figure jobs, and the person on the other end is thinking about completely different things. A cash reroof is a price decision, so your ad and page compete on the quote and the timeline. A claim-funded one is about the deductible and the adjuster's report, and the homeowner mostly wants to know you've done this before and that you'll show up when they need someone on the roof. One ad can't honestly answer both, so it shouldn't have to. We're an ads company and that's where our advice stops - how you handle the claim itself is your business and your attorney's, not ours.
  • HOA work runs on a calendar nobody else's does. A board votes in spring, a letter goes out with a deadline printed on it, and forty homeowners on the same three streets start searching “roof replacement HOA approved” inside six weeks. Shingle color and profile are already decided for them, which takes the whole comparison-shopping conversation off the table and replaces it with one question: can you do the approved product on that schedule. An ad naming the subdivision beats an ad naming your founding year every time, and once you've done one house on the street the second is a referral with a ladder already up.
  • Commercial and flat roofs are a different buyer entirely. “Commercial roofing” is 41,000 searches a month at about $7.00 and “flat roof” is 6,000 at about $2.50, and the person typing the first one is a facilities manager with a building and a budget cycle, not a homeowner with a stain on the ceiling. Different ad, different page, different follow-up, and usually a slower close. Sharing a campaign with residential work wastes both, and on a small budget it's usually the residential clicks that eat the commercial ones alive.
  • The free inspection comes with a trust problem attached. Homeowners have spent years being warned about the knock at the door after a storm, and that suspicion arrives at your landing page whether you earned it or not. The offer still works - it's the lowest-friction thing you can ask for - but the page behind it has to answer the doubt in the first screen: a local address, a license number, how long you've been in this county, what happens at the inspection and what doesn't. An ad that promises a free inspection and lands on a page that could belong to anybody is paying $9.00 a click to confirm somebody's suspicion.

What an inspection request is worth

Roofing money is lumpy: big jobs, low win rates, and a season that decides everything. The loaded click prices come from the same pull as the table above and they are worth reading twice - “roofing companies near me” is 127,000 searches a month at about $2.50, while “roofing contractors near me” is 31,000 at about $9.00. The job value and the win rate are a starting point only. Run it on a storm month, then run it again on a quiet February. Nothing is sent anywhere.

$12,000
30%
$2.50
$3,000

$3,600

What one inspection request brings in

1440

The most you could ever pay per inspection request before the ads cost more than the work brings in

1,200

Clicks that budget buys in a month

0.8

Inspection requests a month to cover the ad spend in revenue

So every 1440 clicks has to produce one inspection request just for the spend to come back as revenue. Worse than that and the ads cost more than the work they bring in, however good they look.

Two things this cannot do for you. It works on what the work brings IN, not what you keep, so your real break-even sits at your gross profit on the job rather than its price - at a 30 percent margin it is roughly a third of the number above. And the one figure nobody can guess for you is how many of those clicks actually pick up the phone or fill in the form. That is not a benchmark you read somewhere, it is a measurement, and it is the reason conversion tracking goes in before the budget goes up. Storm season and a quiet month are two different businesses sharing one account, so run this twice and set the budget for the worse of the two.

The whole build, in the order it has to happen

This is the order the agent works in, spelled out so a roofer with a laptop can do the whole thing without us. Two reasons we publish it. Anybody who follows it ends up with an account that works, and a method you can audit beats one you're asked to trust.

Two days to build it. Then an hour every second week, for as long as the account runs. The build is the easy half. The hour is what goes missing in the six weeks after hail, when there are three tear-offs going and a dumpster nobody ordered - which is also, exactly, the stretch when the search terms report fills up with wordings you've never seen.

Different trade? Every other version of this build lives here

  1. 1

    The word problem comes before the keyword list

    Twelve of the biggest searches carrying your trade's word have nothing to do with a building. Together that's about 107,800 a month: 44,800 for roof racks, cross bars, cargo boxes, rooftop tents and sunroofs, 39,900 buying shingles and sealant or running a roofing calculator over their own house, 18,600 about the roof of somebody's mouth, 2,400 looking for a job on a crew, and 2,100 singing a line about the roof being on fire. No other trade on this site has that problem. A dentist competes with a television show. You compete with the English language.

    Here's the limit, and it matters more than the table. Google matches meanings, not letters. A keyword on phrase or exact match for “roof repair” will never serve on “sunroof”, and if you're already running phrase match you won't find a single one of those rows in your own search terms report. Go and check - that's the point of publishing the list. What the table tells you is what a bare roof keyword on broad match is allowed to go looking for, which is why the answer on this trade is phrase from day one and nothing looser until the account has earned it.

    The buyers are a shorter list and they're not priced the way you'd guess. “Roofing companies near me” is 127,000 searches a month at about $2.50, the biggest qualified volume in the trade and a price you can plan around. “Roofing company near me” is another 49,000 at the same $2.50. “Roofing near me” is 47,000 at about $5.00. Then the strange pair: “roofing contractors near me” at 31,000 and about $9.00, and “roofing contractor near me” at 31,000 and about $0.70. Same meaning, one plural, thirteen times the click price. Don't build a plan around dodging the expensive one - close variants mean a keyword on either serves on both. Build a plan around reading what you actually paid.

    Then run one more test on every term before it goes near the account. Read it cold, with nobody standing there explaining what you do, and ask whether it could match a search for something you don't sell. Bare “roof” fails instantly. Bare “roofing” drags in the supply houses and the guys looking for crew work, which is why “roofing supply” and “roofing jobs” are on the block list even for an account that never touches broad match. “Metal roofing” half-fails, which is a different answer again: 63,000 searches a month, mostly people pricing panels for a shed, but with real contractors ranking on that page too. That one isn't a negative and it isn't a keyword you drop into the reroof group. It's its own ad group with its own page.

    • Say it out loud for every term: who types this, and what do they want by Friday?
    • Buyer words: near me, your town, storm damage, hail damage, roof leak, replacement, reroof, quote, contractor, company.
    • Buyer words you'd never guess: HOA-approved shingle colors, and the whole-street work that follows one hail event through one subdivision.
    • Reader words: calculator, how to measure, diy, shingles for sale, sealant, jobs, salary, rack, tent.
    • Three words beats one. 40 searches a month with buy intent beats 40,000 without.
    • Volume is what a word costs you. It is not what the word is worth.
    • Every keyword starts as phrase match. Exact match is earned later by a search that produced an inspection.

    Nine roofing searches: five buyers, one mixed, two to block and one to leave strictly alone

    • roofing companies near me - 127,000/mo, ~$2.50 - BUY. The biggest qualified volume in the trade, at a price you can build a budget on.
    • roofing company near me - 49,000/mo, ~$2.50 - BUY. Same intent, singular, same price.
    • roofing near me - 47,000/mo, ~$5.00 - BUY, twice the price of the two above it.
    • roofing contractors near me - 31,000/mo, ~$9.00 - BUY, and the priciest click on the list.
    • roofing contractor near me - 31,000/mo, ~$0.70 - another 31,000 searches, one letter shorter, at a thirteenth of the price.
    • metal roofing - 63,000/mo, ~$3.50 - MIXED. Mostly panel shopping, some real hires. Own ad group, own page, never a negative.
    • roof shingles - 29,000/mo - shopping by the bundle, and the one row here you leave strictly alone. A negative would also block “replace roof shingles near me”.
    • roofing calculator - 4,500/mo - pricing the job themselves. Block it.
    • roofing jobs - 2,400/mo - looking for work on a crew. Block it.
  2. 2

    Open the page your hail ads will land on

    Every ad points at one page, and that page decides whether a $9.00 click turns into an inspection on the calendar. The homepage is the wrong page for almost everything. A homepage answers “who are you”; somebody holding a shingle they found in the yard is asking “can you come and look at this, and what happens then”. Two honest exceptions: somebody searching your business name, and a one-service company whose homepage is the offer. If the reason is that no storm damage page exists yet, build the page first. The exception you think you have is a page nobody has written.

    So pull it up on a phone - your phone, standing in the driveway, not the big monitor - and read it as the person who's already been door-knocked twice this week. Does the first heading say what happened, storm damage or hail or a leak, and name the county? Can you tap the number without scrolling? Is there a license number, a real street address and a photograph of a job that's obviously not a stock house? Roofing carries a suspicion problem plumbing doesn't, and a page that could belong to any crew with a magnetic sign is where a good click goes to die.

    Before you close the laptop, write down the work you turn down. RV and mobile home roofs, sheds and carports, roof cleaning, moss, solar, chimneys, commercial flat work if you only do residential. That list is worth real money: it becomes negative keywords in step five, and work you don't sell is where most of a small account's waste hides. And if you want the metal roofing traffic, this is the moment you find out whether you have a page about standing seam at all, because sending that click to a shingle page burns $3.50 every time it happens.

    • The first big heading names the job and the place: Hail Damage Roof Repair, Oklahoma City.
    • A tap-to-call number in the first screenful on a phone. Not only in the footer.
    • License number, physical address, years in the county. The trust answer, above the fold.
    • What the free inspection actually involves, and what you do with the photos afterwards.
    • A plain line about what happens if the decking is rotten under the old shingles, because that's the change order every homeowner has already heard about.
    • Proof with a number in it: roofs completed, years trading, two named reviews from towns nearby.
    • One thing to do. Not four.
    • A separate page for replacement, one for repair, one for metal if you sell it. One ad group each.
  3. 3

    Build the shape, and settle the match types first

    A campaign is a budget with a goal attached, and that's the only reason to open another one. Not per keyword, not per match type, not per zip code on your service map - each of those splits your conversion data into piles too small to read. An ad group is one theme: keywords close enough in meaning that a single ad answers all of them honestly. “Storm damage roof repair”, “hail damage roof repair” and “wind damage roof repair” belong in one group. “Roof replacement” doesn't, because it wants different headlines and a different page. And skip single-keyword ad groups. That's 2018 advice; exact match has matched close variants for years, so the isolation they promised never existed, and Smart Bidding needs the conversions pooled rather than scattered across five groups seeing three inspections apiece.

    Now the match types, and on this trade they come before the budget conversation rather than after it. Everything starts on phrase match. Phrase means the meaning of your term plus more specific versions of it, in any order that keeps the meaning - so “roof repair” picks up “roof repair near me tulsa” and “fix my roof”, and doesn't pick up “sunroof repair”, because a sunroof is a different thing and Google knows it. Exact match hasn't been literal since 2014, when plurals and misspellings became close variants, and it got looser again in 2018 when same-meaning variants came in: [roofing contractor] serves on “roofing contractors”, on misspellings and on close synonyms, and there's no setting anywhere that turns that off. Anybody who tells you otherwise stopped reading in 2013.

    Leave broad match switched off until three things are true at the same time: a conversion-based bid strategy, tracking that counts a real inspection or a signed job rather than a page view, and a negative list somebody actually maintains. Missing any one of them, broad on a roofing account is the worst version of this problem on the internet, because the bare word carries racks, tents, sealant and sore mouths and broad is the only match type that goes looking for them. Under roughly 30 conversions a month, none of the three is true. When you do turn it on, one day, give it its own campaign and a budget you could afford to set on fire. And when a specific search has produced real inspections, add it again as exact so it gets its own ad and its own page - that's the harvest, and it's how a roofing account gets good.

    Then do the arithmetic out loud before you set a budget, because a reroof isn't a leak repair and the math is different. At about $2.50 a click, $50 a day buys 20 clicks, 600 a month. If 1 in 25 of those asks for an inspection you get 24 inspections, you quote maybe 16 of them and you win 3 or 4. On a five-figure job that's a good month. On $600 leak repairs it's a disaster, which is why splitting by job value earns its keep. Notice what the ad can't promise, either: a 28-square tear-off with rotten decking under the north slope is a different number from a 28-square tear-off without, so the ad sells the inspection and the page explains how you quote. And the slow half nobody plans for - a homeowner who clicked in week two of hail season signs in month two, so a campaign that looks dead at day 14 can be the one that pays for the year. Set the date you'll judge it and keep it. Set it further out than a plumber would.

    Budget arithmetic, done before the campaign exists

    • $50/day on “roofing companies near me” at ~$2.50 = 20 clicks a day, 600 a month. Enough to read inside two weeks.
    • $50/day on “roofing contractors near me” at ~$9.00 = 5 clicks a day. That is right on the floor where a month of data still says nothing.
    • The plural pair is not a loophole: “roofing contractor near me” is ~$0.70 and “roofing contractors near me” is ~$9.00, and close variants mean a keyword on either serves on both. Read the search terms report to see which one you actually bought.
    • 600 clicks, 1 in 25 requesting an inspection = 24 inspections. Quote 16, win 3. At $1,520 of ad spend that is about $500 of ads per job won.
    • $500 per job is fine on a reroof and ruinous on a $600 repair. Split the campaigns by job value, not by keyword.
    • Google may spend up to double the daily budget on one day, but never more than 30.4x it in a month. $50/day is a $1,520 ceiling, not a promise of exactly $50.
    • The same $50 across four campaigns = 5 clicks a day each. Thirty days later you have four campaigns and no verdict.
  4. None of this is difficult. It is a long run of small decisions, and each one quietly costs money when it goes the wrong way. The agent makes them for you and shows you every single one before it touches the account.

    Start free - no credit cardFree for 7 days. No card, no call, cancel whenever.
  5. 4

    Twelve headlines, and the three that decide the ad

    Three to fifteen headlines, thirty characters each. Two to four descriptions at ninety. Write twelve and three, and make every one earn its slot - a near-twin is worse than a blank, because Google tests the same claim twice and learns nothing either time. Count them yourself with the spaces in; the box will happily save you something that gets cut off on a phone. Whatever matched the search gets bolded wherever it lands, which is why “hail damage roof repair” goes in as a headline in the homeowner's spelling and not in roofer spelling.

    Here's the check nobody runs. Google picks any three of your twelve and orders them itself, so what you shipped isn't twelve headlines, it's every trio those twelve can make, and you pay list price for whichever one serves at seven on a Wednesday morning. Pull the three that say least about the work, stand them side by side, and read them as somebody who has never heard of you. “Family Owned Since 1998 | Fast, Fair, Honest | Free Estimates Today” is a finished ad for a paving crew or a tree service. Nothing in it is about a roof.

    Give each headline one job and don't hand the same job to two of them. “Hail Damage Roof Repair OKC”, “Roofer On Site In 24 Hours” and “Written Roof Quote First” all say roof and overlap on nothing, because one is the search term, one is speed and one is how the money works. What ruins a set is five headlines making the same trust claim with the words shuffled - licensed, insured, trusted, local and family run are one claim wearing five outfits, and it gets one slot. Vary the lengths on purpose too. When everything runs 29 or 30 characters, Google often finds room for only two.

    Counted by hand: five that work, two that failed the cold read, and their replacements

    • Hail Damage Roof Repair OKC (27) - the search term, spelled how they type it.
    • Tear-Off & Reroof (17) - short, and still says exactly what the work is.
    • Roofer On Site In 24 Hours (26) - the speed claim, once.
    • Written Roof Quote First (24) - how the money works, once.
    • 1,400 Roofs Done In OKC (23) - proof, with a number in it.
    • WEAK: Family Owned Since 1998 (23) - true, and it could be a fence company.
    • FIXED: Storm Damage Roofing OKC (24)
    • WEAK: Free Estimates Today (20) - estimates for what? Nothing in it says roof.
    • FIXED: Free Roof Inspection (20)
  6. 5

    Block list first, before a single impression

    Negatives are the build. They go in before the campaign serves its first impression, because a roofing campaign without them buys shingle shoppers, roofing calculators and people looking for work on a crew from hour one. Put them at campaign level, and put the biggest one in first: every service you don't offer. RV roofs, sheds, moss removal, solar, commercial flat work if you're residential only. That's the single largest source of waste in small trade accounts and the one nobody can write for you.

    Now the roofing-specific trap, and it's nastier here than anywhere else on this site. A negative keyword blocks any query containing your words, which means a negative aimed at a drain can take a customer with it. “Roof shingles” is the biggest row in the whole table at 29,000 searches a month, and it's still not safe to block, because “replace roof shingles near me” contains those two words in that order and that person is spending five figures. Same with “inspection”, which is half your own offer, and “free”, which is the other half. Same again with “roofing license”, because “roofing license lookup” is a homeowner checking your board record. Block the phrase around the drain - “shingles for sale”, “bundle of shingles”, “roofing license exam” - and leave the bare words alone.

    Then the footgun that makes people say negatives don't work. A negative doesn't stretch the way a normal keyword does: it won't match a plural and it won't match a synonym. “Rack” doesn't block “racks”. “Cheap” leaves “inexpensive” running all month. And “job” doesn't touch “jobs”, which cuts both ways here - you want “roofing jobs” blocked and you badly don't want bare “job” blocked, because “roof job cost” is a homeowner asking your price. Add both forms when both forms are junk, and read the list back asking which side of that line each word sits on.

    The day-one list for a residential storm and reroof account

    • roof rack, roof racks, cross bars, roof box, roof boxes, roof top tent, rooftop tent, sunroof, moonroof, thule, yakima
    • shingles for sale, bundle of shingles, buy shingles, roof sealant, roof coating, roofing felt, roofing nails, home depot, lowes, abc supply, roofing supply, roofing supplies
    • roofing calculator, roof calculator, shingle calculator, how many squares, how to measure a roof, how to install, how to shingle, how to replace shingles, diy roof, do it yourself, youtube, tutorial
    • roofing jobs, roofer jobs, hiring roofers, now hiring, roofer salary, roofing apprentice, roofing license exam, get roofing license, osha training, roofing school
    • roofing leads, roofing crm, roofing software, roofing marketing, roofing seo, roofers liability insurance, roofing bond, roofing franchise, roofing business for sale
    • roof of mouth, sore roof of mouth, palate, roof is on fire, lyrics, raise the roof, roof rat, roof rats, roof prism
    • Everything you don't do: rv roof, camper roof, mobile home roof, shed roof, carport, pergola, roof cleaning, moss removal, solar panel install
    • Careful: never bare “roof”, “roofing”, “free”, “inspection”, “cost”, “near me”, “job”, “roofing license” or “metal roofing”. Every one of those has a paying customer standing behind it.
    • “How to measure a roof” is on the list and bare “how to” is deliberately not. “How to choose a roofing contractor” is somebody picking a roofer, and “how to tell if my roof needs replacing” is somebody about to find out it does. Block the DIY phrase, never the two words on their own.
  7. Everything past this point is the work that never finishes: reading search terms, adding negatives, checking what the budget did overnight. That is exactly the part the agent takes off your hands.

    Start free - no credit cardFree for 7 days. No card, no call, cancel whenever.
  8. 6

    What counts as a conversion when the job is a roof

    Most roofing accounts measure nothing and then get judged on clicks, which say nothing about whether a ladder went up. If your work arrives as a phone call, Google Ads will build the call conversion for you: it shows a forwarding number in the ad and counts any call past a length you set. The default is 60 seconds. That's a judgment call, not a rule - a storm-season booking that ends in “Thursday morning, what's the address” can be real in forty seconds, while a claim conversation that only counts once an inspection is on the calendar may want two minutes. Ten minutes of setup, and the phone starts telling you which keyword paid for it.

    If the work arrives as an inspection request form, you need a conversion firing on the page people land on after they hit send, which means two snippets of Google's code going onto your site. Check two things before you go anywhere near a developer. Auto-tagging first: switched off, Analytics can't tie a signed reroof back to the click that started it, so perfectly good storm campaigns read as dead ones in the quiet month and get paused by their own owner. Second, go looking for conversions Google already imported from your Analytics and left disabled. That's a switch, not a project, and plenty of accounts have been sitting on it for a year.

    Then the two numbers only you have, and on this trade they matter more than anywhere else on the site because the job is worth so much. What's one lead actually worth - your gross profit on a job, times the share of leads you get to quote, times the share of quotes you win? Without that number Google treats a $700 leak repair and a $16,000 reroof as the same event and will happily buy you more of the cheap one. And when can somebody answer? Ads run 24 hours by default, and the week after hail the phone starts at seven in the morning. If nobody picks up at that hour, you paid for that homeowner to call the next roofer on the page.

    • Auto-tagging on, if it isn't already. One switch, nothing to lose.
    • Check for Analytics conversions sitting imported but disabled, then enable them.
    • Create the call conversion, with a minimum length that matches how your calls really go.
    • Put a value on a lead: gross profit per job x quote rate x win rate. Your numbers, not a benchmark.
    • Track the inspection request and the signed job separately if the CRM can report both. One is traffic quality, the other is the business.
    • Set an ad schedule to the hours somebody picks up, then widen it deliberately in storm season rather than by accident.
    • Google counts from the day you switch it on and never backfills. The first booked inspection is your proof, not the setup screen.
  9. 7

    The loop, and what a storm does to it

    First forty-eight hours, two questions and nothing else: is money leaving the account, and did the ad get approved. Zero spend on day two isn't a slow start, it's a fault - disapproved copy, a target throttling it, or a location setting that quietly excludes the county the shop sits in. Go find which. Nothing on the screen separates an account that can't serve from one that's warming up, so the silence gets blamed on the keywords instead.

    Day seven you open the search terms report and do exactly one thing: block. No bids, no budgets, no harvesting, no verdicts - week one is noise and a bid strategy still in learning will punish you for touching it. Days fourteen to thirty are the first honest read: cost per inspection by ad group, the report again for waste and gold both, and every search that produced a real inspection goes back in as exact with an ad of its own. Harvesting is the job, and it stays the job.

    Then the part that belongs to roofing alone. Your read has to survive a storm. When hail lands, the search terms report fills up in three days with wordings you've never seen, the good and the junk together, and the budget you set for a normal month is gone by lunchtime on the best day of the year. Somebody has to be in the account that week. The opposite problem shows up in February, where a campaign that looks like it's failing is often a campaign that's simply out of season - so judge it against the same month last year rather than against last month. Month two on a new campaign, one decision each: feed it, fix it, or stop it. A campaign that spent three times your target cost per job with working tracking and nothing signed isn't still learning, though on a reroof, check the quotes still open before you call it.

    Two weeks of search terms after a hailstorm, and what each row earns

    • “hail damage roof repair okc” - 11 clicks, 3 inspections -> add as exact match, and give it its own ad.
    • “roof leaking after storm” - 7 clicks, 2 inspections -> add as exact match.
    • “roofing companies near me open now” - 9 clicks, 1 inspection -> add as exact match.
    • “roof damage insurance claim contractor” - 5 clicks, 1 inspection -> harvest it, don't block it. This is storm work talking.
    • “how much does a new roof cost 2000 sq ft” - 14 clicks, 0 inspections -> leave it running for now. That's a homeowner pricing a reroof, and reroofs close in month two, not week two.
    • “how many bundles of shingles for 1500 sq ft” - 6 clicks, 0 inspections -> negative phrase “how many bundles”. They're pricing the material to lay it themselves, and “how many squares” never saw this wording.
    • “roof decking plywood menards” - 4 clicks, 0 inspections -> negative phrase “menards”. Your list caught Home Depot and Lowe's and never thought about the third one.
    • “roofing crew wanted okc” - 3 clicks, 0 inspections -> negative phrase “crew wanted”. Your list had “roofing jobs”; this one came in on wording it never saw. Somebody wants work, not a roof.
    • Every row above got past a day-one list already blocking “roof rack”, “roofing calculator”, “roofer salary” and “diy roof”. That's the point of the every-other-week read: the list is never finished, and a hailstorm rewrites it in three days.
    • And these are only the terms Google will show you. Low-volume searches sit below a privacy threshold, so the rows never add up to the full spend - don't tell yourself you've accounted for every dollar.

The finished ad for the storm and hail group

One ad group - hail damage repair in Oklahoma City - written for a roofing company that doesn't exist. Twelve headlines, every one counted by hand, and one description. The card draws the first three, because three is the most a searcher ever gets and on a phone it's often two; the other nine sit underneath as the pool Google picks from. Google's floor is two descriptions and its ceiling is four, and it shows at most two of them, so what you see here is the one that has to carry the ad on its own. Nobody ever sees the whole ad you wrote, and that surprises everybody the first time.

Example of a Google search ad for this trade, as one searcher would see it
Sponsored

redbudroofing.comStorm-Damage/OKC

Hail Damage Roof Repair OKC|Storm Damage Roofing OKC|Roof Repair Oklahoma City

Hail or wind damage? A licensed roofer inspects the roof and quotes before any work.

  • Storm Damage Repair
  • Roof Replacement
  • Roof Leak Repair
  • Gutters & Ridge Vents

The other 9 headlines you wrote

Google picks three of the 12 for every auction and puts them in an order you don't choose. That is why each one has to make sense next to any other.

  • Free Roof Inspection
  • Roof Leak Fixed This Week
  • Roofer On Site In 24 Hours
  • 1,400 Roofs Done In OKC
  • Written Roof Quote First
  • Tear-Off & Reroof
  • Shingle Roof Replacement
  • Licensed, Insured Roofer
  • Ridge Vent & Gutter Work
  • The search term goes in twice at most.. Google bolds whatever matched the search, wherever that headline lands, which is why “Hail Damage Roof Repair OKC” sits in there in the words a homeowner types at seven the morning after. Google also asks for at least three headlines that don't carry the keyword at all, so the rest name a roof another way - the leak, the tear-off, the ridge vent - instead of saying hail four more times.
  • Sample the weak end, because the strong end always passes.. The trio that decides this ad is the one carrying the least information. Here that's “Tear-Off & Reroof”, “Licensed, Insured Roofer” and “Ridge Vent & Gutter Work”. Read them side by side as somebody who's never heard of you: you know the trade, you know roughly what the work involves, and you know the crew is licensed. That's a pass. A set whose weakest trio reads “Family Owned Since 1998 | Fast, Fair, Honest | Free Estimates Today” is unfinished, however good the other nine are.
  • Twelve slots, twelve claims, and no claim twice.. The search term, the storm wording, the city, the free inspection, the leak fixed this week, the twenty-four hours, 1,400 roofs, the written quote, tear-off, shingle replacement, the license, and the ridge vent and gutter work that catches the small job. What's missing is the trust claim four times over. Licensed, insured, trusted, local and family run are one claim in five outfits, and it gets one slot.
  • “Free Roof Inspection” is doing two jobs.. It's the offer, and it's the cheapest filter in the ad. Somebody who wanted a roofing calculator reads a headline about an inspection and scrolls past, and you don't pay for them. Just remember what rides along with the phrase: after a hail event the neighborhood has been door-knocked twice already, so the page behind that headline has to answer the suspicion in the first screen or you've bought a click and confirmed a doubt.
  • Two descriptions minimum, and at most two of them ever serve.. Google won't save the ad with fewer than two and won't take more than four, then it decides which one or two a searcher sees. The one above carries the storm, the license and the quote-before-work. Write a second around what happens next - who comes out, what gets photographed, when you come back with a number - and a third only when you have a claim neither of the first two makes. A reworded twin just hands Google a weaker version of your best line to spend money on.
  • The lengths run 17 to 27 characters, and that's deliberate.. Three headlines is a ceiling, not a promise. When every one of them runs 29 or 30 characters the third slot goes empty and a third of the ad you wrote never appears. “Tear-Off & Reroof” is seventeen characters and still names the work, which is the only thing a short headline has to do.
  • Four sitelinks, and the ad above you already has them.. A roofing results page after a hail event is four ads deep. Yours without extensions is physically shorter than the ones around it on a phone, and extensions cost nothing to add. These four answer the question that comes after the click - repair or replacement, and do you touch gutters - without anybody editing the landing page.

The account a roofing company can actually afford to run

Two working campaigns and a small defensive one, five ad groups between them - two in storm, two in replacement, one on your own name. Five is one more than this budget really wants, and it's here for a single reason: metal roofing cannot share an ad with a shingle tear-off without lying to somebody. Each group is narrow enough that one ad answers every keyword in it and points at one page. Everything starts on phrase match, no exceptions, for the reason this whole page is about. Exact is earned later, by the searches that put a ladder on a roof.

Storm and Hail - Oklahoma City

$60/day, an $1,824 monthly ceiling. These terms run around $2.50 to $5.00, so expect 12 to 24 clicks a day - enough to read inside two weeks. This is also the budget somebody has to be willing to raise by hand within hours of a storm, because the day hail lands is the day the cap costs you real roofs.

  • Storm and hail damage

    storm damage roof repair, hail damage roof repair, wind damage roof repair, roof damage repair near me, storm damage roofing company, emergency roof tarp, missing shingles after storm

  • Roof leaks

    roof leak repair near me, leaking roof repair, ceiling leak from roof, flashing leak repair, roof repair near me

Roof Replacement - OKC

$40/day, a $1,216 monthly ceiling. Slower and pricier per lead than storm work, and worth it because the job is five figures. Judge this one at month two, not at day 14.

  • Reroof and tear-off

    roof replacement near me, new roof cost, reroof my house, tear off and reroof, shingle roof replacement, roofing companies near me, roofing contractor near me

  • Metal roofing

    metal roof installation near me, standing seam metal roof, metal roof contractor near me, metal roof cost installed

Brand - Redbud Roofing

$5/day, and only if somebody else is bidding on your name.

  • Your own name

    redbud roofing, redbud roofing okc, redbud roofers oklahoma city

Why it's shaped like this. Storm work and replacement work are split because they need different budgets, different pages and a different clock - one is judged in a week, the other in a season. Hail and wind sit in one group rather than two, because they want the same ad and the same page, and splitting a dozen inspections a month across two groups leaves neither one saying anything. Metal roofing gets its own group precisely because “metal roofing” is a mixed term: 63,000 searches a month, mostly people pricing panels for a shed, with real contractors ranking on that page too. The group buys it its own headlines about standing seam and its own landing page. What it doesn't buy is its own money - ad groups share a campaign budget, so watch it for a month, and the day it starts outspending tear-off, move it into a campaign of its own. Your own name always sits apart: brand clicks are cheap and convert better than anything else you run, so blended into the main campaign they drag the average down and hide the fact that storm work is losing money underneath, which is the most common way a small account looks fine and isn't. Before you even run the brand campaign, check whether anybody else is advertising on your name; if you're already top of the free results and nobody's bidding, you're mostly buying clicks you'd get for nothing. Commercial and flat roofing are missing on purpose. “Commercial roofing” is 41,000 searches a month at about $7.00 and it's a genuinely different buyer with a longer sale, so it deserves its own campaign and its own budget - funded on top rather than carved out. The three campaigns above already come to about $3,190 a month at $105 a day, and every dollar of that is spoken for. Commercial at $7.00 a click needs roughly $70 a day of its own before a month of data says anything, and taking that out of storm work is how you lose the four days that pay for the year.

Do it yourself, or hand it over. Both are real.

Every login this needs is already in your pocket. No developer, no retainer, no agency. One rained-off afternoon is enough to build the whole thing.

What it really costs is attention, paid on a schedule that has no opinion about your week. The account doesn't know a tear-off ran two days long or that hail just landed one county over. It spends at the same rate on a dead Tuesday in February and on the best morning of the year.

Doing it by hand

  • A weekend for the build: the research, the match types, the structure, twelve headlines counted on paper, the block list, the tracking.
  • Then an hour every second week, and it never stops. The weeks you skip are the busy ones, and the busy ones are why you bought ads in the first place.
  • The expensive mistakes are the silent ones. One inherited keyword still sitting on broad match. A disapproved ad that never served. Brand and non-brand blended until the average looks healthy.
  • One loose match type on a bare roof term is what opens the door to racks, tents, sealant and sore mouths. At about $9.00 a click on the expensive terms, forty-five of those in a month is $405 gone, every month, until somebody opens the search terms report and stops it.
  • Nothing on the screen tells you any of it. Google will bill you for “roofing calculator” all season and mail you a tidy report about it.

What the agent does instead

  • One Google sign-in connects your Ads account. No API keys, no developer, no onboarding call - and if your site needs a tracking snippet, the agent creates the conversion and hands you Google's code with a copy button.
  • The agent works through the account itself and writes every proposed change as a card in plain English: what it wants to do, why, and what it costs.
  • You tap approve or skip. Nothing is applied without that tap. Every applied change has one-click revert and a before/after snapshot.
  • It builds whole campaigns, writes the ads, adds negative keywords, changes budgets, bids and targeting. It won't delete a campaign and never touches shared budgets.
  • It can't answer your phone in the week after hail, can't promise you a ranking, and can't see what the roofer across town bids. Anyone claiming otherwise is selling you something.
  • Free for 7 days, no card. Growth $99/mo, Pro $249/mo. If you'd rather never open it, Takeoff is $1,200 to set up plus $500/mo, with a money-back revenue guarantee.

What a roofing marketing agency charges, and why the bill peaks the same month you do.

Agencies that specialize in storm restoration bill a monthly retainer plus a percentage of your ad spend. Ten to twenty percent is the usual range. The month hail lands you quadruple the budget to catch the work, and their percentage quadruples with it, automatically, for the same people doing the same job.

Illustrative example. Agencies vary, so check your own contract. The arithmetic is on the page so you can run it against your own invoice.

You spend $3,000/month on ads

Roofing marketing agency

$1,450/mo

$1,000 retainer + 15% of $3,000 ($450) - on top of the $3,000 Google already takes

AdPilot

$99/mo

Flat, whatever you spend

You spend $12,000/month on ads

Roofing marketing agency

$2,800/mo

$1,000 retainer + 15% of $12,000 ($1,800) - storm season - your spend went up four times and so did their cut

AdPilot

$99/mo

Flat, whatever you spend

You spend $30,000/month on ads

Roofing marketing agency

$5,500/mo

15% alone is $4,500/mo, with the retainer still on top - and it climbs every time you add a crew

AdPilot

$99/mo

Flat, whatever you spend

At $12,000 a month in ad spend, that agency takes more than $33,000 out of the business in a year, and the invoice climbs every time the weather does you a favor. AdPilot is one flat monthly price and it does not move when your spend does. That difference is a truck and a crew for a season.

Google Ads management for roofers, shown as cards you approve one at a time.

What you actually pay a roofing agency for is the hands-on part. Keeping every keyword on a match type that cannot reach a roof rack, splitting storm work from replacement work, digging through the search terms a hailstorm dumps into the account in three days, moving the budget on the one morning it matters, writing ads that book inspections rather than collect clicks. AdPilot's agent does that work and shows its reasoning on every card.

Examples of what the cards look like - not results from your account

Builds your campaigns

Build a separate Storm and Hail campaign: its own budget, its own landing page, 12 headlines that lead with hail rather than with years in business, and 12 keywords written the way a homeowner types the morning after. Built out and waiting on your approval.

Proposed change

Approve Skip

What it’s doing: Writing the whole campaign for you, ad text included, so nobody has to stare at an empty form the week the phone should be ringing. It goes live only when you say so.

Finds wasted spend

You paid for 38 clicks this month on searches containing “roofing jobs” - $131, and every one of them was somebody looking for work on a crew, not a homeowner looking at a ceiling stain. Add it as a negative and the spending stops tonight.

Proposed change

Approve Skip

What it’s doing: Reading your search terms for money that never turns into a booked inspection, then closing the leaks. (A “negative keyword” simply tells Google not to show your ad for that search.)

Tightens your targeting

You're paying for clicks 58 miles out, past two suppliers and a turnpike. Your crews won't drive that for a leak repair, and half of those clicks are on repair terms.

Proposed change

Approve Skip

What it’s doing: Matching your money to the radius your crews and your supply house actually make sense in, instead of one big circle over the metro.

Drafts better ads

Your storm ads and your reroof ads run the same four headlines about years in business. Here are 12 written for hail specifically, built around what happens this week rather than around how long you've been trading.

Proposed change

Approve Skip

What it’s doing: Writing ads per job type instead of per company, so the ad answers what somebody typed while standing in the yard holding a shingle.

Set up in minutes. No PPC background needed.

You don’t need to know what a “match type” or a “quality score” is. AdPilot does the analysis and explains everything in plain English.

  1. 1

    Connect your Google Ads account

    One secure Google sign-in - nothing to install, no API keys, no technical setup. AdPilot analyzes your account and never changes anything until you approve it, one tap at a time. Disconnect anytime.

  2. 2

    Answer a few plain questions

    Tell AdPilot your goal - more calls? more sales? a lower cost per customer? - and a couple of simple numbers about your business, like what one customer is worth to you. Plain words, no jargon.

  3. 3

    Approve improvements with one tap

    AdPilot reads your account - or builds you a brand-new campaign from scratch - and hands you concrete moves as plain-language cards, each explaining what it does and why. Tap Approve on the ones you like. Skip the rest.

Start free - no credit card

Free 7 days · No credit card · You approve every change · Cancel anytime

Hail does not wait for the monthly report.

Agencies review on a schedule. The weather does not.

A storm lands on a Tuesday night and the searching starts before breakfast. On a monthly reporting cycle you find out in week five that the campaign hit its daily cap by noon on Wednesday, that the ad group with the wrong landing page took half the clicks, and that the roofs went to whoever answered. Nobody can run that week again.

Reading yesterday every morning is a hand on the wheel. Reading five weeks of it in a summary is a hand on a season the sky already decided.

AdPilot vs a roofing marketing agency

A fair comparison, without a straw man in sight.

What you pay

Roofing agency: A retainer, usually with a percentage of ad spend on top. Their cut peaks in storm season, which is exactly the month you are already paying for materials, labor and a second dumpster.

AdPilot: One flat monthly price. It does not move when your ad spend does, in hail season or in February.

How fast a problem gets fixed

Roofing agency: You raise it, it joins a queue, you hear back next week. Hail does not run on a weekly cadence.

AdPilot: The account is read every morning. A leak that starts today is a card in front of you tomorrow, while the month can still be saved.

Who holds the account

Roofing agency: You hand over access. Changes happen and you read about them in the report.

AdPilot: You keep the keys. Every change waits for your one-tap approval, with a snapshot and one-click revert behind it.

Conflicts of interest

Roofing agency: Storm agencies routinely sign several roofers in the same metro, and after a hail event all of them want the same four days of traffic. Your budget may be funding a competitor's learning curve, and you are bidding against their other client.

AdPilot: It is software. It works on your account only. Nobody is splitting their attention between you and the crew across town, and no account manager is carrying your best keyword to them.

Contract

Roofing agency: Six or twelve month minimum terms are common, which in this trade means paying through the quiet months for the storm months you signed up for.

AdPilot: Month to month, cancel anytime. Free 7 days first, no card.

Start free - no credit card

Free 7 days · No credit card · You approve every change · Cancel anytime

You keep the account, and the next storm does not need a phone call to react to.

Almost no roofing company owner ends up understanding their own Ads account. Nobody sits down and explains it, and an agency has no particular reason to start. AdPilot runs the other way round. Every card tells you:

  • What it changes - for example, move “roof repair” off broad match, where it spent $340 on sealant, calculator and shingle-shopping searches.
  • Why it helps - the argument behind it, not only the instruction.
  • What it is based on - figures taken from your own account.

Approve one and a snapshot is saved first. Then a before and after dashboard shows what happened to cost per booked inspection, clicks and spend, in words that don't need a marketing course behind them. A season in and you know which levers put ladders on roofs, and which ones only ever filled the report.

Flat, predictable pricing. It never grows with your ad spend.

Start with a free 7-day trial. No card. Pick a plan at the end, or walk away. Every plan is flat, so whether the business spends $2,000 a month on ads or $30,000 in the four weeks after a hailstorm, your AdPilot price is the same. We never take a percentage of your spend.

Growth
Most popular
$99/ month

For the solo advertiser running their own shop.

1 Google Ads account

  • 7 days free
  • No credit card to start
  • Cancel anytime
Start free
Pro
$249/ month

For power users & freelancers with several clients.

10 Google Ads accounts

  • 7 days free
  • No credit card to start
  • Cancel anytime
Start free

Full plan details on the pricing page.

AdPilot is new - and we’d rather earn your trust than fake it.

We could plaster this page with five-star quotes and a “trusted by 10,000 businesses” banner. We won’t - because AdPilot is new, and inventing proof would be lying to you. Instead, here’s what actually protects you:

  • You risk nothing to try it. 7 days free, no credit card. If it isn’t useful, you walk away having spent nothing.
  • Your account is never at risk. Nothing is ever applied without your one-tap approval, a snapshot is saved before every edit, every change has one-click revert, and a full audit log records it. The worst case is a suggestion you don’t like - so you just don’t approve it.
  • Guardrails you can’t trip by accident. AdPilot never deletes campaigns and never touches shared budgets. Some doors simply don’t exist.
  • Built by an operator, not a VC-funded black box. Software made to give small businesses the Google Ads work an agency charges a retainer for - without agency prices or the loss of control.

Judge us on the work, the math, and the safeguards - on your own numbers, not our adjectives.

Questions, answered straight

Am I really paying for roof rack searches?

Probably not, and the honest answer matters more than a scare. Google matches meanings, not letters, so a keyword on phrase or exact match for “roof repair” will never serve on “sunroof”, “roof top tent” or “roof of mouth hurts”. Go and read your own search terms report - if you're on phrase match you won't find those rows. What is true is that a bare roof term on broad match goes looking, and that's the one match type most inherited accounts have switched on somewhere without anybody deciding to. The first thing AdPilot reads in an account it has never seen is which match types are running.

Should I ever use broad match on roofing terms?

Not until the three conditions in step three of the guide are true at the same time, and under roughly 30 conversions a month they won't be. Roofing is the worst trade in the country to be loose in, because the bare word carries car racks, camping gear, shingle shopping and human anatomy. When you do try it, give it its own campaign and a budget you could afford to lose.

“Roofing contractor near me” is $0.70 and the plural is $9.00. Can I just bid the cheap one?

No, and this is the most useful thing on the page. Plurals have counted as close variants since 2014 and exact match widened to same-meaning variants in 2018, so a keyword on either one serves on both and there's no setting that turns it off. When both are in the account, Google routes each query to whichever keyword matches it exactly, which means that thirteenfold gap is a fact about a keyword tool's averages rather than a lever you can pull. The only price that's yours is in the search terms report: which wording you actually got, what it actually cost, and which of the two produced an inspection.

What happens to my campaigns in storm season?

The searching spikes within hours and a normal daily budget hits its cap before lunch, which is a decision somebody has to make with their hand on the account that morning. AdPilot pulls your campaign numbers every morning and reads yesterday against your own trailing average, so a spend spike or a campaign that has gone dark reaches you the next morning as an alert and comes back as cards - rather than as a line in next month's report. What it won't do is sit on the account minute by minute. On the Wednesday after hail the fastest hand on that budget is still yours, and the card is there to make the call obvious rather than to make it for you. It proposes; you approve. The budget never moves on its own.

Do you help with insurance claim work?

We're an ads company, so we help with the advertising side of it and we stop there. What we will say is that a claim-funded reroof is a different sale from a cash one - the homeowner is thinking about the deductible and the adjuster rather than comparing three quotes - which means it wants its own ad and its own page. How the claim itself is handled is your business and your attorney's, and anyone in marketing who tells you otherwise is outside their lane.

Should “metal roofing” get its own campaign?

Its own ad group at minimum, and its own landing page. It's 63,000 searches a month at about $3.50, and the first page of results is mostly panel suppliers and cost guides - but real roofing contractors rank there too, so some of that traffic would hire somebody. Dropped into a shingle replacement ad group it pays panel-shopper prices and lands on the wrong page. Blocked as a negative it costs you the hires. Split it out, watch it for a month, and move it into a campaign of its own the day it starts outspending tear-off, because ad groups share a budget and a 63,000-a-month term wins that fight.

What should count as a conversion for a roofer?

A call of real length, or a submitted inspection request, and the signed job behind it if your CRM can report one. Google's call conversion counts anything past 60 seconds unless you change it, which misses the storm-season booking that took forty and counts the wrong number who rambled for ninety - so set a length that matches how your calls actually go. Then put a value on a lead - your gross profit per job, times your quote rate, times your win rate - or Google will treat a $700 leak repair and a $16,000 reroof as the same event and cheerfully buy you more of the first one.

Do you handle Local Services Ads and the Google Guaranteed badge?

Local Services Ads sit in a separate Google product with their own screening, badge and lead flow. AdPilot works inside your Google Ads account: Search, Shopping and Performance Max campaigns, keywords, budgets, bids, targeting and ad copy. Plenty of roofers run both, and they do different jobs - LSA for the badge and the lead form, Search for everything the badge does not cover.

My reroofs take two months to close. How do I judge the ads?

Not the way a plumber does. A homeowner who clicked in week two of hail season can sign in month two, so two weeks of data on a replacement campaign is close to meaningless and a click that looked wasted may still be sitting in your quote pipeline. Set the date you'll judge it, set it further out than you would for repair work, and compare a month against the same month last year rather than against last month. Then make one decision: feed it, fix it, or stop it.

Do I need existing campaigns to start?

No. AdPilot can build the whole thing from nothing - campaign structure, keyword set, match types, negative list and ads. If you already run campaigns, it works on those instead, and on a roofing account the first thing it looks at is what is on broad match. Either way nothing goes live until you approve it.

Will AdPilot change anything on its own?

No. Never. AdPilot proposes and you decide. Nothing is written to your account until you approve that specific change with one tap. If you approve nothing, nothing changes.

What if I don't like a change I approved?

One-click revert. A snapshot is saved before every change, so it rolls straight back to how it was. The audit log shows exactly what happened, old value and new value.

Takeoff — our done-for-you plan

2156% more revenue in 3 months — guaranteed, or your money back.

One 1-hour call, then we take it from there: tracking, campaigns, daily optimization — all set up and run for you. You still approve every change with one click. If your tracked revenue hasn’t grown by at least 21% after 3 months, we refund every monthly fee from those 3 months.

$1,200 one-time setup + $500 per month (USD)

*Money-back covers the monthly fees ($500 × up to 3 months), on request within 14 days after the 3-month period ends. The one-time setup fee is non-refundable. Growth is measured on the revenue tracked in your connected ad account — full conditions in the Terms.

See what your roofing account is actually paying for.

Connect your account with a secure Google sign-in. Answer a few plain questions about the work you want, the counties your crews will drive to and what a signed job is worth. Then approve the improvements one at a time, each with a snapshot and a one-click undo behind it. One flat price. No retainer, no cut of your ad spend, no contract.

Start free - no credit card

Free 7 days · No credit card · You approve every change · Cancel anytime