Local Facebook ads differ from national campaigns in three specific ways: the targeting radius, the size of the reachable audience, and the definition of a conversion. In practice the setup that works for most storefronts is a 5-10 km radius, a local audience of roughly 200,000 to 500,000 people, and a near-distance action such as a message, a call, or a directions tap instead of an online purchase. What follows is the same skeleton whether you run one salon or a 40-location chain, with the thresholds worth watching and the point where measurement usually breaks.
Why do local Facebook ads need a separate setup?
Because local demand is both limited and fragile. An e-commerce account can accelerate learning by widening the audience; a local business cannot, because the person 15 km away is not a customer. So the optimisation goal, the creative and the measurement all have to be redesigned around a geographic boundary. For general campaign fundamentals the Ads Sensor Facebook ads guide is the starting point; this article covers only what is specific to local.
- Inventory ceiling: A tight geography has little impression inventory. Industry benchmarks show it is normal for CPM to run 50-100% higher once a local audience falls below 100,000 people.
- Learning phase: Platform documentation puts stability at roughly 50 conversions per ad set per week. Locally you reach that threshold with messages or calls, not with purchases.
- Intent decays with distance: The same offer gets clicked at 3 km and ignored at 25 km. Radius is therefore part of offer design, not just a targeting field.
- Measurement gap: Most of the conversion happens offline. The pixel alone is not enough; phone, message and directions events each need their own signal.
How wide should the radius be?
For most retail and service locations 5-10 km is a healthy starting point. Meta allows a radius as small as 1 mile (about 1.6 km), but in low-density areas that narrow a zone chokes delivery and pushes cost up. At the other extreme, targeting a whole city spends money on people outside your service area. The right answer is not the smallest radius but the cleanest area you can actually serve. A practical rule: pick the radius by reachable audience, not by kilometres. If 10 km returns 120,000 people, widen it; if it returns 900,000, tighten it. Dense city centres can work at 3-5 km, while towns and rural districts may need 20-30 km to reach the same audience count.
- Draw the real service area on a map: where does your furthest customer come from, and which river or motorway acts as a natural boundary?
- On first setup run separate ad sets for 5, 10 and 20 km, split the budget evenly and leave them untouched for 7-10 days.
- Check reachable audience size: 200,000 to 500,000 is a reasonable band for most local accounts, and below 100,000 is risky territory.
- Lock the winning radius, switch the others off and consolidate budget into one ad set; split budgets stretch the learning phase.
How should you build the local audience?
Narrowing the audience is usually a mistake at local scale. Geography is already a very strong filter, and stacking interest layers on top shrinks the remaining inventory and raises cost. The order that works in practice is: target the radius alone with a wide age and gender band first, then add retargeting and lookalikes once signal accumulates. You narrow a local audience with the offer, not with interests.
- Core audience: Radius only, ages 18-65, no interests. This is the most durable local setup.
- Retargeting: Page and profile engagers, message starters, site visitors. Use a 180-day window because local volume is low.
- Lookalikes: Meaningful once the customer list passes about 1,000 people. Locally a 3-5% similarity band is safer than 1% so the audience does not collapse.
- Exclusions: Exclude anyone who bought or booked in the last 30 days. In small audiences repeat exposure pushes frequency to 4-5 quickly.
Pull branch-by-branch data into one screen
Ads Sensor unifies Meta, Google and GA4 data and tells you, with reasoning, which radius and which branch is actually producing cheap conversations.
Message, call or visit: which objective should you pick?
In a local business the conversion usually happens in a conversation, not on a website. Objective choice tends to split like this: messages or calls for appointment-driven services, store traffic or on-site purchase for retail, reach and local awareness for a newly opened location. Industry benchmarks put local services among the lowest click costs across Meta, and messaging formats convert noticeably better than landing page funnels for this segment. With call objectives, also fire the phone tap as an on-page event; trusting only the in-ad click leaves a large share of local conversions invisible. With messaging, response time drives cost directly: conversations answered within minutes turn into bookings at a noticeably higher rate than those answered hours later.
How do you structure campaigns for multiple locations?
The rule is simple: splitting budget splits learning. Up to three locations, one campaign with an ad set per branch works fine. Beyond that, cluster branches by volume and market similarity and give each cluster its own campaign. Where radii overlap, exclude each branch from the other's zone; otherwise two ad sets bid against each other for the same person and inflate their own CPM. Standardise naming from day one: put branch code, radius and offer type in the same order in every campaign, ad set and ad name. That single habit removes the manual report clean-up that appears once you pass twenty locations.
- Add and verify every location in Meta Business Manager's business locations; map cards, distance callouts and opening hours come from there.
- Put the branch name, the district and the nearest landmark in the first second of the creative and the first line of the copy. Local recognition is the single biggest lever on click-through rate.
- Define reciprocal location exclusions for overlapping radii, and only enable campaign budget optimisation once branch volumes are comparable.
- Compare branch performance weekly; when a branch stops delivering, fix the offer before you widen the radius.
How do you measure local results?
Locally most of the outcome happens where the platform cannot see it: a phone rings, someone walks in, a message turns into a booking. Measurement therefore sits in three layers: in-platform events, events carried to the site, and the business's own record. When those three do not corroborate each other you are producing estimates, not reports. Add the branch code as a campaign parameter on every site link; without it GA4 collapses all locations into one row and you lose sight of which point actually produces traffic. For the messaging flow in detail, the WhatsApp ads guide covers the mechanics.
- In-platform: Conversations started, click-to-call events, directions taps. This is the fastest feedback loop you have.
- Site side: Booking forms, phone-number taps and reservation events should also be sent server-side; a browser pixel alone loses a lot of local signal.
- Business record: Add a "how did you hear about us" question at the till or in the booking sheet. Even 20-30 answers a week confirm direction.
- Comparison: Track cost per conversation and conversation-to-booking rate side by side per branch; a cheap conversation is not always a good one.
The expensive mistake in local campaigns is rarely the wrong radius. It is making the wrong offer inside the right radius. Narrowing geography does not create relevance; the offer does.Ads Sensor Team, recurring pattern from local account audits
For the fundamentals see the Facebook ads guide, and for the search-side equivalent of local demand the Google Maps ads guide. If you want branch performance side by side on one screen, a clear read on which radius actually produces cheap conversations, and automatic before/after tracking once you apply a recommendation, you can try the Ads Sensor cross-platform panel and AI analysis by joining the early beta.