Facebook Ads for Roofing Companies

Roofing Facebook Ads: What They Cost and How to Run Them

Yes, roofing Facebook ads can fill a schedule. They just don't work the way kitchen or deck ads do.

Hardly anyone scrolls Instagram hoping for a new roof. They want the leak gone, and a lot of them live with a ceiling stain for weeks before they call anybody.

On a roofing account, Bit House Digital brought in 82 landing-page leads at $68.80 each on $5,642 of managed spend, for roofs that usually run $10,000 to $25,000. That's the price of being the name they recognize before they type "roofer near me."

This guide to Facebook ads for roofers goes step by step: what moves the cost, why the offer beats the targeting, and how to time spend around storm season.

What to Have Ready Before Your First Roofing Ad

Have four things in place before you spend a dollar.

  • An offer you can deliver this week. If the ad promises a free inspection, somebody has to be free to get on roofs within a few days.
  • Footage from your own jobs. Phone video of a tear-off, a drone pass, close-ups of lifted shingles and soft decking. A few minutes of filming on your next job is enough for the first ads.
  • Your zip code list. The zips your crews reach in a normal day, written down.
  • A phone that gets answered. Someone has to call each lead back within minutes. Roofing leads cool off fast, and after a storm a lot of homeowners contact more than one roofer the same day.

How to Set Up Facebook Ads for Roofing Companies, Step by Step

Ten steps, in order. The first one decides more than the other nine.

1

Build the offer around an inspection, not a quote

A roofing ad lives or dies on what it asks the homeowner to do.

"Free estimate" asks them to admit they need a new roof. Most people with a small stain haven't admitted that yet, so they keep scrolling.

An inspection asks for much less. You look, you take photos, you tell them what you found.

Scrolls right past

"Family-owned roofing. Quality work. Free estimates. Call today!"

It asks for a replacement decision before the homeowner knows what's wrong. Most roofers in town say the same thing.

Gets the tap

"Free 21-point roof inspection with photos, and a written report in 24 hours."

A specific check, proof they can see, and a deadline you set for yourself. The homeowner learns something even if they don't hire you.

Same roofer, same market. The offer on the right asks for a look, not a decision.

Only advertise what you'd put in writing. If the ad says 24 hours, the report goes out in 24 hours.

The trade-off?

Inspection leads arrive earlier in the buying cycle than replacement quotes, so some turn into a repair or a "call me next spring."

That's the cost of meeting homeowners before the other roofers do.

2

Set up the accounts in the right order, in your name

This is about twenty minutes of setup, and you do it once.

  • Business Page first. Current phone number, service area and recent roof photos. Homeowners check it before they call.
  • Business portfolio second. Create it at business.facebook.com. It owns everything else.
  • Ad account third. Set the time zone and currency, and add a payment method.
  • Meta Pixel last. It goes on your landing page, so Meta learns which visitors became leads.
Your business portfolio YOU OWN THIS Business Page Reviews and photos Ad account Billing and ad history Meta Pixel Learns who converts Agency partner access only

You own the portfolio. An agency gets partner access, so the ad history stays with you when you part ways.

Build it in your own portfolio, even if you hire help later.

What happens if you don't?

Roofers who let someone else own the ad account lose its history when the relationship ends.

The click-by-click screens for this part are in our step-by-step guide to Facebook advertising for contractors, which covers any trade.

3

Decide where the lead lands before you build the ad

A tap on your ad goes somewhere. Pick that place first, because it shapes lead quality more than the ad does.

For roofing, send the click to a landing page that asks two or three questions before the phone number:

  • How old the roof is
  • What's going on
  • Whether they own the home
Your ad
One offer: the inspection
Landing page
Your roofs, your reviews
Three questions
Roof age, the problem, owner?
A homeowner with a phone number
Ready for an inspection call

The questions in the middle keep renters and the merely curious out of your call list.

Install the Meta Pixel on that page and fire a Lead event when the form goes in.

That's how Meta learns which visitors turned into leads and finds more people like them.

4

Create the campaign and pick the Leads objective

In Ads Manager, hit Create and Meta asks for an objective.

A lot of roofers go wrong here by picking Engagement or by boosting a post instead.

facebook.com/adsmanager
Choose a campaign objective
Awareness
Traffic
Engagement
Pick this Leads
App promotion
Sales

Leads tells Meta to find people who fill out forms, not people who like roof photos.

Pick Leads, then set the conversion location to your website so the Pixel from step 3 does its job.

Start with one campaign, one ad set and one offer. Add a storm ad set later, when the weather gives you a reason.

5

Draw the service radius, then add storm zip codes

Target the area your crews reach in a normal day and leave out the rest.

Why?

A lead 70 miles away costs the same as one down the street, and it's much harder to turn into a job.

Skip the stack of interest filters. Meta's delivery system finds homeowners well on its own when the area is right.

Your shop STORM PATH Storm zips own ad set, own creative Service radius a normal day's drive

Normal months run on the radius. After a storm, the zips it crossed get their own ad set and storm footage.

When hail or wind hits part of your area, load those zip codes into a separate ad set with storm-specific creative.

Those homeowners have a reason to look up today.

Storm ad sets wear out fast. Two or three weeks after the storm, fold those zips back into the main campaign.

6

Set a budget you can hold for 30 days

Pick a daily budget you can leave alone for a month.

Meta needs that long to settle, and pulling money in week two throws away what it learned.

A simple way to size it: enough to buy about one lead a day at your expected cost per lead.

$68.80
cost per roofing lead
×
30
days, one lead a day
=
$2,064
first-month ad spend

Sizing a first month off Bit House Digital's measured roofing cost per lead. Your market sets your own number.

At the $68.80 Bit House Digital measured on a roofing account, one lead a day comes to about $2,064 over 30 days.

Now compare that to the job:

Against a $10,000 roof, the low end of the ticket, one signed job covers that month almost five times.

7

Make the ad: the owner, the roof, the problem first

The roofing ads that hold attention look like they were shot between jobs, because they were.

Three kinds of footage carry most of the load:

  • The owner on camera, explaining what an inspection involves
  • A drone pass over a real roof
  • Tear-off footage that shows what's under old shingles
YR
Your Roofing Co.
Sponsored
That stain on the ceiling usually starts up here. Here's what we check on a free inspection.
Owner on the roof: lifted shingles, a cracked pipe boot, a soft spot
captions on
Free inspection, photos included
Book Now
1

The first line names a symptom. A ceiling stain or a shingle in the yard is something they've already seen.

2

The owner walks the roof. A homeowner who hasn't been up there sees what you look for.

3

Drone or tear-off footage proves it. Soft decking under old shingles explains a replacement without a word of copy.

4

One offer, one button. The inspection from step 1 and nothing else.

The anatomy of a roofing ad. The owner's face and the roof do the selling.

Talk the way you talk in a driveway.

If you wouldn't say "protect your most valuable investment" to a homeowner's face, leave it out of the ad.

Make three versions with different first lines and let them compete for a week.

Not comfortable on camera?

Drone and tear-off footage with captions works as a first ad.

8

Launch it, then leave it alone for a week

Hit publish and don't touch it. Edits in the first week restart Meta's learning phase, and early costs swing a lot.

Day 1
Launch. Confirm it's spending and leads arrive.
Days 2–6
Learning phase. Costs swing. Hands off.
Day 7
First real read of cost per lead.
Day 30
Judge the month on booked inspections.

The first 30 days. The amber stretch is where a lot of roofers kill an ad that was about to work.

Week one has three jobs:

  • Confirm money is moving.
  • Confirm leads land in your CRM.
  • Call each lead back.

Two days and $40 of spend tell you almost nothing about an ad.

9

Judge it on cost per lead, cost per booked inspection, and ROI

Ads Manager shows dozens of numbers. Three of them pay the bills:

  • Cost per lead picks the winning ads.
  • Cost per booked inspection tells you whether the leads are real.
  • ROI tells you whether the roofs you sign pay for the ads.
facebook.com/adsmanager · reports
After one weekExample adCall
Cost per lead under your targetOwner inspection walk-through Keep
$206 spent (3x a $68.80 target), zero leadsDrone pass, no offer on screen Kill
Cheap leads, none book an inspectionStorm check, lead form Fix the page

Keep, kill or fix. Give each ad about three times your target cost per lead before you call it.

So what return makes the ads worth it?

If the ads bring back at least 2 to 3 times what you spend on them, you can run them profitably. Most of Bit House Digital's clients do at least 5x.

In roofing, one signed replacement can carry a month of spend, so count signed roofs at the end of the month, not leads.

10

Call each lead within minutes

A roofing lead is warmest the minute the form goes in.

After a storm, that homeowner may be filling out forms for other roofers within the hour.

Call right away. If they don't pick up, text who you are, then call again later that day and the next morning.

MINUTE 0 Lead lands in your CRM WITHIN 5 MINUTES First call: book the inspection NO ANSWER Text your name and the offer LATER THAT DAY Second call NEXT MORNING Third call, then a weekly check-in

A simple follow-up ladder. The first call carries the most weight.

Across Bit House Digital's contractor accounts, clients report booking 50 to 80% of the leads we generate.

Speed on the phone is the part of that number you control.

Book the inspection on the first call, while they're still looking at the stain.

A fast call books the inspection. Getting the lead in the first place comes down to the ad, and three kinds of roofing ads do most of that work.

Roofing Facebook Ad Examples

Three roofing Facebook ad examples cover most of what works: a free inspection ad, a post-storm ad and a financing ad.

1. The free inspection ad
YR
Your Roofing Co.
Sponsored
Water stain on the ceiling? It usually starts up here. Book a free roof inspection and get photos of what we find.
Owner on the roof, pointing at a cracked pipe boot
free inspection, photos included
Free roof inspection
Book Now
1

What they see: the owner on a real roof, pointing at damage a homeowner can't see from the yard.

2

Why it works: it asks for a look, not a decision, and the photos promise proof.

2. The post-storm ad
YR
Your Roofing Co.
Sponsored
Tarps went up on three roofs on your street after last week's wind. If yours made it through, get it checked before the next one.
Drone pass over a block with blue tarps
free storm check this week
Free storm damage check
Get Quote
1

What they see: drone footage of tarps on houses they drive past on the way home.

2

Why it works: the neighbors' tarps make the risk feel close. Run it only in the zips the storm hit, and only when the tarps are real.

3. The financing ad
YR
Your Roofing Co.
Sponsored
A leaking roof doesn't wait for savings. Ask about monthly payments on a full replacement.
Tear-off: soft decking under the old shingles, then the new roof going on
monthly payments available
See payment options
Learn More
1

What they see: rot under old shingles, then a clean new roof.

2

Why it works: it answers the cost question before they ask it. Name only the terms your lender gives you in writing.

Build each of the three around your own jobs: your footage, your street names, your lender's terms.

The post-storm ad tends to run hot for a couple of weeks and then fade.

The inspection ad is the one that carries the quiet months, and the offer inside it is the reason.

Free Roof Inspection Ads: The Offer That Works

A free roof inspection works as a Facebook offer because it asks the homeowner for a look, not a five-figure decision.

You get on the roof, take photos and tell them what you found.

On a King and Snohomish County roofing account, Bit House Digital led with a roof condition check instead of a free estimate.

The check gave uneasy homeowners a reason to act before an emergency. That's a much bigger group than the people with water coming through the ceiling.

What about running a discount instead?

Discount ads pull in the wrong buyer. A homeowner choosing a roof on price alone can end up with the contractor most willing to cut corners where they can't see.

Discounts also produce quotes, not jobs: the homeowner takes your number to two other roofers and asks them to beat it.

Bottom line: an inspection starts the conversation with what you found instead of what you charge.

A competitor can't copy that by typing a smaller number.

Targeting by Zip Code and Storm Area

Target roofing Facebook ads by the zip codes your crews reach in a normal day, and give storm-hit zip codes their own ad set when the weather gives you a reason.

Meta's location box takes zip codes directly, or a pin on your shop with a mile radius. Zip codes give you tighter control at the edges of your area.

After a storm, check the National Weather Service storm reports or a hail-map service the next morning, then load the hit zips into a separate ad set with storm footage.

Two or three weeks later, fold them back into the main campaign.

Watch the wording, though:

If an ad leads with loan terms, Meta can put it in the credit special ad category, which replaces zip-code targeting with a radius of at least 15 miles.

Storm zips often need more than shingles.

If your crews also replace siding after hail, run it as its own campaign. Our page on Facebook ads for siding contractors covers the offer for that trade.

Lead Forms vs a Landing Page for Roofing Leads

For roofing, a landing page with a few questions usually produces better leads than a Facebook lead form, and a lead form usually produces cheaper ones.

A Facebook lead form opens inside the app with the homeowner's name, email and phone already filled in. Two taps and it's sent.

The result?

A lot of those homeowners don't remember submitting when you call.

A landing page makes the homeowner leave Facebook, see your roofs and answer a few questions first. Fewer people finish, and the ones who do expect your call.

Bit House Digital's 82 roofing leads at $68.80 each were landing-page leads, not lead-form fills.

If a landing page isn't realistic yet, use a lead form and set it up this way:

  • Choose the Higher intent setting.
  • Add your own questions about roof age and the problem.
  • Make the phone field required.

Landing-page leads usually cost more than form fills. The price itself comes down to three things, and the offer is one of them.

Facebook Ads for Roofers: What a Lead Costs

Bit House Digital paid $68.80 per lead on one roofing account, for roofs that usually run $10,000 to $25,000.

So what does that look like in a real account?

One roofer, one market, straight from Meta Ads Manager.

Bit House Digital roofing account · Meta Ads Manager

82 landing-page leads at $68.80 each

For a roofer serving King and Snohomish County, Washington, Bit House Digital generated 82 landing-page leads at $68.80 each on $5,642 of managed spend.

Bit House Digital's $68.80 lead is under 1% of a $10,000 roof, the low end of what a replacement usually runs.

82
landing-page leads
$68.80
cost per lead
$5,642
managed ad spend

Meta Ads Manager, one roofing client account, figures for the account's full run

82 leads is one account, and the smallest in Bit House Digital's dataset. Read it as one roofer's number in one market, not an industry average.

Roofing sets its own number for two reasons: the size of the ticket and the timing of the need.

A roof is a five-figure job that most homeowners put off until something forces it.

The lead costs what it takes to be in front of them before that moment, and the ticket is what makes that worth paying for.

Several roofing guides on page one of Google quote a cost per lead around $30, with no ad account behind the figure.

Across eight trades and $139,167 of managed spend, Bit House Digital's cost per lead ran from $29.45 to $119.18, 2,635 leads in total.

Three things move a roofing number most:

  • How dense your service area is
  • The season
  • The offer

An inspection offer brings cheaper leads than a replacement quote, because the homeowner is agreeing to less.

If you want to see the same cost math on another exterior trade, we publish it for fence leads too.

Roofing Ads on Facebook vs Google Search

Google search catches the homeowner who has already decided to call a roofer, and Facebook reaches the same homeowner in the weeks before, while the stain is still being ignored.

Search clicks for roofing cost more because you're bidding against a lot of the roofers in town for the same person on the same day.

Facebook makes you the name they already recognize when the ceiling finally forces the call.

So which one should a roofer run?

Plenty of roofers run both: search for the emergency, Facebook for the homeowners a few weeks away from one.

Facebook adsGoogle searchAngi / HomeAdvisor
When you meet themWeeks before they searchThe day they searchAfter they ask for quotes
Who else they hear fromYou, firstThe roofers above and below your ad3 to 4 contractors per lead
What you keep if you stopFootage, page, ad historyAccount historyNothing; leads stop that day

Three ways to get a roofing lead, compared on timing, competition and what you own.

Angi's own site says a lead goes to three to four contractors at once, so the homeowner you call is already hearing from your competitors.

Angi's terms run 12 months, need 60 days' notice to cancel, and carry a 30 to 35% early-termination penalty.

The FTC's action against HomeAdvisor over how it sold leads to contractors ended in a $7.2 million order.

Ownership is the bigger difference.

Stop paying a marketplace and the leads stop that day. Stop running ads and the footage, the landing page and the ad account history stay yours.

Timing Roofing Ads Around Storm Season

Run roofing ads year-round at a steady floor, and raise the budget before your region's storm season starts, not the week after the first storm.

Here's why:

In the Pacific Northwest the pattern is rain, not hail. The first long wet stretch of autumn brings the leak calls, and the accounts already running catch them.

Starting a campaign after the storm means paying peak prices to show up late.

Winter

Floor budget. Inspection ads for homeowners who have watched a stain grow all season.

Spring

Replacement and financing ads while homeowners plan the year's projects.

Summer

Storm footage filmed and ready, so a storm ad set can launch the morning after hail or wind.

Fall

In rain-driven markets, budget up before the first long wet stretch brings the leak calls.

A year of roofing ads. The floor budget runs year-round; the rest moves with your weather.

Spring is planning season.

Homeowners who got through winter with a bucket in the attic decide in March they're not doing that again, and reaching them tends to cost less.

Don't go dark in the quiet months.

Cost per lead tends to be lowest when fewer roofers are bidding, and the pipeline you build then keeps crews busy when the season turns.

Stopping and restarting also costs you Meta's learning each time, so you pay for the expensive first weeks over and over.

What We Do For Your Roofing Business

Bit House Digital builds the offer first, because it decides more than the targeting does.

That means working out what to put in front of a homeowner who is uneasy but not yet panicking, and what happens on the call after they raise their hand.

Then we produce the creative: owner-to-camera video on what an inspection involves, drone and tear-off footage, and before-and-after work. We write it, direct it and edit it.

We build the landing page and wire the tracking, so each lead lands in your CRM and we can tell which ad produced which booked inspection.

We run the campaigns daily, refresh creative before it wears out, and give you a real number each week with a straight answer about what it means.

If your crews also do siding or windows, each trade gets its own offer and its own campaign rather than one ad trying to sell all three.

Roofing Facebook Ads: Common Questions

On one roofing account, Bit House Digital brought in 82 landing-page leads at $68.80 each on $5,642 of managed spend, for roofs that usually run $10,000 to $25,000. That's one account and the smallest in Bit House Digital's dataset, so read it as one roofer's number, not an industry average. For a first month, plan on enough to buy about one lead a day, which at Bit House Digital's $68.80 roofing number is about $2,064, and hold it for 30 days before judging.
Yes, when the ad leads with an inspection offer and the lead lands on a page that qualifies them. Roofing demand is triggered by a leak, a storm or a neighbor's tear-off, and Facebook puts your name in front of homeowners before that moment. Google search catches them after it, when you're bidding against a lot of the roofers in town. Plenty of roofers run both.
A free roof inspection with photos and a written report. It asks for a look instead of a replacement decision, so homeowners who are uneasy but not in an emergency raise their hand. Skip percentage-off discounts: they attract price shoppers and turn your quote into someone else's negotiating position.
A landing page with two or three questions usually produces better leads: roof age, the problem, and whether they own the home. Lead forms are cheaper per lead, but they open with contact details already filled in, so a lot of those homeowners don't remember submitting. If you use a lead form, choose the Higher intent setting, add your own questions and make the phone field required.
Yes. Meta accepts zip codes in location targeting, so after a hail or wind storm you can load the hit zip codes into their own ad set with storm footage. Keep it to the zips the storm crossed, mention only damage that's real, and fold those zips back into the main campaign two or three weeks later.
No, though it helps. The strongest roofing ads Bit House Digital runs are usually the owner talking plainly about what a roof inspection involves. If that's not for you, drone footage, tear-off footage and before-and-after shots work well, because roofing has some of the best visual proof of any trade.
A marketplace lead is shared. Angi's own site says a lead goes to three to four contractors at once, so you're calling a homeowner who is already talking to your competitors and deciding largely on price. Ads you run reach a homeowner who hears from you first, and the creative, landing page and ad account history stay yours if you stop.
Usually within the first week, though the first leads are rarely the cheapest. The first month is for learning, and the second is where cost per lead settles. Anyone promising a locked-in number in week one is guessing.

Ready to Fill Your Calendar With Roofing Estimates?

Free strategy call. No pressure. We'll show you exactly what this looks like for your roofing business and your market.