A roofing lead is not a $30 t-shirt sale. One booked inspection that turns into a full replacement can be worth more than a month of ad spend. That changes the maths of every decision you make, and it is why most advice written about roofing Facebook ads is close to useless to a contractor actually running the truck.
This is a method for a different question: what are the roofers in my market running right now, and which of those ads has been live long enough to be worth copying.
Why generic Facebook ads advice fails roofing contractors
Read any general guide and you will be told to test patiently, optimise for cost per lead and let the algorithm learn. Four problems with that in roofing.
Demand is weather-driven, not steady. A hail event can create more roofing demand in your county in one week than the previous three months combined. Advice built around a patient 90 day learning curve assumes a market that hums along at a constant rate.
Cost per lead is the wrong target. A cheap lead from a renter, or from a homeowner sixty miles outside your service radius, is worse than no lead. It costs you a call, a slot and sometimes a truck roll. Roofing is one of the few categories where you should pay more per lead to get fewer of them.
You are usually not selling a roof. For storm work the homeowner is deciding whether to open an insurance claim, not choosing a contractor. The ad has to sell an inspection or a claim review, which is a far lower commitment and a different message.
Trust is the actual objection. Homeowners have heard about storm chasers who take a deposit and vanish. Licensing, a local address, real crews and years in the market do work that no discount can.
So the useful research is local and specific. Which is what the Meta Ad Library gives you.
What you can actually see about roofers in your market, free
The Meta Ad Library is public by law. Every ad running on Facebook and Instagram is listed there, and looking is anonymous. The roofers you compete with cannot tell you have been reading their ads.
For each live ad you can see the creative, the full copy, the format, the call to action, whether it is running now, and the date it started. If a company runs eight variants of one angle, you see all eight.
What you cannot see is performance. Cost per lead, click through rate, close rate and return on spend live inside their Ads Manager and are never published. If a tool offers to show you another roofer's cost per lead, it invented the number.
One thing to know before you start: some ads targeting your zip code are not from roofers at all. They come from lead resellers running national "free roof inspection" campaigns and selling the contacts on. Study those too. Whoever writes them tests at a volume no local company can match.
Days running is the only signal you can verify
A roofing company running paid ads is watching numbers you cannot see. When an ad brings in junk leads, they switch it off. When it books inspections, they leave it on.
So how long an ad has been live is a performance proxy you can check from outside. An ad running five months survived five months of an owner with money on the line choosing, over and over, not to kill it. The glossiest new drone video in a competitor's library has passed no such test. It could be gone by Friday.
Roofing adds a wrinkle. Because demand is seasonal, a roofer's best ad is often not the one with the longest unbroken run. It is the one switched back on every time the weather turns. That is invisible in a single Ad Library visit: Meta shows a start date and no run-time history, and its API returns none either.
AdWhispr fills that gap: it ingests a brand's entire Meta ad library and re-snapshots it daily, so it holds the history Meta does not publish. The argument for reading longevity this way is in why days running is a performance proxy, and the mechanics are in how to find a brand's longest-running Meta ad. Ask it the way you would ask a foreman:
"Which roofing companies near me have ads that have been running more than 90 days, and what do those ads have in common?"
The patterns that repeat in durable roofing ads
Line up the roofing ads that have survived and the same structural choices keep showing up. Not the same words, the same shapes.
| Element | What the durable ads tend to do | Why it survives |
|---|---|---|
| Hook | Names a local event or a visible symptom, not the company | A homeowner who saw the same storm recognises themselves |
| Offer | A free inspection or claim review, never a percentage off a roof | Nobody commits to a five figure job from a feed ad |
| Format | Handheld phone footage from the roof, or a plain before and after | Looks like a real crew, not a stock photo |
| Proof | Licence number, years in the area, named neighbourhoods, crew faces | Answers the storm chaser objection before it is raised |
| Qualifier | Homeowner status, service area and roof age stated in the ad | Filters out renters and out of area clicks up front |
That last row is the one most contractors skip, and it is the difference between an ad that generates leads and an ad that generates work. The best roofing ads do their qualifying in the copy, not on the phone afterwards. Naming the suburb and a roof age costs you impressions and buys you lead quality, which is the trade you want.
The other repeated pattern is what the ad does not say. Durable roofing ads rarely promise that insurance will pay. They offer to look at the roof and explain the options, because a promise about a claim outcome is one no roofer can keep.
Turning what you found into your own ad
Research is only useful if it ends in a campaign. A workable loop:
- Pick five roofers who genuinely advertise in your metro, plus one national lead generation advertiser targeting your area.
- Pull every live ad each is running, not a sample. The walkthrough is see every ad a competitor runs.
- Sort by days running and ignore everything under 60 days.
- For each survivor, note four things: hook shape, offer mechanic, format, proof type.
- Look for the overlap. Where three separate companies have independently landed on the same structure, the market has already tested it for you.
Then build your version of that structure with your crews, your licence, your neighbourhoods. Copy the shape, never the sentences. Running a rival's copy back at the same homeowners makes you the fourth identical roofer in the feed.
"Take this roofer's longest-running ad and rewrite it for my company, in my service area, with a free inspection offer."
AdWhispr does that step directly, cloning a proven competitor ad as an image or a video for your brand, and it classifies every ad it ingests by hook, format, tone and offer so the pattern hunting is not manual. It runs in the web app and inside Claude, ChatGPT, Cursor and Claude Code over MCP:
"Before the next storm season, show me which roofing ads in my area came back on last year and what their offer was."
If you have never done this before, your first competitor research run walks through the loop end to end. The free plan covers one tracked brand with no credit card, enough to check whether your strongest local competitor is running something you are not.
FAQ
Do Facebook ads work for roofing companies?
They work when the ad sells an inspection rather than a roof, and when the qualifying happens in the copy. The ticket size is large enough that a few genuine appointments pay for a lot of spend. The failure mode is chasing cheap leads and filling your calendar with renters and out of area enquiries.
How much do roofing Facebook ads cost per lead?
Nobody outside your ad account can tell you, including anyone quoting a figure for your competitors. It depends on your market, season, service radius and offer, and it is never published. Track your own number and treat any external benchmark as marketing.
Can I see what other roofers in my area are advertising?
Yes. The Meta Ad Library is public by law and shows every live ad with its creative, copy and start date. Searching it is anonymous, so the other company has no way of knowing you looked.
Should a roofing ad offer a free inspection or a discount?
The ads that stay live tend to offer the inspection. Nobody commits to a full replacement from a feed ad, so the job of the ad is to book a visit. Discounts also invite price shopping, which is the opposite of what you want when trust is the real objection.
How do I stop getting junk leads from roofing Facebook ads?
State the qualifiers in the ad itself: homeowner, the areas you serve, and a rough roof age. You will get fewer form fills and better ones. Volume is the wrong scoreboard when one good appointment is worth more than fifty enquiries.
