You set up the campaign, picked your targeting, wrote the ad, and hit publish. The impressions started climbing. Reach looked solid. You refreshed the dashboard a few times a day waiting for the leads to show up.
They never did.
No calls. No form fills. Nothing you could book into a job. Just money leaving your account and a growing suspicion that Facebook ads are a scam, or at least not built for a business like yours.
Here is the honest version: Facebook can work for local service businesses. We have seen it work across hundreds of trades and markets. But most campaigns fail not because the platform is broken, but because of specific, fixable problems that show up in the same places almost every time. Audience setup. Offer quality. Budget structure. Tracking gaps. Fix those four things and the results change. Leave any one of them broken and it does not matter how much you spend.
This article is a diagnostic. It is not a defense of Facebook advertising, and it is not a pep talk about staying patient. Some of what follows will confirm that your campaign was set up wrong. Some of it might confirm that Facebook is the wrong channel for where your business is right now, and that is a legitimate conclusion worth reaching sooner rather than later.
If you have been watching impressions climb while your phone stays quiet, start here.
The Audience Problem Nobody Wants to Admit
Facebook’s targeting interface feels precise. You can layer in demographics, interests, behaviors, and geography until it looks like you have zeroed in on exactly the right person. The problem is that Meta’s delivery system does not always respect that precision, especially with how defaults have shifted.
Advantage+ Audience is Meta’s current default targeting mode. When you leave it on, the algorithm can and will expand your audience well beyond what you manually specified, including geography. That matters a lot for a plumber in Pittsburgh or an HVAC company in suburban Atlanta. If geographic containment is not locked at the campaign level, not just the ad set level, Meta will serve your ads to people outside your service area. You pay for those impressions. You cannot convert those leads. The campaign looks like it is failing when it is actually just reaching the wrong zip codes.
Beyond geography, interest and behavior targeting for home services is structurally weak. Meta lets you target people who are “interested in plumbing” or “homeowners interested in home improvement.” Those categories are built from passive signals: pages someone liked, content they scrolled past, purchases they made years ago. That is not a buying signal. It is a demographic profile.
Compare that to someone who just typed “emergency plumber near me” into Google. That person has a problem, they know they have it, and they are actively looking for a solution right now. Facebook reaches people who might need you someday. Google reaches people who need you today. Understanding that difference is not a knock on Facebook; it is the reason your offer, your creative, and your campaign structure have to work completely differently on each platform.
Lookalike audiences compound this problem when the seed data is weak. If you build a lookalike from your Facebook page likes or from website visitors who bounced without converting, the algorithm finds more people who look like people who did not buy. The lookalike is only as good as the seed audience behind it. A lookalike built from actual customers or booked leads will outperform one built from page engagement almost every time, because the underlying signal is completely different.
Before you touch your creative or your budget, audit who you are actually reaching. Pull the geographic breakdown in your ad reporting. Check whether Advantage+ is expanding your audience beyond your service radius. Confirm your lookalike seed audiences are built from real customers, not just people who clicked something once.
Your Offer Is Not Strong Enough to Stop the Scroll
Think about what your customer is doing when they see your ad. They are not searching for anything. They are watching a video someone shared, checking on a friend’s vacation photos, or catching up on local news. Your ad appears in the middle of that. You have about two seconds to give them a reason to stop.
“Call us for HVAC service” is not that reason.
An offer that works on Facebook has to answer one question immediately: why now? A seasonal tune-up special with a real deadline. A free diagnostic for systems over ten years old. A guaranteed response window for emergency calls. Something concrete that creates a reason to act today, not someday. Vague brand awareness ads can work for companies with large budgets running long-term campaigns. For a local service business trying to generate leads this month, the offer has to do real work.
Lead form ads, which Meta calls Instant Forms, are worth understanding clearly before you use them. They reduce friction significantly. A user taps the ad, a pre-filled form appears with their name and contact info already populated, they tap submit in two seconds and go back to their feed. The volume looks good. The quality often does not. That person made almost no deliberate choice. They may not remember submitting anything by the time you call them.
For many local service businesses, a landing page with a prominent phone number converts better on lead quality even when raw volume is lower. The person who navigated to a page, read something, and chose to call made a deliberate decision. That contact is warmer. Whether Instant Forms or a landing page works better for your specific trade and offer depends on testing, but go in knowing that low-friction does not automatically mean high-quality.
Creative is where most service business campaigns lose the scroll battle before the offer even gets a chance. Stock photos of smiling technicians in branded shirts do not build trust with a skeptical homeowner. A before-and-after photo of an actual job does. A short video of a real technician explaining a common problem does. A job site photo with a caption that describes exactly what was wrong and how it got fixed does.
People hire service businesses because they trust them. Your creative either builds that trust quickly or it does not. Polished brand imagery rarely builds it as fast as something that looks real, because real is what a skeptical homeowner is actually looking for.
How a Thin Budget Works Against You
Meta’s delivery system is machine learning. It needs data to optimize, and it needs that data at a certain volume before it can stabilize. Meta’s publicly documented guidance puts the learning phase threshold at roughly 50 optimization events per ad set per week. Until an ad set hits that volume, performance stays erratic. The algorithm is still guessing.
Most local service campaigns cannot generate 50 conversions per week per ad set. If your budget is $500 a month and your CPL target is $20, you are aiming for 25 leads total for the month across the entire campaign. That is not enough data to exit the learning phase on even one ad set. The algorithm never stabilizes. Performance fluctuates. You conclude the campaign is not working, when the real problem is that the system never had enough signal to find its footing.
Spreading a modest budget across multiple ad sets makes this worse. Three ad sets with $150 each is three campaigns starving for data instead of one campaign with a fighting chance. Consolidated structure almost always outperforms fragmented structure at local service budget levels. One campaign, one objective, one or two ad sets with enough budget to generate real learning-phase data. That is the structure that gives the algorithm something to work with.
Campaign objective selection is where many campaigns are dead before the first dollar is spent. If you choose Traffic or Reach as your campaign objective because you want more people to see your ad, you are telling Meta’s algorithm to find people who click or scroll. That is what it will optimize for. It will not find people who convert, because you did not ask it to. If your goal is phone calls or form submissions, your objective must be Leads or Calls. The objective is locked at campaign creation and it determines every optimization signal that follows. Getting this wrong early means the entire campaign is optimizing for the wrong behavior from day one.
Tracking Gaps That Make Good Campaigns Look Dead
This is the one that burns people most, because it is invisible. A campaign can be generating real leads while the dashboard shows zero conversions, and the only way you would know is to check your tracking setup carefully.
If your Meta Pixel is not firing correctly on your thank-you page, or if your Conversions API is not configured, Facebook cannot see the conversions happening. It keeps spending. The dashboard shows nothing. You pull the campaign and tell everyone Facebook does not work for your business. The tracking was broken the whole time.
Since iOS privacy changes reduced the reliability of browser-based pixel tracking, the Conversions API has become Meta’s recommended primary tracking method. Pixel-only setups miss a meaningful portion of conversions that CAPI would capture. If you have not implemented CAPI or confirmed it is working alongside your pixel, you are likely under-counting results. Check Events Manager before drawing any conclusions about campaign performance.
Phone calls are 40 to 70 percent of local service leads. If you are only tracking form fills, you are looking at less than half the picture. A homeowner who saw your ad, thought about it for a day, and called your number directly is a conversion. If that call is not tracked and attributed back to the campaign, the campaign looks like it produced nothing. Call tracking connected to your Meta Pixel or Conversions API closes that gap. Without it, you are making budget decisions based on incomplete data.
Attribution window mismatches create a separate layer of confusion. A homeowner might see your ad on Monday, think about it, see a second touchpoint on Wednesday, and call on Friday. If your attribution window is set too narrow, that conversion gets orphaned. The campaign gets no credit for it. You see a cost-per-lead that looks terrible and cut the campaign, not realizing the leads were coming through a path the reporting could not see.
Verify your pixel health in Events Manager. Confirm CAPI is implemented. Add call tracking. Set attribution windows that reflect how your customers actually make decisions. Do all of that before you decide the campaign failed.
What a Fixable Facebook Lead Campaign Actually Looks Like
After diagnosing what breaks campaigns, it is worth describing what a working one looks like, because the structure is simpler than most people expect.
Geography is locked at the campaign level with a specific radius around your primary service area. Not a broad metro DMA. Not a county. A radius you could actually drive in a reasonable amount of time and still run a profitable job. Over-targeting geography is one of the fastest ways to waste budget on impressions that can never become customers.
One campaign. One objective that matches your actual conversion goal, whether that is leads or calls. One or two ad sets with enough combined budget to push toward the learning phase threshold. Two or three creative variations tested against each other so you have something to learn from. That is the structure. It is not complicated. What makes it work is discipline: resisting the urge to add more ad sets, more audiences, and more creatives before the existing ones have enough data to tell you anything.
Realistic CPL expectations matter as much as structure. Facebook CPL for home services typically runs $10 to $25 depending on the trade, how competitive your market is, and how strong your offer is. If you budgeted $300 a month expecting 30 leads, the math was never going to work. A $300 monthly budget in a competitive market might generate 12 to 15 leads at best, and that is only if the campaign is set up well and the tracking is clean.
Understanding the real cost of a qualified local lead also helps you evaluate whether Facebook is the right channel for your current budget, or whether you need to grow the budget before the channel can perform. A campaign that cannot fund its own learning phase is not a campaign. It is an experiment that will always look inconclusive.
When Facebook Is the Wrong Channel for Right Now
This is the part most agency content skips, because it is not in their interest to say it. We will say it directly: Facebook is sometimes the wrong channel, and recognizing that early saves real money.
Facebook is an interruption channel. It works best when you have a compelling offer, a budget large enough to fund the learning phase, and the patience for a 30 to 90 day ramp before performance stabilizes. If you need booked jobs this week, Google Ads or Local Service Ads are better fits. They capture active demand from people who are already searching for what you do. The Map Pack alone captures roughly 42% of local clicks for service-related searches. That is intent-driven traffic Facebook cannot replicate.
For local service businesses spending less than 8 to 12 percent of revenue on marketing, the budget often cannot support Facebook and Google running simultaneously at meaningful levels. Splitting thin spend across two channels produces mediocre results on both. Picking the channel that matches your intent and your timeline, then adding the second channel once the first is consistently profitable, is the more disciplined approach.
Trade fit matters too. Emergency services are a poor match for Facebook’s passive audience. When a pipe bursts at 11pm, the homeowner is not scrolling their feed hoping to see an ad from a plumber they vaguely remember. They are searching Google. Facebook ads for emergency plumbing or emergency HVAC are fighting the wrong battle.
Planned projects are a different story. Bathroom remodels, landscaping, roofing replacements, window installations. These have long consideration windows. A homeowner thinking about a kitchen remodel in the spring might see your ad in January, save it, and call in March. Facebook has room to work when the decision timeline is measured in weeks or months, not hours. If your trade lives in that space, Facebook can be a strong awareness and consideration channel. If your trade lives in emergency response, your budget probably belongs on Google first.
Putting the Diagnosis Together
Most Facebook lead failures come down to the same four things. The audience setup is wrong, either because geography is not contained or because the targeting is reaching passive interest rather than active intent. The offer does not give anyone a reason to stop scrolling. The budget is too thin to generate the data the algorithm needs to optimize. And the tracking cannot see the conversions that are actually happening.
Fix all four and the platform performs differently. Leave any one of them broken and the others cannot compensate for it.
Before you write off Facebook entirely, or before you spend another dollar defending a campaign that is not working, go through the checklist. Check your geographic delivery in the reporting. Audit your pixel and CAPI setup in Events Manager. Add call tracking if it is not already running. Confirm your campaign objective matches your actual conversion goal. Evaluate whether your current budget can realistically fund the learning phase in your market.
If you have been running Facebook ads and cannot tell whether they are working or why, that is a solvable problem. It is also the exact conversation worth having with a team that has managed this across hundreds of local service verticals and knows what the numbers should look like in your trade and your market. If you want to see what this would look like for your business, we will walk you through what is realistic and where the gaps are. No hard sell. Just a straight answer.