Roofing is one of the few trades where the numbers on Facebook aren't close — not because roofers are better marketers, but because the ticket is so large that lead costs which would bankrupt a landscaper barely register. So start with the arithmetic. It changes what you're willing to pay, and that alone puts you ahead of the competitor who quit after spending $300.
The math: why a $60 lead is cheap on a roof
A full roof replacement in most US markets runs $8,000 to $15,000, with steep or complex roofs going past $20,000. Take a conservative $10,000 ticket and walk the funnel:
| Step | Number | What it means |
|---|---|---|
| Cost per lead | $60 | A homeowner's name, phone, and ZIP |
| Leads per booked job | 5 | At a 20% close rate |
| Ad cost per booked job | $300 | 5 x $60 |
| Job value | $10,000 | One replacement |
| Gross margin at 30% | $3,000 | What the job leaves you |
| Return | 10x | $3,000 margin against $300 in ads |
Read the middle row again: $300 of advertising to book a $10,000 roof. That's 3% of revenue, and most roofers happily pay an aggregator more than that for a lead shared with three competitors. The math survives a bad month, too — at a 10% close rate you'd spend $600 per job, still 6% of revenue. You have to close under 4% of your leads before a $60 lead stops making sense on a $10k ticket.
So "leads are too expensive" is almost never the real problem in roofing. Close rate and callback speed are, and both are inside your shop. For how roofing compares to other trades, see our breakdown of what Facebook ads actually cost.
Launch your first Facebook & Instagram ad in 2 minutes
Describe your business: the AI writes the copy, designs the visual, sets the targeting, and publishes your ad. Leads arrive with their phone number.
Try Leadria free7-day free trial — no credit card — cancel anytime
Storm damage: the highest-leverage play in roofing
Nothing else comes close. A hail or wind event creates thousands of homeowners who go from never thinking about their roof to thinking about nothing else. Demand is created for you; your job is to be the first credible name in front of them.
- Speed. The window is roughly the first 3 to 10 days. By week three, most homeowners who will act have already had someone on the roof — often a door knocker. Have the ad ready to launch the day after the storm.
- Radius. Draw the circle around the neighborhoods actually hit, not around your office. Hail swaths are narrow, sometimes 3 to 8 miles wide. A 25-mile radius around a storm that hit two ZIP codes sends most of your money to homeowners with intact roofs. Use ZIP-level targeting or a tight 5-to-15-mile radius on the impact zone.
- Message. Name the event and the area: "Hail came through north Fort Worth on Tuesday. We're inspecting roofs in 76131 and 76137 this week — free, no obligation, 20 minutes." Specific beats clever.
The insurance angle, handled honestly
Insurance is why storm work converts, and where roofers get themselves in trouble. Three guardrails:
- Don't promise approval. "We'll get your roof approved" is a claim you can't control — the carrier decides. Meta flags over-promising copy, and in several states the language brushes against public-adjusting rules you likely aren't licensed for.
- Never mention the deductible. Waiving or covering it is illegal in many states and fraud in several. It has no place in an ad.
- Do describe the process. "We document the damage, give you the report, and walk you through filing if you choose to" is accurate and converts fine. Honest framing also survives the storm — you still have a reputation in that ZIP next year.
One warning before you lean on this: storm markets saturate, fast. What to do about it is below.
The age-of-roof play for normal markets
Most roofers don't live in a hail alley, and even those who do need something running the other 50 weeks. The everyday angle: asphalt shingles last about 20 to 25 years, and Meta will show your ad to homeowners in houses built in a specific era.
Target homes built 20 to 30 years ago and lead with age, not damage: "Is your roof 20 years old? Most shingle roofs in [neighborhood] from the early 2000s are at the end of their life. We'll tell you how many years you have left — free, and we don't sell you a roof you don't need." That last clause does real work: the homeowner's fear isn't the cost, it's being sold something they don't need.
This audience converts slower than storm traffic — figure 30 to 90 days from lead to contract instead of two weeks — so judge it over a quarter.
Why "free inspection" beats "get a quote"
Same budget, same audience, same photo — swap the button and cost per lead moves. Inspection offers routinely beat quote offers by 30% to 50% on lead cost, for two reasons.
First, commitment. "Get a free quote" asks a homeowner to decide they're about to spend $10,000. Most aren't there yet; they're at "I wonder if that stain means anything." An inspection asks for 20 minutes and no decision. Smaller yes, more yeses.
Second, and this matters more: an inspection puts your rep on the roof. A quote is a number emailed into a spreadsheet where the cheapest bid wins. An inspection is a person in the driveway with photos of the homeowner's own roof on a tablet. That's not a bid, it's a diagnosis. Roofing gets sold in the driveway, and "free inspection" buys you the driveway.
Keep the form short: name, phone, ZIP, and one qualifying question — "Do you own the home?" One question cuts junk without killing volume. Our guide on turning ad spend into leads covers form setup and the first five minutes after a lead lands.
Creative: drone footage and before/after are the whole game
Say it plainly, because roofers keep ignoring it: your creative matters more than your targeting. Meta's algorithm finds buyers well enough that the ad itself is where your leverage sits — and roofing has the best raw material of any trade.
- Drone footage. A 15-second aerial pass over a finished roof stops the scroll cold, because almost nobody has seen their own roof. A consumer drone costs a few hundred dollars and pays for itself on the first job.
- Before and after. Curled, moss-covered shingles on the left; clean architectural shingles on the right — the highest-converting image type in this trade. Shoot every job from the same spot in the yard, before and after. A two-minute habit that builds an ad library worth thousands.
- Real houses in real neighborhoods. A roof that looks like the ones on your prospect's street beats a glamour shot of a mountain home. Stock photography reads as "not from here."
- Damage close-ups. Hail bruising, lifted shingles, rotted decking — educational and specific. Makes the free inspection feel like a service, not a sales call.
Refresh creative every 4 to 6 weeks: a local audience is small enough that performance decays once frequency passes roughly 3 impressions per person per week.
Targeting: homeowners, home value, and how far your crew drives
| Setting | What to use | Why |
|---|---|---|
| Radius | 15-30 miles from the shop | Match how far crews actually drive. Won't send a crew 40 miles? Don't advertise there. |
| Homeowner status | Homeowners only | Renters cannot buy a roof — the most valuable exclusion in the account |
| Age | 30-65+ | Where homeownership concentrates |
| Home value | Skip unless the market is split | Useful in metros with a wide value spread; noise elsewhere |
| Age of home | Built 20-30 years ago | The core of the non-storm replacement play |
| Storm campaigns | ZIP-level on the impact swath | A radius from your office wastes most of the budget |
Two cautions. Meta's homeowner and income options have thinned out and vary by market — if a segment isn't there, tight radius plus age-of-home does most of the same work. And don't stack eight filters: a roofing audience under about 50,000 people drives CPM up and starves the algorithm.
When Facebook ads don't work for a roofer
- Active leaks. A homeowner with water dripping into a bucket is on Google typing "roof leak repair near me," calling the first shop that picks up. That demand already exists — you capture it, you don't create it. Emergency money belongs in Google Search and a well-fed Google Business Profile. Our Facebook vs Google comparison has the rule: if the customer is already looking, that's Google's job.
- Saturated storm markets. Every roofer within 200 miles knows where the hail fell. Two weeks after a major event in a mid-size metro, CPMs can run 2-3x normal as out-of-town crews bid the same feed. When cost per lead climbs past your ceiling, don't grind against it — pull back to a small holding budget, shift spend to the surrounding un-hit ZIPs where CPMs are normal and the age-of-roof play still works, and return when the chasers leave.
- No callback system. If leads sit for a day, none of this works at any price. Facebook leads are lukewarm by nature — the homeowner filled a form in 8 seconds and moved on. Calling within 5 minutes versus 30 moves contact rate by a multiple, not a few points. A roofer without someone assigned to call is buying leads for whoever calls second.
What $1,000-$2,000 a month actually buys
$1,500/month is $50/day. At a $50 cost per lead, that's about 30 leads a month. Reach roughly 70% with a fast callback — 21 conversations. Inspections on about half — 10 roofs walked. Close 40 to 60% of those, because a rep on a roof with photos is a strong position — 4 to 6 booked jobs. At $10,000 each, that's $40,000-$60,000 against $1,500 in spend.
That's a model, not a promise, and month one will underperform it — the algorithm needs a couple of weeks and 15-20 conversions to settle. Below $700/month it gets genuinely hard: fewer than 15 leads is too little signal to optimize on. Better to run $1,500 for one month than $500 for three. And note the budget question in roofing is backwards — the constraint isn't the $1,500, it's whether you can absorb 4-6 extra roofs a month. If crews are booked eight weeks out, don't advertise; raise prices.
Getting it running without living in Ads Manager
Three routes. Learn Meta Ads Manager yourself — free, but it's a dense tool built for marketers and the tuition gets paid in wasted spend; the fundamentals are in our complete Facebook ads guide for small business. Hire an agency — typically $1,000-$3,000/month on top of spend, defensible in roofing where one extra roof covers the retainer twice over. Or use a tool that does the build for you.
Leadria is the third: you describe your business in a sentence — "roofing contractor in Fort Worth, replacements and storm damage, 25-mile radius" — and the AI writes the ad copy, generates the visual, sets the Meta targeting, and publishes the ad to Facebook and Instagram. Leads come back with a phone number attached, which is the only part that matters. There's a 7-day free trial, no credit card.
Whichever route you take, the discipline is short: emergencies to Google, replacements to Facebook. Free inspection, not free quote. Drone and before/after, never stock. Tight radius, homeowners only. Call in five minutes. Then judge it on signed contracts after 60 days — not on likes, and not after four days. The trade math is on your side more than in almost any other business; the follow-up decides whether you collect on it. Running other trades under one roof? Same logic in our piece on Facebook ads for contractors.
