All articles

Lead Generation

Roofing Meta Ads That Actually Work in 2026

Roofing Meta ads run $40 to $80 per lead, but only about half are reachable. The math, the 2026 platform changes, and the build order that survives.

Om Patel 16 min read
Photo: Tim Mossholder / Unsplash

The short answer

Roofing Meta ads work when they sell the inspection rather than the roof, and when the follow-up exists before the first dollar is spent. Blended roofing cost per lead runs $40 to $80, but roughly half of those leads are unreachable or unqualified, so the only honest scoreboard is cost per booked roof.

Meta ads work for roofing. They just do not do the job most roofers hire them for.

Nobody scrolls Instagram deciding to spend $14,000 on a roof. What Meta can do is sell a free inspection to a homeowner who had not thought about their roof that morning, and keep your name in the feed of every household in a hail-hit ZIP for the six months after the adjuster leaves. Those are real jobs worth paying for. They are not the same job Google does, and pricing them as if they were is why most roofing Meta accounts get shut off in the second month.

Three things changed in 2026 that break the standard playbook: Meta's lead-quality optimizer now has an eligibility floor most contractors sit below, hail moved several hundred miles off its historical map, and Meta started rewriting local ad copy without telling anyone. This is what to do about all three.

The short answer

Roofing Meta ads work when three conditions hold at once: the offer is an inspection rather than a replacement, the follow-up system exists before the campaign launches, and you measure cost per booked roof rather than cost per lead. Remove any one of those and the channel produces cheap form fills nobody ever reaches.

Across the r/Roofing threads where owners compare channels honestly, the pattern repeats: referrals and Google Maps produce the best jobs, and Meta lands somewhere between useful and useless depending entirely on what happens in the ten minutes after the form is submitted. As one commenter summarized a 60-comment thread on lead sources, "the channel matters less than what happens next." Another owner running an insurance-heavy shop listed Meta in his "not as good" column alongside purchased leads from Angi and HomeAdvisor, which is worth sitting with, because the agencies selling roofing Meta management usually claim insurance work is exactly where Meta shines.

Both are true. Meta is strong at getting an inspection on the calendar and weak at everything after it, and an insurance-heavy shop with canvassers already knocking the affected streets has a faster, cheaper route to the same roofs.

What a roofing Meta lead really costs

Start with the published benchmarks, then correct them.

Roofing Meta cost per lead clusters at $40 to $80 blended in 2026 across agency benchmark posts, with optimized accounts reported around $22 and storm-window campaigns cited lower. A real campaign posted to r/FacebookAds in early 2026 gives a useful reality check: 50 euros a day, 214.30 euros spent, 5 instant-form leads at 42.86 euros each, 0.73% link click-through rate, 2.68 euro cost per link click, 19.55 euro CPM. Two qualifying questions on the form. That is an unremarkable, honest, working roofing campaign, and it sits right in the middle of the published range.

Now the correction nobody in the search results makes. In an 18-month roofing case study posted to r/Roofing, a marketer who took a two-person startup from zero to $2.2M in sales reported that Google leads ran about 95% qualified while Meta leads ran about 50% qualified on the same business, and was candid that part of that gap came from slow callbacks rather than the channel. Other numbers from that account: average ticket $14,000 to $15,000, close rate about 22%, and by year two Meta had become the primary lead source anyway because Google search volume in their niche was capped.

Apply that 50% to a $45 cost per lead and you are paying $90 for a lead a human can actually talk to. Carry it forward:

StageRateRunning cost
Raw Meta lead$45$45
Reachable and qualified50%$90
Inspection booked and sat60%$150
Estimate closed22%$682 per booked roof

On a $14,000 ticket that is 4.9% of revenue, which is a good number. But it is roughly double the $185 to $420 per booked roof that the more optimistic roofing guides quote, and it collapses the moment the answer rate slips.

By the numbers

Work the ceiling backwards instead of chasing benchmarks. If you can allow 8% of a $14,000 ticket for customer acquisition, that is $1,120 per booked roof. Multiply by your lead-to-job rate to get your maximum affordable CPL: 3% gives you $34, 5% gives $56, 6.6% gives $74, 10% gives $112, 15% gives $168. Two roofers can look at the same $70 lead and one is profitable while the other is not.

This is also why the cheapest lead is frequently the worst purchase. As one commenter put it in the r/Roofing lead-source thread, if a source gives cheap leads but poor sit rate or margin, it is not cheap, it is just hiding the cost in rep time and windshield time. For the full channel-by-channel version of that math, see how much roofing leads cost.

Meta's quality optimizer has a floor, and most roofers sit under it

Every roofing guide published this year tells you to switch from the default Leads objective to Conversion Leads so the algorithm optimizes for jobs instead of form fills. Almost none of them mention that Meta publishes an eligibility bar, and that the typical roofing contractor does not clear it.

From Meta's own Conversions API for CRM documentation, updated December 2025, a business is a good fit for Conversion Leads optimization if it:

  • Uses Facebook or Instagram Lead Ads, since Conversion Leads is currently only compatible with instant forms
  • Generates at least 200 leads per month
  • Can upload CRM data back to Meta at least once per day
  • Has the target lead stage occur within 28 days of the lead
  • Has a conversion rate between 1% and 40% into that stage

Read the second bullet against your own account. At a $50 cost per lead, 200 leads a month means roughly $10,000 a month in Meta spend. Most roofing contractors are running $2,000 to $5,000, which produces 40 to 100 leads. They are not eligible for the feature that fixes the exact problem they are complaining about.

The 28-day window bites too. If you optimize toward "contract signed" and your average storm claim takes six weeks to approve, the event lands outside the window and Meta never learns from it. Optimize toward "inspection sat" instead, which happens inside a week and, at a 6% to 10% rate off raw leads, sits comfortably inside Meta's 1% to 40% band.

Two details worth knowing: Meta discontinued the Offline Conversions API in May 2025, so CRM stage updates now flow through the standard Conversions API, and that CRM integration is a separate setup from the website CAPI you may already have. Meta's published timeline is three to four weeks to value.

If you are under the floor, send the data anyway. The upload still teaches Meta which leads became jobs, and the day your volume clears 200 a month the model has history to work with. Just do not let an agency sell you Conversion Leads as a live feature your account cannot qualify for.

Most roofers cannot upload lead stage data back to Meta because it never gets recorded in the first place. We build the tracking and the follow-up layer that sits between your ads and your booked roofs, so cost per job stops being a guess.

Get a lead plan

The storm playbook is aimed at last decade's map

The single most-repeated piece of roofing Meta advice is correct: pre-build storm campaigns, keep them paused, and flip the budget within 24 to 48 hours of a hail event, because roofers who start building afterward lose the first week to setup while the auction saturates and CPCs spike.

The part that broke in 2026 is where you point them.

Baron Weather's analysis of this year's hail reports found the 2026 hail centroid, measured through April 20, had shifted 266 miles to the northeast compared with the 70-year average for the same period. Over half of January's storm reports fell outside historically expected areas. Severe hail hit the Upper Midwest in February, before the snow had melted, in regions the Storm Prediction Center's climatology puts at 20% or lower probability for that window. Illinois recorded a 6.1 inch hailstone, a state record.

The operational consequence is specific. Saved audiences and ZIP lists built from the last decade of hail patterns are pointed at the wrong ground this year, so roofers running those templates on schedule paid to reach homeowners whose roofs were fine.

Separate the two halves of the playbook. Keep the campaign structure, creative library and copy pre-built and paused, because that part still wins the week. Build the geography live from current reports when the event happens, and set the radius from the actual damage footprint rather than the ZIPs that used to get hit.

Watch out

If you are not in a hail market, do not run the storm playbook at all. Most of the roofing content online is written by agencies serving Texas, Kansas and Missouri, the three states with the most hail reports in 2026. In a non-storm market your Meta angle is roof age and financing, not urgency: aging neighborhoods built in a known window, "pay nothing until spring" offers through the shoulder season, and steady retargeting of your own site traffic. Borrowing storm urgency copy in a market with no storm reads as exactly what it is.

Check the Housing category before you build your targeting

Here is a contradiction sitting in plain sight across the pages that rank for roofing Facebook ads. One set of guides tells roofers to target ages 35 to 65+, filter by ZIP code and homeownership, upload their customer list as an exclusion, and build lookalikes from past insurance-claim customers. Another, written by a roofing agency, states that Meta classifies roofing under Housing, so ZIP targeting, age and gender filters are unavailable and you have to use interest proxies like home improvement and home insurance instead.

Meta's help center settles what the restrictions are, if not always which ads trigger them. For housing, employment and financial ads reaching the US, Canada and parts of Europe, these options are limited or unavailable: age, gender, ZIP or postal code, exclusion targeting, lookalike audiences and saved audiences. Some interests go away, and city or pin drop locations get an expanded radius.

That list is precisely the toolkit the mainstream roofing guides tell you to use. So the practical rule is this: before you build a single audience, open the campaign and look at which Special Ad Category it is in. If it is in Housing, every ZIP-level and lookalike tactic you read about this week is unavailable to you and the advice is worthless. If it is not, you have the full toolkit and the interest-proxy workarounds are an unnecessary handicap. Roofing service ads are not automatically housing ads under Meta's published examples, but property-adjacent copy gets classified automatically, and the category determines your options, not your intent.

Do not stack interest layers to approximate demographics you are restricted from targeting. It performs badly, and it is the behavior the restriction exists to prevent.

Advantage+ will rewrite your ad, and for a local roofer that is a lead-quality problem

In February 2026, an operator running local home service campaigns posted in r/FacebookAds that Meta had added seven headlines to a campaign he never wrote, one of which named a city in a different state: the ad said Greensboro while the campaign targeted Greenville, South Carolina. After being passed between what he counted as twenty-four support reps, he was told the cause was Placement Asset Customization, which can override the default headline.

Two other advertisers in the same thread confirmed the pattern, one saying he had a client "blowing budget on ads with headlines for cities 3 hours away," and that his agency now switches off everything labeled Advantage and still catches assets slipping through.

For an ecommerce brand a rewritten headline is a rounding error. For a roofer whose entire proposition is that you are local, it produces leads from people who think you serve a town you have never worked in, and those leads show up in your CRM as bad Meta lead quality rather than as what they are.

Three defenses, the third borrowed from a practitioner in that thread:

  1. Export the ad setup and screenshot every ad at publish time. You need a record of what you actually wrote to prove drift later.
  2. Audit every layer where asset automation can enter: Advantage+ creative enhancements, text improvements, site links, catalog assets and placement asset customization. Turning off one is not turning off all of them.
  3. Burn the city name into the image or video itself. Meta can rewrite a text field. It cannot silently swap a location baked into your creative.

Creative and offer: what the account actually runs on

Roofing accounts are not won on targeting in 2026. They are won on creative volume.

A high-spend advertiser who holds quarterly meetings with Meta staff laid out the shift in r/FacebookAds: the delivery system now wants far more creative variation than it used to, and campaigns that ran fine on three to five ads now need ten to fifteen or more before performance stabilizes. Creative is the new targeting. The practical version for a roofing company is that your job-site footage is the asset, not your audience settings.

Roofers report the same thing. A Central Florida roofing owner posting in r/AskMarketing said Meta disappointed him while he ran it himself, then became his best lead source after a rebuild, and the biggest single difference was that real project content and people on camera beat polished offer graphics. The marketer behind the $2.2M case study said he watched and took notes on more than 1,200 roofing video ads to build a library of hooks before testing anything, and that the same job-site footage fed both organic social and paid, producing 14.2 million views across Facebook, TikTok and Instagram in nine months.

On the offer, "free roof inspection" is table stakes now, not a differentiator, because everyone in the auction runs it. What still separates ads is specificity: the street you just finished, the damage you actually found, what the inspection includes and how long it takes. On the form, keep qualifying questions short and closed-ended. In the campaign cited earlier only 5 of 143 clicks became leads, and another advertiser pointed at the open-ended "describe the job" field as the likely friction.

The build order that survives, and the one number to judge it by

Do these in order. Skipping ahead is how the budget disappears.

  1. Answer the phone first. Every honest roofing thread lands here. Set a five-minute callback rule and an instant automated text on form submit before you spend a dollar. Roofers are on roofs, and that is exactly why the lead dies.
  2. Record the outcome of every lead. Source, contacted, inspection sat, estimate issued, sold, gross profit. Without this you cannot compute cost per booked roof and you cannot ever feed Meta anything useful.
  3. Set your ceiling CPL from allowable cost per booked roof multiplied by your lead-to-job rate. Write the number down before you look at any benchmark.
  4. Build the creative library, ten to fifteen variations from your own job footage, vertical, phone-shot, city burned in.
  5. Launch retargeting before cold prospecting. It is the cheapest layer in the account and most contractors skip it entirely.
  6. Pre-build the storm campaign paused, with geography left blank to fill from live reports.
  7. Start uploading offline events, even if you cannot reach Meta's 200-lead threshold yet.

Then judge the whole thing on one number: cost per booked roof, by source, with gross profit attached. Not cost per lead, not click-through rate, not the dashboard your agency sends. An account at $75 per lead that books roofs beats an account at $28 per lead that fills a spreadsheet, and the only way you will ever know which one you have is if step two is done properly. If you are still comparing channels before committing budget, how to get more roofing leads covers where Meta sits against Local Services Ads, SEO and door knocking.

The honest take

Meta is a worse channel than the agency pages selling it suggest and a better one than the burned owners in the Reddit threads believe. It creates demand that would not otherwise exist, at roughly half the lead quality of search, on a platform that in 2026 rewrites your ads, restricts your targeting based on a category you may not have chosen, and gates its own quality optimizer behind a volume floor most contractors will never reach.

That does not make it unworkable. It makes it a channel that punishes autopilot. The roofers who win on Meta are not the ones with better targeting. They are the ones who answer the phone in five minutes, film their own jobs, know their allowable cost per booked roof to the dollar, and check what Meta changed in their account this week.

Frequently asked questions

Do Facebook and Meta ads actually work for roofing companies?
Yes, for one specific job: selling a free inspection to a homeowner who was not already looking for a roofer. They do not work as a substitute for Google search, where the homeowner already knows their roof is failing. Roofers who treat Meta as a demand-creation channel and judge it on booked roofs tend to keep it. Roofers who judge it on cost per lead usually quit inside 90 days.
What is a realistic cost per lead for roofing Facebook ads in 2026?
Published benchmarks cluster at $40 to $80 blended, with optimized accounts reported near $22 and storm-window campaigns lower still. A real campaign posted in r/FacebookAds in early 2026 came in at 42.86 euros per lead on a 50 euro daily budget with a 0.73% link click-through rate. Treat any number under $25 outside a storm window as a sign your form is too frictionless, not a sign you are winning.
Should roofers use Meta instant lead forms or a landing page?
Instant forms for the first 48 hours after a storm, when volume and speed decide who books the neighborhood. Landing pages for everything else. Forms cut cost per lead but they also cut the answer rate, and on a $14,000 ticket the cost per booked roof is what matters. Run both against the same offer for 30 days and compare booked roofs, not form fills.
How much should a roofing company spend on Meta ads per month?
Below roughly $1,500 a month you will not gather enough conversion data for the algorithm to leave the learning phase reliably. Most agencies recommend $2,500 to $5,000 a month for a mid-size contractor. Note that Meta's Conversion Leads quality optimization requires at least 200 leads a month, which at a $50 cost per lead means about $10,000 a month before that feature is even available to you.
Why are my Meta roofing leads worse than my Google leads?
Because the intent is not the same and the qualification rate proves it. In a documented 18-month roofing case study, the marketer reported Google leads running about 95% qualified while Meta leads ran about 50% qualified on the same business, with part of that gap caused by slow callbacks rather than the channel itself. Price the channel at the qualified rate, not the raw cost per lead.
Does roofing fall under Meta's Housing special ad category?
Sometimes, and you need to check rather than assume. Meta's published restrictions for housing, employment and financial ads remove age, gender, ZIP code, exclusion targeting, lookalike audiences and saved audiences, and they widen city and pin drop radii. Every targeting tactic the average roofing guide recommends depends on those tools, so confirm which category your campaign is actually in before you build the audience.
How fast do I have to launch a storm campaign after hail?
Within 24 to 48 hours of a significant hail or wind event, which in practice means the campaign has to be built and paused before the storm exists. Roofers who start building afterward lose the first week to setup and learning phase while competitors saturate the auction. Build the templates in the quiet months and flip the budget on when the reports come in.
What creative works best for roofing Meta ads?
Real job footage shot on a phone, in vertical format, refreshed often. A Central Florida roofing owner posting in r/AskMarketing said Meta only became his best lead source once he switched to real project content and people on camera instead of polished offer graphics. Stock roof photography and produced horizontal spots read as ads and get treated as ads by the feed.
Done-for-you lead generation: a dedicated conversion page, a qualifying form that arrives with the answers attached, and lead-to-sale tracking, fed by targeted outreach and Meta ad campaigns we build and run.
Get a lead plan

Free tools

Find out what your site is costing you.

Enter your address and we check the real page. Scores are free and the itemised report lands in your inbox. No account, and we change nothing on your site.