Google ads catch homeowners who are already searching for a roofer. Facebook and Instagram ads do something different — they reach homeowners before the search: the couple who’ve been ignoring the 22-year-old shingles, the neighborhood that took hail last Tuesday, the family who’d replace the roof this year if someone showed them a monthly payment instead of a five-figure bill.
That difference sets every rule in this playbook. Meta leads are cheaper than Google’s ($20–80 vs. $100–400) and softer — you interrupted them, so they close slower and ghost more. Roofers who treat Meta like Google (“run ads, wait for emergencies”) conclude it doesn’t work. Roofers who run offer-driven campaigns with fast follow-up quietly fill shoulder seasons with it. (Where Meta fits among all nine lead sources is in the ranked list.)
The three campaigns that work in roofing
Skip “brand awareness.” Three campaign types produce roofs:
1. The free inspection offer (the workhorse)
The offer that matches how people actually think about roofs — “I have no idea if mine is fine.” A free, no-pressure inspection is low commitment, genuinely useful, and the natural first step to every big job.
- Targeting: homeowners in your service towns; skew 35+, and toward neighborhoods built 15–30 years ago (roof-age money zone).
- The ad: a real photo (crew on a roof, or damage close-up), a headline like “When did anyone last look at your roof?”, and a plain promise: 20 minutes, photos of what we find, no pressure.
- The catch: inspections aren’t jobs. Your close comes from the honest report (“you’re fine for 3–4 more years” builds the trust that wins the eventual replacement; “here’s the hail bruising, here’s how the claim works” starts the big one).
2. Storm response (the multiplier)
The week after hail, Meta becomes a precision instrument no other channel matches: you can blanket exactly the zips that took damage with an inspection offer while the tarps are still blue.
- Pre-build it in the calm — creative, copy, and audience saved as a paused campaign, the same way your Google storm campaigns wait for weather.
- Day-after launch: swap in the storm date and towns (“June 14 hail — Allen & McKinney free inspections this week”), multiply the daily budget, run for 2–3 weeks.
- Lead with local proof — reviews, your address, jobs on their streets — because every out-of-town chaser is running ads too, and local is your trump card.
3. Financing framing (the replacement-starter)
The strongest non-storm angle in roofing: “A new roof from $150/month.” It reframes the scary five-figure number into a car-payment decision, and it reaches the enormous quiet audience that knows the roof is due but keeps deferring the lump sum. Point it at your financing page (anatomy in what a roofing website needs), and expect a slower, larger-ticket pipeline — these are researched decisions, which makes the follow-up section below the whole ballgame.
Creative: what stops a homeowner’s thumb
Meta is a visual auction. What wins it for roofers, in rough order:
- Real damage close-ups — hail bruises, lifted shingles, rotten decking. Curiosity + mild alarm = stopped thumb.
- Before/after pairs — the most trusted format in the trades.
- Crew-at-work shots and 30-second phone videos — a foreman explaining what hail damage looks like beats any graphic.
- The owner talking to camera — imperfect, local, human. In a chaser-scarred trade, a face is an offer.
Skip stock photos entirely (scroll-past guaranteed, trust-negative), and write copy like you talk: short, specific, zero “quality craftsmanship.” One idea per ad. Test two or three images against each other and let the numbers pick — you’ll usually be wrong about the winner, which is the point.
Lead capture: forms vs. your website
Meta gives you two ways to collect the lead, and the right answer for most roofers is both, tested:
- Instant forms (in-app, pre-filled) produce more leads at lower cost — with more tire-kickers mixed in. Add one qualifying question (“Own or rent?” / “Roof age?”) to filter cheaply.
- Website conversions to a landing page produce fewer, better leads — the page’s proof does some pre-selling. This needs your pixel installed and a page that loads fast on a phone.
Whichever wins on booked inspections (not raw leads) after a few weeks gets the budget.
Follow-up: where Meta ads live or die
Write this on the office wall: a Facebook lead is a warm maybe, not a ringing phone. They tapped a form while half-watching TV. The economics only work with a system:
- Five-minute response. Call or text the moment the lead lands — auto-notification to whoever’s on point. Same-day response can halve your effective cost per booked job versus next-day.
- Text first, call second. “Hi, it’s Marcus from [Company] — got your inspection request. Does tomorrow 4pm or Thursday morning work?” A text gets answered by people who never pick up unknown calls.
- Three touches over a week, then a monthly drip for the maybes. The funnel guide’s follow-up system is the template — Meta leads are exactly the “quotes that go quiet” it’s built for.
Retargeting: the cheapest ads you’ll run
A homeowner who visited your site or watched your video is 10× the prospect a cold scroller is. With your pixel in place:
- Retarget site visitors (who didn’t contact you) with the inspection offer and review-heavy creative — for a few dollars a day.
- Retarget video viewers from your storm and financing campaigns with the direct offer.
- Exclude recent customers so you’re not paying to re-reach the roof you just installed.
Small audience, small budget, outsized share of booked jobs. Turn it on the same week as any campaign above.
Setting up your first campaign, step by step
If you’ve never opened Meta Ads Manager, here’s the path for the inspection-offer campaign, decision by decision:
- Objective: Leads. Not awareness, not traffic — you want contact info, and telling Meta that is how its targeting learns.
- Budget: start $30–75/day at the campaign level and let Meta distribute it. Resist the urge to restructure daily; the system needs a week or two of data to settle.
- Audience: your service towns (the map tool takes town names or a radius), age 30–65+. Skip detailed interest stacking — “homeowners who like DIY shows” sounds smart and mostly shrinks your audience for nothing. Broad + good creative beats clever + narrow.
- Placements: automatic. Your square photos run everywhere; Meta shifts spend to what performs.
- Creative: one campaign, 3–4 ads — your best damage close-up, a before/after pair, the owner-to-camera video. Same offer on all of them so the test is the image, not the message.
- Form or landing page: start with an instant form (one qualifying question: “Do you own this home?”), and test the landing-page variant once the form version has a baseline.
- Tracking: name campaigns and ads clearly (“Inspection — Frisco — damage-closeup”) so reports read like English later.
Publish, then don’t touch it for a week. Early numbers wobble; judge after 7–10 days, kill the clearly-dead ad, and let the winners run.
Five ads you can copy today
Steal these skeletons — swap in your towns and photos:
- The question: “When did anyone last actually look at your roof?” + damage close-up. Body: “Most roof problems are invisible from the driveway. Free 20-minute inspection, photo report included, zero pressure. [Town]-based, 200+ reviews.”
- The storm response: “June 14 hail — [Town] homeowners, get inspected before you file.” + hail-on-shingles shot. Body: “We’re local (not storm chasers), we photograph everything, and we’ll tell you honestly if you don’t have a claim.”
- The financing reframe: “A new roof from $150/month.” + gleaming after shot. Body: “Stop budgeting a scary lump sum. Financing available, free estimates, done in 2 days.”
- The proof: before/after pair, minimal text: “Same house. Two days. [Neighborhood].” Let the photos sell.
- The honest one: owner to camera, 30 seconds: “I’m [Name]. If your roof’s over 15 years old, get it inspected — by us or anyone local. Here’s what we look for…” Trust ads like this one lose the click contest and win the booked-job contest.
Reading the numbers without a marketing degree
Ads Manager shows forty columns; you need five:
- Cost per lead — the headline number, but only step one.
- CTR (click-through rate) — under ~1% usually means the creative isn’t stopping anyone; swap images before touching budgets.
- Frequency — average times each person has seen the ad. Past ~3–4, fatigue sets in and costs climb: refresh creative or widen the audience.
- Cost per booked inspection — comes from your calendar, not Meta’s dashboard. The number that actually matters.
- Cost per sold roof — checked quarterly. This one decides next year’s budget.
If a campaign’s leads are cheap but nothing books, the problem is almost never the ad — it’s follow-up speed or lead quality, fixed by the five-minute rule and the qualifying question above.
Budget math and honest expectations
- Testing: $30–75/day, one offer, one audience, 6–8 weeks. Judge on cost per booked inspection and, a quarter later, cost per sold roof — the only two numbers that matter.
- Working benchmarks: leads at $20–80; a third to half becoming booked inspections with fast follow-up; storm weeks meaningfully cheaper, deep-winter colder.
- Scale what books, kill what doesn’t. The dashboard’s cheap leads mean nothing if the calendar stays empty — the same rule as every channel.
A concrete month, to make it real: $50/day is $1,500. At a $40 cost per lead that’s ~37 leads; with disciplined follow-up, maybe 15 booked inspections; from those, say 3–5 real jobs between repairs and a replacement. Against roofing margins, that math works comfortably — if the follow-up happens. The same $1,500 with next-day callbacks might book 5 inspections and one small repair, and now the channel “doesn’t work.” Same ads, same audience — the difference was entirely what happened in the ten minutes after each lead arrived.
“Should I just boost posts instead?”
The blue Boost button under your page’s posts is Meta’s easiest money-collector, so let’s settle it: boosting is fine for tiny jobs, wrong for lead generation.
A boost optimizes for engagement — likes, comments, reach. Meta will dutifully find the people most likely to tap a thumbs-up, which is a different crowd from the people likely to hand you their phone number. You’ll spend $100, feel popular, and book nothing. The campaigns in this guide run through Ads Manager with a Leads objective precisely because you’re telling Meta to find form-fillers, not fans.
The exception: a $20–40 boost on a genuinely great post — a dramatic before/after, a storm-week PSA — to your local area is a cheap awareness nudge and a fine use of lunch money. Just never confuse it with the lead machine, and never let “we boosted some posts” stand in for actually running ads.
The launch checklist
- Pixel installed; instant-form and landing-page variants ready
- One campaign first — free inspection, your best suburbs, real photos
- Qualifying question on the form; auto-notification wired
- Five-minute follow-up rule assigned to a human by name
- Retargeting on from week one; customers excluded
- Storm campaign built and paused, waiting for weather
- Weekly: creative check (kill fatigued ads); monthly: cost per booked inspection
Meta ads won’t replace the search engine you own — they feed it, filling the quiet months and multiplying the loud ones. Build the follow-up habit first, run one offer until the numbers are boring and predictable, and they become the most controllable faucet in roofing marketing: open it when crews need work, close it when the schedule fills.
Before you fund the faucet, make sure the bucket holds water: the free audit scores the site and profile every ad will send people to. And if you’d rather run crews than campaigns, here’s how we handle the foundation for a flat monthly price.
