You don't need five campaigns to find out whether Facebook can work for you. You need one campaign you can follow from the ad to the appointment. If the leads are poor, read what people asked for before you spend more.
Want it run for you? See our Facebook ads agency for roofers.
For the wider service, see our roofing marketing agency.
Your 30-day test plan
I'd start with $40/day for 30 days, or $1,200 in ad spend. Pick a budget you can fund without needing the next inquiry to become a sale. Keep the test narrow enough that you can tell what's working.
| Decision | Starting plan |
|---|---|
| Budget | $40/day for 30 days; $1,200 total ad spend |
| Area | The towns where you'll actually inspect and install |
| Offer | One clear inspection, report or price offer |
| Ads | 3 to 5 versions: two short videos and two or three photos |
| Form | A homeowner question, then two or three useful qualifiers |
| Follow-up | Aim for a call or text within five minutes; follow up over the next two days if they haven't replied |
| Review | Each week: suitable inquiries, booked inspections and cost per booking |
| Pause rule | Change the offer or pause if booking cost stays above your ceiling after two to three weeks; use $300 as the example ceiling below |
Test the form before you pay for traffic. Send a test inquiry, find it where your office works and reply to it. Check the phone number, the notification and the appointment handoff. If any part fails, fix it before launch.
Don't wait three weeks to spot a broken campaign. Pause straight away if the form doesn't work, inquiries don't reach you or the ad is attracting work you won't do. If you've spent your chosen booking ceiling without a single booking, stop and find the blockage before spending more.
Which roofing jobs suit Facebook
Choose planned replacements first. A homeowner can be worried about an aging roof long before they type a search into Google. A useful explanation gives them a reason to act now.
| Work | My first choice | What to show |
|---|---|---|
| Planned shingle replacement | Facebook and Instagram | A real roof, what changed and what the inspection includes |
| Emergency leak search | Google Search or eligible Local Services Ads | The repair service and how quickly your crew can attend |
| Local storm inspection | A short campaign where you already work | The roof issues you'll inspect and available visit times |
| Metal upgrade | A visual explanation followed by an inspection | Materials, appearance and the replacement process |
Metal buyers may need more explanation before they're ready for a visit. Show the roof style and answer the questions you hear at estimates, rather than pushing every homeowner straight into the same sales pitch.
5 offers that work
I'd begin with the roof condition report. It's easy to understand, gives the homeowner something useful and lets you explain whether repair or replacement makes sense.
These templates give you a starting point. Replace the brackets with your area and the service you'll deliver.
1. Roof condition report
Hook: Not sure what's happening on your roof?
We'll inspect it and show you photos of what we find. You'll get a short explanation of what needs attention and what can wait.
Action: Request your roof photo report in [town].
Use it when: you're happy to give useful advice even if the roof only needs a repair. A simple A to F report card can work if you explain the grade with photos.
2. Price explainer
Hook: What should a new roof cost in [town]?
Size, material and the work underneath change the price. Here's how we'd price a roof like this one, and what's included.
Action: Ask for a replacement estimate for your home.
Use it when: you've got a real job you can explain. Put the scope beside any starting price so people aren't expecting that figure for every roof.
3. Instant price range
Hook: Get a roof price range before you book a visit.
Enter your property details and see an initial range online. When you're ready, we'll inspect the roof and explain the full scope.
Action: See your roof's price range.
Use it when: your quote tool actually returns a range. Don't advertise an instant answer if the next screen only collects a phone number.
4. Older-roof check
Hook: Is your roof 15+ years old?
You don't have to guess how it's holding up. We'll look at the wear, flashing and visible problem areas, then show you what we'd repair or plan for.
Action: Book an older-roof check in [town].
Use it when: you work in established neighborhoods. The age starts a conversation; the inspection tells you what the roof needs.
5. Seasonal offer with a real deadline
Hook: Planning your replacement before [date]?
Book a qualifying roof replacement by [date] and we'll include [specific extra, such as gutter cleaning]. Here are the roof types and properties the offer covers.
Action: Ask about the [month] replacement offer.
Use it when: you can fund and deliver the extra. End the promotion when the deadline passes.
If financing is part of your offer, use the lender's actual terms and the Meta special-category and targeting rules that apply. Don't turn a monthly-payment figure into the whole explanation.
What real ads teach you

What to notice: the opening price raises a question, and the next lines explain that size changes the answer. Build your own explanation around a roof you've priced. You'll get a better conversation when the homeowner understands the scope before the call.

What to notice: the offer removes the pressure of booking a salesperson just to get a number. Try that approach if you've got a working quote tool. Make the next step equally clear: a range first, then an inspection when they're ready.

What to notice: season, material and offer all appear together. Keep the promotion's dates current and make its terms easy to find. A summer headline still running in fall can make an otherwise useful offer look neglected.
Write ads homeowners stop for
Put the homeowner's question in the first line. “Not sure your roof needs replacing?” gives them something to think about. Your company history can wait until they're interested.
Use this seven-point check before you launch:
- Name the problem. Speak to the owner who's budgeting, worried about wear or comparing materials.
- Make it about their decision. Explain what they'll learn or receive. Don't open with your years in business.
- Be specific. Name the area and the inspection's purpose. Generic storm warnings won't tell them why they should choose you.
- Offer something useful. Show what's inside the report or estimate, instead of relying on the word “free.”
- Show real proof. Use your own job photos or a genuine customer review you have permission to use. Keep its meaning intact.
- Make the next step comfortable. Say what happens after the form. If there's no obligation to buy, say so; don't promise no contact when you're asking to arrange a visit.
- Give a real reason to act. Use an actual offer deadline or available inspection dates. Don't invent damage, scarcity or a looming price rise.
Read the ad aloud. If it sounds like a roofing brochure, cut the opening and start with the question people ask you at estimates.
Setting up the campaign
Use the Leads objective and start with a qualifying form. You're trying to arrange inspections, so set up a campaign around inquiries rather than boosting a post for likes.
- Use your business's ad account. Keep access to the campaign, the spend and the lead records. Have your business Page and contact details ready.
- Choose the area you'll serve. Use the location controls available in the account. Remove places you won't visit where those controls allow it, and ask for the property's location before booking.
- Keep the audience simple. Let the roofing message and qualifying form do useful work. Don't build the plan around a supposed setting that only reaches verified homeowners.
- Start with Facebook and Instagram. Preview each placement. Keep text readable, faces clear and the important part of the roof inside the crop.
- Set the test budget. Use the same offer across the first 3 to 5 ads so you can compare the opening line or photo.
- Choose the destination. Start with a higher-intent form for a straightforward inspection. Use a dedicated website page when you need to explain more or you already know it produces suitable inquiries.
- Review automated creative changes. Turn off changes that alter the roof, invent a result or change your offer's meaning.
A longer form doesn't automatically mean better leads. Ask questions that change whether you'll visit. If you add friction without learning anything useful, you'll lose good homeowners too.
For the form mechanics, use the Facebook lead ads guide for contractors. Put the offer, contact expectations and your privacy-policy link in the form.
Retargeting means showing a follow-up ad to people who've already visited your site or engaged with your business. Once you have that audience, give it a useful next step: a real job, an answer about price or the inspection process. Exclude completed customers where your setup supports it, and don't split a tiny test budget across lots of small audiences.
Questions that filter tire kickers
Start with the homeowner and the property, then ask about the work. Keep the questions easy enough to answer from a phone.
| Question | What you'll learn |
|---|---|
| Do you own a home in [area] that needs roof work? | Whether this is the household and area you want to serve |
| What's going on with your roof? | Leak, storm concern, aging roof or replacement quote |
| Is this an insurance job, or are you paying yourself? | How to prepare for the conversation |
| When are you hoping to get it done? | Whether to offer a visit now or follow up later |
Use a qualifying branch where the form supports it. If someone isn't the owner, route them to a simple explanation of how the owner or property manager can contact you. Don't send every answer into the same inspection queue.
On the thank-you screen, say when someone will respond and give a call button. Use a response time your office can keep: “We've got your request. We'll text you within [your response window]. Need to speak sooner? Call [number].”
You're setting up a useful conversation. You don't need their life story before you can ask about the roof.
Making short video ads
Film a 15 to 20-second phone video at a real job. Pick one point, show it clearly and ask for one next step. You don't need a studio.
| Part | What to say or show |
|---|---|
| First 3 seconds | A homeowner question: “Not sure if those worn shingles mean it's time for a new roof?” |
| Middle | Show the relevant part of a real roof and explain what you'd look for |
| Finish | “Tap below to ask for a roof condition report in [town].” |
Film five or more takes, then choose the best versions. Use the first test's 3 to 5 ad slots for a mix of the strongest clips and photos. Keep captions readable and check that the sound-off version still makes sense.
A short script or phone teleprompter can help if you lose your place. Write it the way you'd explain the job to a homeowner, then use your own words. Don't turn an AI-written story into a customer testimonial.
If costs rise, read the replies and check how often people see the ad. Refresh the first line or the roof you show before you rebuild the entire campaign.
Follow-up in 5 minutes
Aim to respond within five minutes while you're taking inquiries. Put one person in charge of the first call or text, and have a clear route for requests that arrive while they're unavailable.
Get the required texting consent and honor opt-outs. Then keep the message tied to what the person asked for.
Example:
First reply
Hi [name], it's [person] from [company]. You asked about a roof condition report in [town]. What's the main thing you're worried about on the roof?
No answer, next day
Hi [name], just following up on your roof inspection request. We've got [available times]. Would either work, or would you prefer a call first?
Once they've booked
You're booked for [day/time] with [roofer]. We'll inspect the roof, show you what we find and talk through the next step. Please reply if access or the time changes.
Call, leave a useful message if needed and make another contact attempt over the next two days. If they reply, work with what they say. Don't keep sending a booking prompt to someone who's told you they're waiting until next spring.
Once an appointment is set, your office needs the time, property and access details. A text conversation isn't a booked inspection until the homeowner has accepted a time you can attend.
Tell Meta which leads were good
Track which inquiries became inspections, then use that feedback in your campaign decisions. A low-cost form submission isn't useful if you can't reach the person or the property is outside your area.
Give each inquiry a simple status: new, reached, booked, visited, estimate sent, signed or unsuitable. Add a short reason when it's unsuitable. That gives you something useful to compare across ads.
If your CRM can send suitable outcomes to Meta through a supported integration, you can use that information for conversion-lead optimization. Meta's setup uses a CRM connection with its Conversions API for that goal. Test that the right event is being sent before you rely on it.
If you don't have that connection, keep a spreadsheet and review the same stages manually. You'll still learn which offer brings work you want. Don't mark every new form as a qualified inspection just to make the report look better.
Reading results
Use cost per booked inspection to make the weekly decision, then follow those bookings through to signed roofs. Keep each group of inquiries together so a job that signs next month still belongs to the campaign that brought it in.
Example: $1,200 spent, 20 inquiries, 10 booked inspections and two signed roofs. That's $60 per inquiry, $120 per booked inspection and $600 per signed roof before adding any separate campaign fees.
Your ceiling should leave money for overhead and profit. In the shared roofing example, a $14,000 replacement at a 30% gross margin leaves $4,200 before marketing and overhead. If one in four inspections signs, that's $1,050 in expected gross profit per inspection. I'd set the booking-cost ceiling well below that; the test plan uses $300.
Count a booking and a completed inspection separately in your records. A no-show hasn't progressed as far as a visit you've attended. If your signing rate uses completed inspections, don't apply it to bookings without allowing for no-shows.
| What the numbers show | What I'd do next |
|---|---|
| Inquiries arrive, but few are suitable | Change the offer or qualifying questions |
| Suitable inquiries arrive, but few book | Fix reply speed, appointment options or the first conversation |
| Bookings happen, but visits don't | Improve scheduling and reminders |
| Visits happen, but few estimates go out | Check job fit and your inspection-to-quote process |
| Estimates go out, but roofs don't sign | Review the scope, price explanation and estimate follow-up |
| Useful bookings stay below your ceiling and jobs sign | Keep the offer and increase spend only as your crew can handle it |
After two to three weeks, pause or change a campaign that's still above your ceiling. Change one major thing at a time, then record what changed and when. You'll learn more than you will from replacing the offer, audience and form all at once.
Common mistakes
- Boosting posts and expecting inspections. Start with a lead campaign tied to a specific offer.
- Showing stock roofs or AI jobs. Use your own photos so the homeowner sees the work you're selling.
- Covering the whole metro with one crew. Tighten the area to visits you can attend without wasting the day driving.
- Skipping the homeowner question. Find out who can arrange the work before you offer an appointment.
- Missing the first reply. Give someone ownership of incoming requests and test the route.
- Calling the campaign a failure after three days. Fix obvious breakages immediately, but use the planned reviews to judge the offer and booking cost.
- Running the same creative for months. Watch repetition, replies and booking cost together. Replace tired openings or photos and reduce spend if the local audience is getting saturated.
- Treating every placement the same. Preview the Facebook and Instagram versions so captions, crops and buttons make sense.
You don't need to change an ad just because you've seen it a lot. Change it when the people you want stop responding, the offer expires or the work it attracts no longer fits.
Want it run for you?
Our Facebook ads agency for roofers handles the campaign and follow-up from $297/month, with ad spend separate. We usually have you live within 3 working days of getting access. The AI assistant can book inspections straight into your calendar or hand the lead to your office to book. You choose.
For the full channel plan, see the roofing marketing guide.
FAQ
Are Facebook ads good for roofers?
Yes, I'd use them for planned replacements, older roofs and visual upgrades such as metal. Start with a useful inspection or price offer. For people searching about an emergency leak, I'd choose Google first.
How much should a roofer spend on Facebook ads?
Start with $30 to $50/day for 30 days in one service area. The worked plan uses $40/day, or $1,200. Spend less if that's what you can fund, but keep the test simpler and expect fewer inquiries to compare.
Lead form or landing page?
Start with a qualifying lead form for a simple inspection offer. Choose a dedicated landing page when the offer needs more explanation or your existing page already produces suitable inquiries. Compare cost per booked inspection, not just form volume.
Why are my roofing leads bad?
Fix the offer and qualifying questions first, then check the response route. Read the homeowner replies: wrong work points to the offer, wrong area points to location and qualification, and interested people who never book point to follow-up or appointment availability.
Should I run Instagram too?
Yes, include Instagram in the first test if your photos and videos work in its placements. Preview the crops and captions, then compare the quality of the inquiries. Keep the placements that bring useful visits at a cost your jobs can support.