Why your leads are coming from 90 minutes away (and what's actually broken in your campaign)
Samuel was a car detailer who started his business doing door-to-door knocking in year 11. By year 12 he was running Meta ads through an agency, getting leads every day, and still couldn't make the business work. The reason: almost every lead was coming from an hour and a half away. He couldn't service them. He started subcontracting some out for $20 a job just to not waste them entirely. The agency counted those leads as proof the campaign was working.
This is not an unusual story. It's one of the cleaner examples of a specific problem that shows up repeatedly in Meta campaigns for home service contractors, and it has nothing to do with targeting settings in the way most people think.
The difference between targeting and campaign architecture
When contractors talk about geographic targeting problems, the instinct is to blame the radius setting. Set a tighter radius, get closer leads. That logic is mostly wrong, and understanding why matters if you're going to spend money on this without getting burned again.
Targeting settings tell Meta where leads are allowed to come from. Campaign architecture tells Meta what it's actually optimizing toward. Those are two different things, and conflating them is why so many agencies end up delivering geographically useless leads while technically staying inside the set radius.
Meta's ad delivery algorithm doesn't serve ads to people in equal measure across a radius. It serves ads to the people it predicts are most likely to complete whatever action the campaign is optimized for. If that action is a form fill, Meta will find the people in your radius most likely to fill out a form. Not the people most likely to book a detail. Not the people closest to your shop. The people most statistically likely to click submit on a lead form, wherever they are in that radius.
The result is that a 30-mile radius campaign optimized for lead volume will often cluster leads at the edges, in suburbs with higher form-completion rates, or in zip codes Meta has historically found responsive, regardless of whether any of those people are practical customers.
What agencies do wrong during trial periods
Samuel's agency made a specific choice during his trial period. They ran broad targeting intentionally to generate as many leads as possible in the first few days, because volume is what closes the sale on the next call. The leads were real. The form fills happened. But the campaign was never built to serve Samuel's business, it was built to impress Samuel long enough to get him to pay.
This is a structural incentive problem. An agency that needs to prove results quickly before you commit will optimize for whatever metric looks most impressive in a short window. Lead count looks impressive. Cost per lead looks impressive. Neither of those numbers tells you whether a lead is 4 miles away or 90 miles away, and neither of them tells you whether a lead can actually become a job.
The fix Samuel needed wasn't a tighter radius. It was a campaign built around a different optimization objective, plus an honest geographic constraint at the ad set level that prioritized his serviceable area, not the widest possible audience.
What a correctly built campaign looks like for a local operator
The architecture problem has two layers, and both need to be addressed before geographic mismatch gets fixed.
The first layer is the conversion event the campaign is optimized for. A campaign optimized for "leads" in the broad Meta sense will chase form fills. A campaign optimized for contact quality, which can be approximated by optimizing for a downstream event like a phone call or a calendar booking rather than a raw form submission, will find different people. The pool narrows. Cost per lead goes up slightly. But the leads that come in are from people who wanted to take a real step, not just people who tapped a button on their phone at 11pm without thinking about it.
The second layer is how the geographic exclusions are actually structured. Radius targeting is a blunt instrument. A 20-mile radius centered on a city will often pull in leads from surrounding towns that are technically inside the circle but are 45 minutes of drive time away due to highways or geography. The sharper approach is building campaigns around specific zip codes that map to actual service area, rather than a radius from a single point. That takes more time to set up and requires the agency to actually understand where the contractor works. Most agencies skip it because it requires a conversation about the business, not just a settings change.
For Samuel, a zip code-constrained campaign built around the west side of his city, optimized for booking actions rather than raw form submissions, would have changed the entire picture. He had a real business, monthly maintenance clients, and a clear service area. What he had was a campaign architecture that was never designed around any of those facts.
How to evaluate a campaign before it costs real money
If you've been burned before and you're looking at running Meta ads again, geographic mismatch is one of the concrete things you can ask about before you spend anything.
Ask the agency to walk you through the zip codes or city-level targeting they're planning to use, not just the radius. Ask what action the campaign is going to be optimized for, and whether that action maps to a real booking or just a form fill. Ask whether the campaign is set up to report on where leads are actually coming from, so you can see that data yourself inside your own account.
That last point matters more than most contractors realize. The campaign should live inside your Meta Ads Manager, under your own login, not inside the agency's account. If it lives in their account, you can't see what's happening, and you have no proof anything ran the way they described when the month ends.
ASN runs every campaign inside the client's own account for exactly this reason. You can see the geographic breakdown of your leads, the actual cost per result, and what's running. No contracts and no setup fee means if the numbers don't look right after the first stretch, you're not locked in while you wait for it to improve. The Safe Step campaign, 247 leads at $11 per lead on $2,800 in ad spend, was built that way. The results sat inside the client's account where they could see them.
If you want to see how that kind of campaign gets built for your trade and your service area, the contact page is the right next step.
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