Channel Deep-Dive · 2026

Why Facebook Ads Don't Work for Roofing Contractors

The structural reasons cold Facebook ads break for residential roofing acquisition — outside the storm-response window where they briefly work.

Most roofing contractors run a Facebook ad campaign at some point and get the same result: high CPM, mediocre leads, tire-kickers calling about repairs they don't actually want done, and $800-$1,800 loaded CAC per closed reroof. The intuition is "we need better creative" or "we need a better landing page." The actual reason runs deeper.

The four structural problems

1. Facebook can't filter for roof age

Roof age is the #1 predictor of whether a homeowner is in-market. 18+ year-old asphalt-shingle roofs convert at 5-10× the rate of roofs under 12 years. Facebook's audience targeting has no roof-age signal. Every cold Facebook lead is a coin-flip on whether the home even needs a roof.

Mailed roof quotes filter visually: Google Street View shows roof age (curling, granule loss, color fading); you mail only those homes.

2. Roofs are silent until they fail

Most homeowners don't think about their roof until something visibly wrong happens — leaks, missing shingles, post-storm damage. Cold Facebook traffic reaches homeowners who weren't thinking about roofing at all. The conversion math breaks because the audience isn't in a buying window.

Mailed roof quotes work because the rendered postcard creates the buying window: the homeowner sees their house with a new roof and an upfront price, and the latent "we should probably replace this" thought becomes active.

3. Three-bid culture eats Facebook leads

Roofing is a 3-5 bid market — most homeowners get multiple quotes before signing. Facebook leads land in the bottom of that bid pile because they don't have a relationship signal. Mailed roof quotes generate leads where the homeowner has ALREADY seen your render with material tiers and pricing — when you arrive, you're not just another bid, you're the contractor they recognize.

4. Episodic budget vs longer buying journey

Roofing's sales cycle is 7-60 days (faster than solar or pools, but still longer than Facebook's typical lookback window). When you turn off the Facebook campaign, the audience drops out. Mailed postcards sit on the kitchen counter.

Why storm-response Facebook works (briefly)

The 7-14 day storm window

After NOAA confirms a hail/wind event, the four structural problems collapse:

  • Audience is already self-qualified (they're in the affected zip code).
  • Urgency closes the targeting gap.
  • Three-bid culture compresses to "who can be on my roof first".
  • Episodic budget matches the 7-14 day shopping window.

Storm-response Facebook CAC drops to $300-$700 per closed reroof during the window. Pair with mailed roof quotes for the same zips and combined CAC drops further.

What to do instead in steady-state

  1. Move cold-acquisition budget to mailed roof quotes. Target 18+ year-old roof zips via Street View prescreen.
  2. Keep Facebook for retargeting only. Anyone who scans a postcard gets a small retargeting flow.
  3. Reserve a Facebook budget for storm-response. Pre-allocate $2K-$5K to fire within 24 hours of a confirmed event.
  4. Pair mailed quotes with warm-follow D2D. Reps walk neighborhoods that received postcards 7-14 days prior.

Roofing acquisition that targets by roof age.

Free account, free rendering, $1 per mailed roof quote. Money-back guarantee on your first $1,000 campaign.

Start free →