Facebook Ads for Roofing Companies: How to Reach Homeowners Before They Call the First Contractor
A step-by-step guide to Facebook ads for roofers: service-area targeting, free inspection and storm offers, real job photos and form questions that filter leads.
To reach homeowners before they call the first roofer, run Facebook ads all year to a tight map of the area you actually serve. Lead with a free inspection that gives the homeowner something concrete, such as photos and a written condition report. Raise the budget in the days after a storm and in your busy seasons. Most homeowners spend months knowing their roof is getting old before they pick up the phone. The roofer they have seen ten times in their feed is usually the first one they call.
In short:
- A roof is a rare, expensive purchase, so roofing ads should build familiarity for months, not just chase the week of a leak.
- A free inspection with photos beats a "free estimate" because every roofer offers estimates and almost none show the homeowner their own roof.
- Two or three qualifying questions in the lead form separate homeowners with a real problem from renters and people who are just curious.
Why do Facebook ads work for roofers if nobody scrolls looking for a roof?
Facebook ads work for roofing because they reach people before they search. Google Ads catch someone who already typed "roof repair near me." By that point they are comparing three or four contractors on price. On Facebook you reach the homeowner who noticed curled shingles last spring, has been meaning to "get someone to look at it," and has not searched yet.
That changes how you judge the ads. A roofing campaign on Meta is not a vending machine where every dollar has to return a lead the same week. Part of the budget pays for being the name a homeowner already knows when the decision finally comes. We think roofers who switch Facebook off after two quiet weeks are making the most expensive mistake in this channel. They hand that recognition to whoever stays on.
How should a roofing company set up location targeting on Facebook?
Target the area your crews will actually drive to, not the biggest radius the tool allows. Here is the order we follow:
- Start from your real service area. Write down the towns or ZIP codes where you have done jobs in the last two years and would happily do more. Use those as locations, or drop a pin at your shop with a radius that matches your drive time.
- Cut out what you do not want. Exclude ZIP codes that are mostly apartments, areas across a river or toll bridge your crews avoid, and towns where your margin dies in travel time.
- Target people who live there. Check that your location setting reaches residents, not people passing through. A tourist who sees your ad on vacation will never hire you.
- Keep it broad inside the map. Inside your service area, do not stack interest filters like "home improvement" or narrow age bands. Meta has little reliable data on who owns a house with a 20-year-old roof. Your creative and your form questions do the filtering better than interests do.
- Split the map only if the offer changes. If one county just got hail and the others did not, give that county its own campaign with the storm offer. Otherwise one campaign learns faster than five small ones.
What drives the cost per lead here is the size of your audience, competition from other advertisers in the same area and how well your ad holds attention. We explain this in more detail in what actually drives the price of Facebook ads for a small business.
What offer gets homeowners to request a roof inspection?
The offer that works is the one that lowers the risk of the first step, not the price of the roof. Nobody decides on a full replacement from an ad. They decide whether to let you climb up and look. So make the look worth something:
- Free inspection with a photo report. "We send you photos of every problem we find, whether you hire us or not." The homeowner gets proof they can show their spouse, and you get in the door.
- Post-storm damage check. Run it only in areas that were actually hit, and only for a few weeks after the event. Name the storm and the date in the ad. A vague "storm damage?" ad in a county with no storm reads as fishing.
- Planning visit for an aging roof. For the homeowner who knows replacement is coming in a year or two: "Find out how many years your roof has left." This one fills the pipeline in slow months.
One thing we will not run: ads that promise insurance will pay for a new roof. You do not know that before inspecting, and homeowners have learned to distrust that line. It attracts the wrong leads and damages your name in a town where reputation travels by word of mouth.
How does roofing seasonality change what you run?
Seasonality changes the offer and the budget, not whether you are on. This is the plan we use:
| Period | What the homeowner is thinking | Offer to lead with | Budget move |
|---|---|---|---|
| Days and weeks after a storm | "Did that hail do anything to my roof?" | Post-storm damage check, storm named in the ad | Raise it in the affected ZIP codes only |
| Spring and early fall | "I should get this done before summer heat or winter" | Free inspection with photo report | Your highest steady level |
| Peak summer | "Is it too hot to have the roof done now?" | Inspection now, scheduled install date | Hold steady |
| Winter or off-season | "I'll deal with it next year" | Planning visit, roof life estimate | Lowest level, never zero |
The off-season row is the one most roofers skip. Leads in winter come slower and more of them say "not until spring." Those are exactly the homeowners who will sign in March, and in March you are the roofer who already inspected their roof.
What should the photos and videos in roofing ads show?
Show your own jobs, your own crew and your own trucks in places your audience recognizes. Stock photos of a smiling family under a perfect roof look like every other roofing ad in the feed and say nothing about you.
What earns the stop:
- Before and after of the same roof, shot from the same angle.
- Close-ups of damage your crew found: lifted shingles, cracked flashing, granules in the gutter. Homeowners use these to check their own roof.
- A 20 to 30 second phone video of a crew member walking the roof, pointing at what is wrong and saying it plainly.
- A drone shot of a finished job with the town name in the caption.
Take these photos on every job, not once a year. Ads wear out, and a roofer who has 40 real photos on a phone can refresh creative every few weeks without hiring a photographer.
Which questions should a roofing lead form ask?
Ask two to four questions that tell you whether this is a homeowner with a real roof problem and a rough timeline. More than that and people quit halfway. Here is what we use:
- Do you own the home? Yes / No. This one question removes most of the leads you cannot sell to.
- What is going on with your roof? Active leak / Storm damage / Old roof, planning replacement / Not sure, want an inspection.
- When are you looking to get it done? As soon as possible / Within 3 months / Later this year / Just exploring.
- Address or ZIP code, so you can confirm it is inside your service area.
Multiple choice beats open text. A homeowner taps four answers in fifteen seconds. Those answers tell your office who to call first: active leak today, "later this year" by the end of the week, with a follow-up later.
One caveat on numbers. The cost per lead Meta shows you is the cost of a submitted form, before anyone checked it. Once you remove renters, wrong ZIP codes and fake phone numbers, your cost per verified lead is higher. Judge the campaign on inspections booked, not on Meta's number.
Is it better to run roofing ads yourself or automate them?
You can run all of the above yourself in Ads Manager if you have a few hours a week. You need to check results daily, pause ads that stop working and refresh photos before they wear out. We cover what is worth doing by hand in what to set up yourself and what to automate. If those hours do not exist, Efekto is one option. It writes and designs the ads from your website, publishes them on Facebook and Instagram, checks results every morning, pauses weak ads and protects the ones that bring in leads. You approve the first batch, with at least 5 approved ads before anything goes live. The free trial runs 7 days from the launch of the first campaign. Here is how that looks for roofing companies.
It does not make sense for every roofer. If you are booked solid for the next four months, more leads only create callbacks you cannot keep, so fix capacity first. If you do mainly commercial roofing, your buyers are property managers, and direct outreach usually beats Facebook. If you cannot spend at least $15 per day, which is Efekto's minimum daily budget, run a single always-on inspection ad by hand in your core ZIP codes and add to it when work allows.
FAQ
How long does it take for roofing Facebook ads to bring in leads?
The first form submissions often come within days of launch, but a campaign needs a few weeks of data before it settles. The bigger payoff in roofing comes over months, as homeowners who saw your ads in the off-season call when they are ready.
Should roofers use lead forms or send traffic to their website?
For most local roofers, Facebook lead forms work better because the homeowner never leaves the app and the form is prefilled. Send traffic to the website only if your site loads fast on a phone and has a short booking form above the fold.
Can I target homeowners with old roofs on Facebook?
Not directly. Meta has no reliable roof age data. Target the neighborhoods you know have older housing, then let the ad copy ("Is your roof over 15 years old?") and the form questions do the filtering.
What should I do with leads who say they are not ready yet?
Call them anyway, offer the inspection now, and put a follow-up date in your calendar. A homeowner who says "later this year" is often the easiest close of the season, as long as you are the one who stayed in touch.
If you want your roofing ads written, launched and checked every morning without learning Ads Manager, you can start at efekto.ai.
- Jakub Zwoliński
Founder, Lemon Agency · Efekto · October 19, 2026