Why your local Meta campaign went unstable (and what you actually control)
Most contractors who've run Meta ads and gotten burned blame the platform. Meta's algorithm is unpredictable, the targeting doesn't work for local service areas, Facebook is pay-to-play and the house always wins. Some of that is true in the abstract. None of it explains why your specific campaign went sideways.
The real causes of campaign instability in a local service area are narrower than "Meta is unpredictable," and most of them sit inside variables you or your agency could have controlled. Knowing which ones actually moved the needle tells you whether the failure was a platform problem or a setup problem. That distinction matters a lot if you're deciding whether to try paid ads again.
The three things that most often break a local Meta campaign
The audience was too small or too tightly layered. Local service businesses operate in tight geographies, sometimes a 20-mile radius or less. When an agency stacks multiple interest or demographic filters on top of an already-small local pool, Meta's delivery algorithm doesn't have enough room to find the right people. It either throttles delivery (you spend less than your budget, reach fewer people, get less data) or it goes broad anyway and ignores the filters. Both outcomes look the same in the dashboard: inconsistent results that make no obvious sense.
A painter serving a mid-size city doesn't need hyper-precise interest targeting. The local geography and a few basic behavioral signals are usually enough. The tighter the geographic radius, the more you need to trust the algorithm to find buyers within it rather than fight it with layered targeting.
The creative was generic, and Meta's algorithm picked the wrong signal to optimize on. Meta's objective-based learning system needs to figure out who converts. It does that by feeding your ad to different people and watching what happens. If your ad uses vague language ("local, reliable, affordable"), every homeowner who sees it and clicks is essentially the same signal to the algorithm. It can't differentiate between someone who clicked out of mild curiosity and someone ready to book a job. The campaign optimizes toward volume of clicks, not quality of intent, and you get leads who don't answer the phone.
This is what Kurt Welch described when he said he was "getting people looking for jobs instead of people looking for to-do work." The creative wasn't specific enough to filter for buyer intent before the click. Generic ads produce generic audiences.
The campaign was killed before the learning phase finished. Meta requires a minimum number of conversion events (roughly 50 per ad set) before the algorithm stabilizes on who to target. Most local service campaigns running at $15-30/day don't hit that threshold fast. An agency that pulls the plug at 10 days because "it's not working yet" isn't reading the data; they're just nervous. The instability was real, but it was the normal instability of a learning phase, not a sign the campaign was broken. Restarting or restructuring before the learning phase completes resets the clock every time.
What you can verify without an ads manager login
If you're evaluating what went wrong with a prior campaign, or vetting a new agency, these are the questions that actually surface the real cause.
Ask for the cost-per-lead broken out by week, not averaged across the whole campaign. If CPL was high from day one and stayed high, the problem was audience setup or creative. If CPL started high, was trending down, and then the agency restructured or paused, that's a learning-phase interruption problem. Those two failure modes have different fixes.
Ask how large the audience was before delivery started. For a local painting or landscaping business, anything under about 50,000 people in the target pool creates delivery problems regardless of how good the ads are. If the agency can't tell you that number, they weren't monitoring it.
Ask to see the ad itself, not just a screenshot. Read the first line. If the first line could apply to any home service business in any city, the creative wasn't doing the filtering work it needed to do.
None of these questions require you to understand Meta's backend. They require the agency to have been paying attention.
The part you actually control
You can't control Meta's algorithm. You can control what goes into the campaign before the algorithm sees it.
Specifically: the accuracy of your service area, the specificity of your creative, and whether you give the campaign long enough to exit the learning phase. Those three inputs determine most of what happens next.
The niche-specificity point is the one most agencies skip. Safe Step, a rubber resurfacing company, ran a campaign that produced 247 leads at $11 per lead on $2,800 in total ad spend. That result came from ads built for rubber resurfacing specifically, not generic "home improvement" creative. Specificity in the ad matches intent before the click. That pre-click filter is what makes the difference between leads who answer and leads who ghost.
The other variable you control is your follow-up speed. A lead on Meta is not the same as a lead from a referral. They submitted a form while scrolling; they weren't actively searching for you. If you call back two hours later, the window is largely closed. Response within the first few minutes matters more for Meta leads than for almost any other source.
What to do before you run another campaign
If a prior agency burned you, the instinct to protect yourself by asking for more proof makes sense. The right proof isn't a ROAS number from someone else's campaign in a different trade. It's a cost-per-lead from a business close to yours, with the campaign's targeting setup and creative explained in plain language.
If you're evaluating whether to try again, look at what the agency is asking for before they've shown you anything. A setup fee and a multi-month contract are the agency putting the risk on you before a single lead has come in. That's the model that burned contractors the first time. It doesn't need to be the model you use again.
ASN runs campaigns with no setup fee and no contract. If you want to see how a campaign would be structured for your trade and area before committing to anything, the right first step is a conversation. You can reach out at americanservicenetwork.com.
ASN manages Meta ads for home service contractors with no setup fee and no contract. If you want to see what this looks like for your trade before committing to anything, the contact page is the right next step.
See how it works for your business