GUIDE · SOCIAL MEDIA MARKETING

Facebook Ads for Contractors: What a Lead Should Actually Cost You

Meta's ad manager will spend whatever you let it. This is what a qualified lead should run a roofer, remodeler, or HVAC shop in 2026, and the levers that move that number.

Be Seen, Contractors!9 min readUpdated 2026

The short answer

Most established contractors running Facebook and Instagram lead ads land somewhere between $25 and $95 per lead, with big-ticket trades (roofing, remodeling, solar-adjacent work) toward the top and smaller-ticket recurring trades (lawn care, cleaning, pest) toward the bottom. That figure is cost per lead, not cost per job: expect to filter out tire-kickers, and expect the number to swing hard based on your creative, your targeting radius, and whether you're using a lead form or sending traffic to a landing page. Anyone quoting you a flat number without asking your trade and service area is guessing, and anyone promising a number well below these ranges is usually counting something other than a real, contactable lead.

What Drives Facebook Ad Cost Per Lead for a Contractor

Meta prices your ad the same way it prices everyone's: an auction. You're not just bidding against other contractors, you're bidding against every advertiser trying to reach the same person in the same feed at the same moment. That auction, plus a handful of variables specific to home-service trades, is what sets your number.

  • Ticket size and job type. A full roof replacement lead can justify a higher cost per lead than a gutter cleaning lead, because the backend value is different. Meta's algorithm also learns this: campaigns optimized for "leads" versus "purchases" versus "calls" behave differently in the auction.
  • Service radius. A contractor targeting a 40-mile radius around Orlando is bidding against every other advertiser in that footprint, home service or not. Tight radius targeting inside a dense metro often costs more per impression than a wide rural radius, but converts better because the leads are actually in range.
  • Creative quality and freshness. Stock photos and generic stock text get penalized by the algorithm over time (ad fatigue). Real job-site photos and short vertical video of actual work consistently outperform stock creative in home services, and that shows up directly as lower cost per lead.
  • Lead form vs. landing page. Meta's native lead forms (the ones that stay inside the app) usually produce a lower cost per lead than sending clicks to your website, because there's zero friction, the person never leaves Facebook or Instagram. The tradeoff: those leads are typically lower intent and need faster, more aggressive follow-up.
  • Season and competition. Storm season for roofers, spring for landscapers, summer for HVAC: everyone in the trade is bidding at once, and cost per lead climbs. Off-season, the auction is quieter and cheaper, but volume drops too.

None of these are things a generic social media package accounts for. A calendar of boosted posts is not a lead-ad campaign, and treating them the same is where most contractors' ad budgets go to die.

Typical Cost Per Lead by Trade (2026 Ranges)

These are the ranges commonly reported across the home-service advertising world for Meta lead ads, not a guarantee for any specific account. Your actual number depends on your radius, your creative, and how tight your targeting is, and two contractors in the same trade and same metro can post different numbers based on how well the account is actually run.

TradeTypical Cost Per LeadWhy
Roofing (replacement)$45 - $95High ticket, storm-driven demand spikes, heavy competition for insurance-related searches and clicks
Remodeling / additions$50 - $100+Long consideration window, high-value job, competing with design-build firms and franchises
HVAC (install/replace)$35 - $75Seasonal spikes, competitive metros, mix of install and service intent
Plumbing$25 - $60Mix of emergency and planned work pulls the average down versus pure big-ticket trades
Electrical (panel/EV/rewire)$30 - $70Growing category (EV chargers, panel upgrades) with less saturated ad competition in most metros
Landscaping / lawn care$15 - $40Lower ticket, recurring revenue model, high volume tolerance
Fencing / decking$25 - $55Visual trade that performs well with photo/video creative, moderate competition
Cleaning / pest / smaller recurring trades$10 - $30Lowest ticket, highest volume, most price-sensitive category

Notice the spread inside each row. A roofer at the bottom of the $45-$95 range and a roofer at the top are often running the exact same trade in similar-sized metros, with the difference coming down to creative, targeting discipline, and how fast the account has been optimized. That spread is the whole story: trade sets the ballpark, execution sets where you land inside it.

If you're paying materially above these ranges, the problem is rarely "Facebook is expensive." It's almost always targeting that's too broad, creative that's gone stale, or a campaign objective mismatched to what you actually want (traffic instead of leads, engagement instead of conversions). It's worth pulling your own numbers monthly and checking where you sit against the table above before assuming the platform itself is the issue.

Cost Per Lead Is Not Cost Per Job: Do the Real Math

A $40 lead sounds cheap until you find out three out of ten are fake numbers, out-of-area homeowners, or people who filled out a form for a $50 gift card promotion they saw somewhere else and don't remember requesting a quote. This is the number that actually matters, and it's the one most ad reps never walk a contractor through, because it makes their cost-per-lead number look worse, not better.

Take your monthly ad spend, divide by leads generated, and you get cost per lead. Then apply your real close rate (the percentage of leads that become paying jobs) and you get cost per acquired customer. A roofer paying $70 per lead who closes one in five is paying $350 to land a customer. If that customer's average job is $12,000, that's a fine trade. If the same roofer is only closing one in fifteen because the leads are junk, the math falls apart even at a cheap cost per lead. The platform isn't the variable that broke; the lead quality is.

This is also where speed to contact matters more than most contractors expect. A lead that fills out a form and doesn't hear back for six hours has usually already called two competitors. Cost per lead can look identical on two accounts and still produce wildly different close rates purely because one shop answers the phone in five minutes and the other answers the next morning.

  • Track lead quality, not just lead count. Set up a simple tag in your CRM or even a spreadsheet: good lead, bad lead, no-show, closed. Review it monthly against ad spend.
  • Ask what "lead" means in any quote. A form-fill is not the same as a phone call, and a phone call is not the same as a booked estimate. Some agencies count all three as "leads" to make their cost-per-lead number look better.
  • Weight it against your ticket size. A $90 lead for a $25,000 kitchen remodel is a different conversation than a $90 lead for a $300 gutter cleaning.
  • Track time-to-first-contact. If your team isn't calling new leads within minutes, fix that before touching the ad account. It's usually the cheaper fix and the bigger lever.

This is the filter that separates a Facebook ad account that's actually working from one that's just burning a monthly budget on vanity numbers.

Boosted Posts vs. Real Lead Ad Campaigns

This is the single most common way established contractors waste money on Facebook: they hit the blue "Boost Post" button under a job-site photo and call it advertising. It isn't, not in any way that produces a predictable, measurable cost per lead.

Boosting a post pushes it to more of your existing followers and lookalikes with almost no targeting control, no lead form, no conversion tracking, and no way to measure cost per lead at all beyond "likes" and "reach." It's built to be easy, not effective, and Meta designed the Boost button that way on purpose: it's the fastest path from a post to a payment, not the fastest path to a qualified lead. A real lead campaign, built in Meta Ads Manager with a Leads or Conversions objective, gives you audience targeting by radius and interest, a native lead form or landing page destination, budget control by day or lifetime, exclusion targeting to filter out audiences you don't want, and a Pixel or Conversions API connection back to your website so Meta's algorithm can actually learn who converts and optimize toward more of them.

The cost difference on paper looks similar (both let you "spend $20 a day"), but the outcome isn't close. A boosted post might get you likes and comments from people who will never hire a contractor, plus a handful of coincidental form-fills you can't attribute or measure. A properly built lead campaign is built from day one to answer one question: what did this cost per qualified lead, and it reports that number back to you in the ad manager without guesswork.

There's a middle ground worth naming too: some contractors run both, using organic posts to build trust and proof of work over time, then layering a real ad campaign with a Leads objective on top once there's enough job-site content in the feed to draw from. That's a legitimate strategy. Boosting that same organic content and calling it your ad program is not.

If your current "Facebook ads" are boosted posts from your regular content calendar, you don't have a paid lead channel yet. You have a reach tactic wearing a lead-gen costume, and the monthly spend you're calling "ads" isn't producing a real cost-per-lead number you can act on.

What a Contractor-Specific Ad Setup Looks Like

Generic social agencies build the same campaign structure for a dentist, a boutique, and a roofer, then wonder why the roofer's cost per lead is double what a trade-specific setup would produce. Home-service ad accounts that actually hold a low, stable cost per lead share a few things in common, and none of them are secret tricks.

  • Job-site creative, not stock photography. Real tear-offs, real trucks, real crews. Homeowners scroll past stock images without registering them; they stop on a photo that looks like it was taken on a roof three streets over. This is the same job-site content this silo builds for organic posting, reused as ad creative.
  • A form or page built for one job, not a menu. A lead form asking "what service do you need" with fifteen checkboxes converts worse than a form built around one specific offer: a free roof inspection, a same-week HVAC tune-up, a fencing estimate. One clear ask beats a menu every time.
  • Radius matched to actual service area, not a default 25-mile circle. Wasted impressions outside your real coverage area are pure cost with zero possible conversion. A crew that only runs jobs within 20 minutes of the shop shouldn't be paying to reach homeowners 40 miles out.
  • Retargeting built in. Someone who watched 75% of a job-site video but didn't fill out the form is a warmer audience than a cold lookalike. Layering a retargeting campaign on top of cold prospecting usually lowers blended cost per lead over time, because that second touch is cheaper than the first.
  • A follow-up system that calls fast. Meta lead-form leads go cold within minutes. A campaign with a great cost per lead and a slow callback still loses the job to whoever answers the phone first.
  • Creative rotation on a schedule. The same three photos running for six months will fatigue and quietly push cost per lead up even if nothing else about the account changes. Fresh job-site content needs to feed the ad account on a cadence, not just when someone remembers.

This is where trade-specific management earns its fee: not by promising a magic low number, but by building the account so the number you're already paying actually turns into booked work instead of leaking out through weak creative, a bad radius, or a slow callback.

How to Budget for Facebook Ads as a Contractor

There's no universal "right" monthly budget, but there is a floor below which Meta's algorithm can't gather enough data to optimize well. As a rule of thumb, most contractor accounts need enough monthly spend to generate at least 15-20 leads a month per active campaign before you can judge whether the targeting and creative are actually working. Below that, you're looking at noise, not a trend, and any conclusion drawn from five leads in a month is really just a guess dressed up as data.

A simple way to set a first budget: pick a monthly lead target based on your crew's real capacity to handle new work, multiply by the typical cost-per-lead range for your trade from the table above, and add 15-20% as a testing buffer for the first two months while creative and targeting get dialed in. A roofer wanting 20 leads a month at a $65 average would budget roughly $1,300-$1,500 to start, understanding the first month is partly paying for data, not just leads. A landscaper wanting the same 20 leads at a $25 average is looking at closer to $500-$600, a very different conversation with the crew about what's affordable to test.

Expect a real adjustment period. Meta's algorithm needs volume and time (generally a few weeks of consistent spend) to exit its learning phase and start optimizing efficiently. Pulling a campaign after four days because the first few leads looked soft is the most common way contractors talk themselves out of a channel that would have worked with a little more patience. The learning phase is genuinely part of the cost of running the channel, not a sign something is broken.

One more budgeting reality worth naming plainly: this guide covers paid Meta advertising specifically. It doesn't cover what organic posting or full social management should cost as a monthly retainer, and it doesn't cover Google Ads, Local Services Ads, or search PPC, which run on a completely different auction with different mechanics. If the question is what a full social media management program costs on top of ad spend, that's a separate breakdown.

Key takeaways

  • Typical Facebook/Instagram lead-ad cost per contractor lead in 2026 runs $25-$95, with big-ticket trades like roofing and remodeling toward the top.
  • Cost per lead is not cost per job: track your real close rate before deciding a number is good or bad.
  • Boosted posts are not lead-ad campaigns. They don't target, don't use a lead form, and don't report real cost per lead.
  • Job-site creative consistently beats stock photography on cost per lead for home-service trades.
  • Give a new campaign several weeks of consistent spend before judging it. Meta's algorithm needs data to optimize.
  • Budget for testing: your first month or two of spend partly buys data, not just leads.

STRAIGHT ANSWERS

Quick answers.

01Is Facebook still worth it for contractors in 2026, or has it gotten too expensive?

Cost per lead has risen across most trades since Meta's early lead-gen years, but it's still competitive against other paid channels for many home-service categories, especially visual trades like roofing, fencing, and remodeling. Whether it's worth it depends on your close rate and average ticket, not the sticker price alone.

02Should I use Meta's native lead form or send clicks to my website?

Native lead forms usually produce a lower cost per lead and higher volume, but the leads tend to be lower intent and need fast follow-up. Landing-page traffic costs more per lead but generally converts at a higher rate because the person had to leave the app and take an extra step. Many contractor accounts run both and compare results directly.

03How much should I budget to start testing Facebook ads?

Enough to generate at least 15-20 leads in a month, which for most trades lands somewhere between $500 and $2,000 depending on your average cost per lead. Anything less and you don't have enough data yet to judge whether the campaign is actually working.

04Does this cover Google Ads or Local Services Ads too?

No. This guide is specifically about paid Facebook and Instagram advertising. Google Ads and Local Services Ads run through a different auction with different mechanics and live outside this silo. If search-based paid ads are the question, that's a separate conversation.

WANT THIS HANDLED FOR YOU?

Want a straight answer on what your leads should cost?

Bring us your trade, your service area, and what you're spending now. We'll tell you straight whether your cost per lead is in line, and what a job-site-specific Facebook and Instagram setup would look like for your shop.

Start With the Free Audit
Call (407) 705-2452 Text