Facebook Ads for Solar and Roofing Companies: What $380K in Spend Taught Me About $50-150 Leads
Solar and roofing leads from Facebook cost $40-150 depending on your market and service mix. Separating tire-kickers from homeowners ready to sign is the hard part. I've managed about $380K across solar installers and roofing contractors, mostly in the Sun Belt and Midwest. Both verticals share the same sales cycle: high ticket, one decision-maker, 2-8 week close.
Most solar and roofing companies try Facebook Ads the same way: boost a post, get 40 clicks, get zero calls, decide Facebook doesn't work. Or they hire an agency that generates 200 leads in a month, the sales team calls them, and 180 turn out to be renters, people with 520 credit scores, or folks who thought they were entering a giveaway.
The targeting and qualification killed those leads, not Facebook.
Solar and roofing sit in an odd spot. Project values ($8,000-40,000+) justify expensive leads, but the sales cycle means you won't see ROI for 60-90 days. Judging a campaign at day 14 tells you cost per lead and nothing else. I've made this mistake myself, killing ad sets that would have produced $14K roofing jobs if I'd given them three more weeks.
You reach people before they comparison-shop (that's the whole advantage)
Homeowners don't wake up searching "solar panel installation quote." They wake up staring at a $340 electric bill or a leak stain on the ceiling. Facebook catches them in that frustration window, before they start comparing three contractors on Google.
I worked with a solar installer in Phoenix who was spending $6,000/month on Google Ads. Good leads, 12-15% close rate, but CPL ran $85-110 because every solar company in Arizona bids on the same keywords. We added $4,000/month in Facebook spend. CPL dropped to $52. Close rate was lower at 8%, but cost per closed deal came out almost identical: roughly $650 from Facebook vs $700 from Google. And the volume doubled.
Google captures demand. Facebook creates it. I've seen retargeting audiences built from Facebook engagement produce Google Ads close rates 20-30% above cold search. You warm them on Facebook, then capture them when they search. Most installers I work with run both channels, and the combined cost per acquisition runs lower than either one alone.
Where it breaks: markets with heavy HOA restrictions on solar, states where net metering policies change with each legislative session, and areas where the average home value sits under $180K. Below that threshold, solar financing gets harder, roofing jobs shrink, and the unit economics compress fast. I turned down a solar client in rural Mississippi for this reason. His average project was $16K, margins were thin, and the $80 CPL in his area meant he'd need a 12% close rate to break even. His team was closing at 5%.
Campaign structure for $10K+ projects
Skip CBO for high-ticket local services. ABO (Ad Set Budget Optimization) gives you control over spend by audience segment, and you need that control when one ad set might produce $22K solar leads while another produces tire-kickers.
The structure I keep coming back to:
Campaign 1: Lead Generation (Instant Forms)
- Ad Set 1: Homeowners, 30-65, 25-mile radius, broad targeting, $30/day
- Ad Set 2: Homeowners, interest-based (home improvement, renewable energy for solar / roof repair, storm damage for roofing), $25/day
- Ad Set 3: Lookalike 1% based on closed deals (once you have 50+), $25/day
- Ad Set 4: Retargeting site visitors + video viewers, $15/day
Campaign 2: Conversion (Landing Page)
- Same audience splits, dedicated page with a qualification form
- Budget: $20/day per ad set
Total test budget: about $200/day or $6,000/month. Below $3,000/month you won't get enough data per ad set to optimize. I know that's a big number for a small roofing company, but spending $1,500/month across four ad sets means each one gets barely $12/day, which isn't enough for learning phase.
For roofing, add a storm-chasing campaign: when hail or wind events hit your service area, spin up a separate campaign within 48 hours targeting affected zip codes. I ran one of these in suburban Dallas after a spring hailstorm. 67 leads in 9 days at $28 CPL. The contractor closed 11 jobs averaging $14,200 each. Total ad spend: $1,876. Revenue from those 11 jobs: about $156K. That kind of ROI happens maybe twice a year if you're watching the weather, and never if you're not.
Solving the qualification problem before sales touches anything
The complaint I hear most from solar and roofing companies: "We got 80 leads but only 15 were qualified."
That's normal. A 15-20% qualification rate on Facebook leads is standard for home services over $10K. The problem starts when your sales team spends 3 hours calling unqualified leads before finding the good ones.
Two fixes that move the needle:
Multi-step Instant Forms. Build a 3-step form instead of a single name/phone field:
- Step 1: "Do you own your home?" (yes/no) + "Estimated monthly electric bill?" (for solar) or "When was your roof last replaced?" (for roofing)
- Step 2: "Timeline?" (ASAP / 1-3 months / researching)
- Step 3: Name, phone, email
The added friction filters out casual browsers. In one account, switching from a 1-step to 3-step form dropped lead volume 40% but pushed qualification rate from 18% to 41%. Cost per qualified lead fell from $210 to $145. Fewer leads, better leads, lower cost per good one.
CRM scoring before human contact. Score leads from form answers before anyone picks up the phone. Homeowner + high electric bill + ASAP timeline = call within 5 minutes. Renter = auto-disqualify. I've audited accounts where the sales team called leads in submission order, burning 20 minutes on a renter before getting to a homeowner who submitted 3 hours earlier. That homeowner had already called a competitor by the time they got the callback.
Route "researching" leads to an educational video and a nurture email sequence. Route "ASAP" leads to an instant scheduling page with a sales notification. Your sales team only sees hot leads in their queue.
CPL benchmarks: 2026 numbers
These come from accounts I've managed across the US. Your market will vary, but the ratios between service types tend to hold. Urban markets trend higher, rural lower.
Storm damage leads run cheapest because the homeowner already knows they need a roof. You're not creating awareness, you're catching urgency. Solar leads in the northeast cost more because the addressable audience is smaller and the selling season compresses into about 5 months.
The number to watch: cost per closed deal. Open your CRM, pull every lead from the last 90 days, divide total ad spend by closed deals. If your CPL is $70 and your close rate is 10%, you're paying $700 per closed deal. On a $25,000 solar installation at 20% gross margin, that's $700 to earn $5,000. That math works for almost any installer, though I've seen margins tighter in the Midwest where labor markets are competitive.
Creative that performs (and patterns that burn money)
Stock imagery looks fake and homeowners scroll past it. The ads that work across both verticals follow a few patterns, though the order of effectiveness depends on your market.
Performers:
- Before/after photos of your own installations. A drone shot of a finished roof or solar array on a recognizable local house beats stock photos. One of my clients keeps a Dropbox folder where the install crew uploads job photos same-day. That folder is the creative team's goldmine.
- Video testimonials from customers, even with mediocre production. A 30-second iPhone clip of a homeowner saying "my electric bill dropped from $280 to $40" outperforms polished corporate video. The roughness signals authenticity.
- Seasonal hooks: "Your AC is working twice as hard because your roof is 20 years old" or "Lock in the 30% federal solar tax credit before it steps down"
- Local proof: "We've installed 340 systems in [City] since 2021" with a photo collage
Money burners:
- Generic "go green" messaging. Homeowners buy solar to cut their electric bill. I tested "save the planet" vs "save $1,200/year" angles for the same installer. The financial angle produced 3x the leads at half the CPL.
- Stock photos of solar panels on a house that looks nothing like homes in your area
- Discounts in the ad copy. "$5,000 off!" attracts price shoppers who compare 8 installers
- Carousel ads for lead gen. They perform for e-commerce but underperform single image and video for home services in my tests
One installer in Austin tested 24 ad variants over 6 weeks. The winner: a selfie-style video from the company owner standing on a rooftop next to a finished array, saying "This system pays for itself in 6 years. The panels last 25. That's 19 years of free electricity." No script, no editor, shot on an iPhone 15. It ran for 4 months before fatigue set in. CPL: $42.
Seasonality matters more than you think
Solar and roofing have pronounced seasonality. Ignoring it wastes budget. I've seen companies blow $8K in December on solar lead gen and wonder why CPL was double their summer average.
Solar:
- Peak: March-September in most markets. Spring is the launch window because homeowners start thinking about summer electric bills
- Shoulder: October-November. Leads get cheaper because competitors pull back, but installation backlogs stretch close times
- Off-season: December-February (except Sun Belt). CPMs drop 20-30% but lead quality drops further. Use this time for brand awareness and retargeting
- Tax credit push: January-April. "File your federal tax credit this year" moves fence-sitters. This works especially well for homeowners who got solar installed the previous year and haven't filed yet
Roofing:
- Storm season is the money season. Track weather in your service area and be ready to launch geo-targeted campaigns within 48 hours of hail or wind
- Spring (March-May): homeowners notice winter damage. Best window for scheduled replacement leads
- Late fall: "Get your roof inspected before winter" works in northern markets
- Winter: emergency repair leads in cold markets, replacement in warm markets
I managed campaigns for a Colorado roofing company that concentrated 60% of their annual Facebook budget between April and July. That aligned with hail season and produced 70% of their annual closed deals from Facebook. We tried running steady budget year-round the following year at the client's request. November through February ate budget for almost no closeable leads. We went back to the concentrated model.
Tracking and attribution for long sales cycles
A roofing job can take 6-8 weeks from lead to signed contract. Solar stretches to 12. Facebook's default 7-day click, 1-day view attribution window misses most of your conversions. If you're only looking at in-platform ROAS, you're seeing maybe 30-40% of the picture.
The setup I use for solar and roofing accounts:
Offline conversion tracking. Export closed deals from your CRM monthly and upload them to Meta. You train the algorithm on who buys, not who fills out forms. One installer kept CPL flat but saw close rates from Facebook leads climb from 7% to 11% over 6 months after setting this up. Meta's delivery system learned what a buyer looks like and started finding more of them. Worth the 20 minutes of monthly CSV work.
Custom conversion events. Track more than form submissions:
- Lead form opened (start)
- Lead form submitted (lead)
- Sales qualified lead (CRM webhook)
- Appointment set
- Proposal sent
- Contract signed (offline upload)
After 50 "contract signed" events, you can optimize toward contract signed instead of form submissions. CPL goes up but cost per closed deal drops. Getting to 50 events takes most installers 3-5 months, so plan for a transition period where you optimize for form fills while building the dataset.
UTM parameters with CRM integration. Tag each lead with source, campaign, ad set, and ad ID in the URL parameters. When you close a deal 8 weeks later, you need to trace it back to the specific ad. Without that link, you can't calculate real ROAS and you risk killing ad sets that were producing closers on a longer timeline.
Common mistakes in solar and roofing accounts
Targeting too broad. "All homeowners, age 25-65, within 50 miles" shows up in about half the accounts I audit. Layer in home value ranges and income targeting. Homeowner demographic is available in Ads Manager, but adding home value narrows to people who can afford a $25K solar system. A $200K home is less likely to produce a sale than a $450K home. Check your closed deal data to confirm the threshold in your market.
Skipping renter exclusions. I've audited 6 solar and roofing accounts this year where renters weren't excluded. Renters still click "Get a free quote" out of curiosity. In one account this was 22% of total leads.
Running the same ad for 6 months straight. Solar and roofing aren't subscription products. Creative and seasonal messaging need to change monthly, sometimes more. The same ad from March through September guarantees fatigue by June. Rotate 4-6 creative variants per ad set and refresh on a 3-4 week cycle. Set a calendar reminder.
Slow response time. In one roofing account, the contractor's team responded to Facebook leads in 4-6 hours. Responding in under 5 minutes produces 8x the contact rate based on data from multiple accounts. We set up instant SMS and email auto-responders that cut the gap to under 2 minutes. Contact rate went from 35% to 67%. Same leads, same team, faster first touch. The auto-responder cost $49/month.
No nurture sequence. A homeowner who says "researching" in April might sign in August. Without an email/SMS drip keeping you visible, that lead goes to whichever installer they find on Google three months later. Set up a 90-day nurture minimum for solar. Roofing can be shorter, 30-60 days for non-emergency, since the decision timeline compresses.
FAQ
How much should a solar company spend on Facebook Ads per month?
$4,000-8,000 for a single-market residential installer. That generates 50-150 leads depending on geography and creative. Below $3,000 you won't exit learning phase on multiple ad sets. If you serve multiple cities, scale by market at $3,000-5,000 per metro with separate campaigns.
Do solar and roofing companies need Special Ad Category?
Standard solar installation and roof repair don't require it. If you mention financing, PACE loans, or credit in ads, Facebook may flag you for Housing or Credit category. Keep financing details on the landing page, not in ad copy. SAC limits targeting to broad demographics: no interests, no lookalikes, restricted age/zip targeting.
Should I use Lead Ads or a landing page?
Run both. Lead Ads (Instant Forms) produce higher volume at lower CPL. Landing pages produce fewer leads but higher quality: those people are more likely to answer the phone and show up for appointments. Compare cost per closed deal over 90 days, not CPL at day 7. In my experience, Instant Forms win for roofing and landing pages edge out for solar, where the research phase runs longer and the landing page builds more trust.
How long before Facebook Ads work for solar?
90 days to see the real picture. Month 1 collects data while the algorithm learns who engages and converts. Month 2 produces leads entering your pipeline. Month 3 shows your first closed deals. Judging at day 30 means looking at CPL alone, which tells you volume and cost but nothing about whether those leads become revenue. I've seen campaigns that looked terrible at day 30 produce the best cost-per-closed-deal numbers by day 90.
Can I target homeowners who had hail damage?
No direct "hail damage" targeting option exists. But you can geo-target affected zip codes, launch ads 24-48 hours after the storm, and run creative that references the event. "Allen, TX homeowners: last Tuesday's storm caused $12M in roof damage in Collin County. File your insurance claim and get your roof replaced before the next one." That local specificity works because it's relevant and urgent. Pair it with a $40-60/day budget for 10-14 days and you'll catch homeowners while they're still looking at the damage.
Bottom line
Solar and roofing are strong verticals for Facebook Ads if you accept two things: leads need qualification before they reach a salesperson, and ROI takes 60-90 days to show up.
The contractors closing the most deals from Facebook respond faster and nurture longer than competitors. In a market where most roofing companies run "Free estimate!" ads, the one with a 3-step form, 2-minute auto-response, and 90-day drip sequence closes 3x more from the same lead pool.
Track cost per closed deal. Upload offline conversions monthly. Rotate creative on a 3-4 week cycle. And when a storm hits your market, have a campaign ready to launch before your competitors check their Facebook page.