Facebook Ads for Contractors: What Actually Works

Photo by Rasul Kireev on Unsplash
Most contractors who try Facebook ads quit within 30 days. They spend $300, get nothing but page likes, and conclude that “Facebook doesn’t work for my business.” In our work with contractors, the issue is almost never the platform. It’s the setup. Facebook can be one of the most cost-effective lead channels in home services when you run it correctly. This guide covers what actually works, from the campaign objective down to the ad creative.
Why Facebook Reaches the Right Homeowners
Facebook’s audience skews toward homeowners, not renters. The platform’s average user in the US is 35-50 years old, owns a home, and is in a service area-sized geography. That matches the customer profile for most contractor businesses almost exactly. If you haven’t locked down your Google Business Profile yet, do that first, a free channel worth owning before you spend a dollar on ads.
Unlike Google search, where you only reach people actively searching right now, Facebook lets you reach homeowners before they’re in crisis mode. You can stay in front of people in your service zip codes consistently, so when their roof starts leaking or their AC dies, your name is already familiar. That familiarity lowers the bar to call.
The tradeoff is intent. Facebook is interruption-based, so your creative has to earn attention. We’ll cover exactly how to do that below.
Choose the Right Campaign Objective
This is where most contractors go wrong first. Facebook’s campaign objective tells the algorithm what to optimize for, and picking the wrong one wastes significant money.
Use Lead Generation for most contractor campaigns. The Lead Gen objective serves your ad to people most likely to fill out a form and lets them submit their contact info without leaving Facebook. This reduces friction, especially on mobile, and typically produces cheaper leads than sending traffic to a landing page.
Use Traffic or Conversions only if you have a dedicated landing page with a clear form and you’ve installed the Facebook Pixel on your website. Without the Pixel, Facebook can’t learn who’s converting, and your costs will be higher.
Avoid Awareness and Reach objectives unless you’re running a branding campaign alongside a primary lead-gen campaign. They generate impressions, not leads.
Step-by-step to set up a Lead Gen campaign:
- Go to Ads Manager (not the Boost button; more on that below)
- Click “Create” and choose “Lead generation” as the objective
- Name your campaign by market and month (e.g., “Dallas Roofing - Apr 2026”)
- At the ad set level, set your audience, location, and budget
- At the ad level, create your Lead Form with name, phone, and one qualifying question
Target Homeowners in Your Service Area
Getting the targeting right is the single highest-leverage thing you can do to lower your cost per lead.
Location targeting: Set a radius around your base of operations. For most contractors, 15-25 miles is the right starting point. Avoid targeting entire metro areas unless you genuinely service all of it, or wasted impressions will inflate your costs. Use “People who live in this location” rather than “People recently in this location” to filter out travelers.
Age and homeownership: Set age to 30-65. Enable the “Homeowners” detailed targeting option under Demographics > Home > Home Ownership. This alone will significantly improve lead quality.
Interest targeting: Layer on service-relevant interests like “Home improvement,” “Do it yourself (DIY),” “HGTV,” and specific interests like “Roofing” or “Air conditioning.” Don’t stack too many; 3-5 interests is enough. Heavy interest stacking shrinks your audience and raises costs.
Lookalike audiences: Once you have 100+ past customers in a list, upload it to Facebook and create a 1-2% lookalike audience. This is typically the best-performing targeting for established contractors.
What to avoid: Broad targeting with no age, interest, or location filter. It might reach millions of people, but almost none of them are your customers.
What to Put in a Facebook Ad
A contractor Facebook ad has three jobs: stop the scroll, create relevance, and prompt action. Here’s how to handle each.
The image or video: Use real photos from your jobs. Before-and-afters perform well for remodeling and roofing. A short (15-30 second) video of a technician explaining a common problem works well for HVAC and plumbing. Avoid stock photos of generic tools or houses. Homeowners recognize them and scroll past. The more your image looks like it was taken in their neighborhood, the better it performs.
The headline: Lead with the outcome or the offer. “Free roof inspection for [City] homeowners” outperforms “Quality roofing services since 1998.” Specificity wins. If you have a guarantee, put it in the headline.
The body copy: Keep it short. Three to four sentences maximum. Identify the problem, state what you do about it, and tell them what to do next. Example: “A leaking roof doesn’t wait for a good time to fail. We offer same-week inspections for [City] homeowners with no repair obligation. Fill out the form and we’ll call you within 2 hours.”
The offer: A low-friction offer converts better than a generic call to action. “Free inspection,” “Free estimate,” and “No-obligation quote” consistently outperform “Contact us” for home services contractors. If you have a real promotion ($50 off first service, free filter with HVAC tune-up), test it.
The lead form questions: Name and phone are sufficient for most contractors. Adding a qualifying question (“What type of work do you need?”) improves lead quality but reduces volume. Start without it and add once you’re getting volume.
Boosted Posts vs. Ads Manager
Most contractors encounter Facebook advertising through the Boost button on a post. Here’s when each option makes sense.
| Feature | Boost Post | Ads Manager |
|---|---|---|
| Setup time | 2 minutes | 15-30 minutes |
| Objective control | Limited (engagement/reach) | Full control including Lead Gen |
| Targeting options | Basic | Full demographic, interest, lookalike |
| Lead forms | Not available | Available |
| A/B testing | Not available | Available |
| Cost per lead (typical) | Higher | Lower |
| Best for | Building page engagement, local awareness | Generating actual leads |
Our recommendation: Use Ads Manager for any campaign where your goal is leads or calls. The Boost button is fine for promoting a post you want more eyes on, but it should not be your primary paid strategy. The targeting limitations and lack of lead form access make it significantly less efficient for lead generation.
Common Mistakes That Burn Your Budget
Running ads without the Facebook Pixel installed. The Pixel tracks what happens after someone clicks your ad. Without it, Facebook optimizes for clicks, not conversions. Install it on your website before spending any money on traffic or conversion campaigns. Meta Business Suite walks you through setup.
Changing ads too quickly. Facebook’s algorithm needs 50 conversion events (form fills, calls, etc.) to exit its learning phase. If you pause or edit a campaign after two days because you haven’t gotten leads, you’re resetting the learning and wasting the spend to date. Give campaigns 7-10 days and at least $200-300 in spend before evaluating performance.
Using the same ad creative for months. Facebook audiences are relatively small at the local level. If you run the same image and copy for 90 days to the same 30,000 people, frequency rises, engagement drops, and your cost per lead climbs. Refresh creative every 4-6 weeks.
Not following up fast enough. A Facebook lead is not the same as a Google search lead. If your contractor website isn’t set up to capture and route leads automatically, follow-up speed becomes entirely dependent on you checking your phone. The homeowner wasn’t in crisis mode when they filled out your form. They were scrolling through their feed. If you don’t call within 30-60 minutes, the lead goes cold. According to HubSpot research, the odds of qualifying a lead drop by 80% if you wait more than 5 minutes. Speed-to-lead matters more with Facebook than almost any other channel.
Running ads with no landing page or a weak one. If you’re sending traffic rather than using lead forms, the page people land on determines whether they convert. A page with no clear call to action, no phone number above the fold, and no social proof will kill your conversion rate regardless of how good the ad is.
FAQ
How much should a contractor spend on Facebook ads to start? Start with $20-30 per day ($600-900/month). This is enough to exit the learning phase within 2-3 weeks on a Lead Gen campaign targeting a single service area. Spending less drags out the learning period and makes it hard to get meaningful data. Scale up once you have a cost-per-lead you’re happy with. Don’t start high and cut back..
What’s a good cost per lead for home services contractors on Facebook? This varies significantly by trade and market. Roofing leads typically run $30-80 each. HVAC and plumbing tend to be $20-50. Remodeling and high-ticket services can run $50-150 per lead. If you’re well above these ranges after 2-3 weeks and $300+ in spend, audit your targeting and creative before assuming Facebook doesn’t work for you.
Should I run ads year-round or seasonally? Both approaches can work. Seasonal campaigns aligned with your busy periods (roofing in spring/fall, HVAC in late spring and summer, plumbing around freeze seasons) often produce the highest ROI. But running a lower-budget evergreen campaign year-round builds brand familiarity and keeps a baseline of leads coming in during slower months. We typically recommend a combination: a steady base campaign plus seasonal spikes.
Do I need a professional photographer or videographer for my ads? No. Smartphone photos and videos taken on a real job site outperform polished stock imagery in almost every test we’ve seen. What matters is that the content looks real and local. A 30-second video of your tech explaining why proper attic ventilation affects roof life, filmed on an iPhone at a customer’s house, will typically outperform a $500 studio production. Authenticity converts.