Facebook Ads for Roofers: The Complete Playbook
Facebook ads work for roofers when the creative is honest, the audience is tight, and the landing page gets out of the way. They fail when the ad looks like stock footage and the form asks for a life story. This is the playbook we hand to every shop running Meta for the first time.
Budget bands and what to expect at each one
Budget drives learning speed more than outcomes. The Meta algorithm needs roughly 50 conversions per ad set per week to stabilize. Below that, you are paying for volatility.
Monthly spendExpected leadsCPL rangeBest use $500 to $1,00015 to 40$25 to $40Single service, single zip cluster $1,500 to $2,50050 to 120$20 to $35Two services, metro coverage $3,000 to $5,000120 to 300$15 to $30Multi-service, retargeting, lookalikesIn a storm market after a hail event, CPLs can drop to $8 to $15 for free inspection offers. In a cold retail market targeting full roof replacements, expect the top of the range.
Audience structure that actually scales
Start with two ad sets per campaign:
- Lookalike 1% off a customer list. Export every closed job from the last 24 months from your CRM. A 500 to 2,000 customer seed list is ideal. Upload hashed email and phone to Meta.
- Geo + homeowner detailed targeting. Zip code list, ages 30 to 65, "homeowner" behavior. Exclude renters if the option is available in your region.
Never layer interests on top of the lookalike. You will shrink the pool and the algorithm will cost you. Let the lookalike do its job.
CBO vs ABO
Campaign Budget Optimization (CBO) lets Meta shift spend across ad sets automatically. Ad Set Budget Optimization (ABO) locks spend per audience. Use ABO while you are testing audiences (first 2 to 3 weeks) so you can read the scorecard cleanly. Switch to CBO once you have a clear winner. CBO will overspend on the cheapest audience, which is not always the highest-quality one.
Creative requirements
Facebook does not reward polish. It rewards pattern interrupt. The top-performing roofing ads we see share four traits:
- Owner-facing. The owner of the company on camera in a truck or on a roof.
- Vertical 9:16 video under 30 seconds.
- Problem, not offer, in the first 3 seconds ("If you had hail in the last 6 months, your shingles may look fine but be totaled.").
- Specific local proof (neighborhood name, a real address blurred, before and after drone shots).
Run at least 4 creatives per ad set and refresh every 14 days. Ad fatigue on Meta is brutal after day 21.
Landing page specifics
Do not send Facebook traffic to your homepage. Build a dedicated page with:
- Headline that matches the ad ("Free hail inspection in [city]")
- Form above the fold, 3 fields only (name, phone, address)
- Phone number click-to-call at the top of mobile view
- 3 trust signals: Google rating, license number, years in business
- No navigation bar. Every click on the page goes to the form or the phone.
Page load under 2.5 seconds. If your site is slow, half your ad spend is wasted. Our conversion-focused website guide covers the above-the-fold checklist in depth.
CPL targets by market
The range you should benchmark against:
- Storm restoration markets: $10 to $20 CPL, 30 to 40% close rate on inspections
- Retail replacement markets: $30 to $60 CPL, 15 to 25% close rate
- Repair-focused campaigns: $15 to $35 CPL, 50%+ close rate but low ticket
If your CPL is above the top of the range after 3 weeks, the issue is usually creative (90% of the time), then landing page, then audience. Rarely is it bid strategy.
Tracking and attribution
Install the Meta pixel and use the Conversions API. iOS 14+ broke pixel-only tracking badly. CAPI recovers 20 to 40% of the signal. Pipe form submissions from your landing page into RoofKnockers so every Facebook lead becomes a contact record with the UTM parameters attached. That way you can close the loop from ad spend to signed job in one view instead of living in spreadsheets. See our ROI tracking breakdown for the attribution model we recommend.
Common mistakes that burn budget
- Running to the homepage instead of a landing page
- Boosting posts instead of running proper Ads Manager campaigns
- Targeting the entire metro instead of storm-impact zips
- Using stock photos of roofs that could be from anywhere
- Not excluding customer list from prospecting (you pay to show ads to people who already hired you)
Fix those five and your CPL will drop 30% in the first month without touching budget.
When to hire vs run in-house
Under $2,000/mo in ad spend, run it yourself. Agencies will eat the margin and learn slowly at that volume. Above $5,000/mo, a good roofing-specific agency will usually pay for itself through better CPL and creative velocity. In between, an in-house marketer or a tight contractor relationship works. Read our lead-gen services comparison if you are weighing agency vs platform buying.
Start with one service, one audience pair, four creatives, and a dedicated landing page. Get to 50 conversions, then scale. Every roofer who tries to do everything at once ends up turning ads off two months later because nothing can be measured. Run the playbook.
Ready to grow your roofing sales operation?
Start Your 14-Day Free Trial