Meta Ads conversion tracking for multi-location businesses
A multi-location business has one website, many Google Business Profiles, many phone numbers, and a reporting requirement that runs both ways — head office needs the portfolio view and each location needs its own numbers. What Meta Ads adds on top of that is a mechanical requirement: fbclid and _fbc have to reach the record that holds the money, because Meta can only credit a conversion it can tie back to a click it recognizes. This page covers both halves — what a conversion is in multi-location businesses, and what Meta specifically needs to accept it.
Free30 minutesNo obligation
Specific to Meta × Multi-location
Meta for multi-location brands: one dataset, branch in custom_data
On Meta, a multi-location business should send Lead, Schedule or Purchase through the Conversions API from each branch's system into one shared dataset, matched on fbc, fbp and hashed contact data, with the booking or order reference as event_id and the branch passed as a custom parameter for custom conversions and reporting.
The key decision on Meta is dataset ownership. A brand with one ad account and one dataset can carry a branch parameter on every event and build custom conversions per region from it. A franchise where each owner runs their own ad account needs agreement on whether events go into a shared brand dataset or separate ones, and who keeps the data when a franchisee leaves.
Meta's local ad formats send people to a store locator or a branch page, but the booking often happens at a different branch from the one in the ad. Put the fulfilling branch in the CAPI event's custom data, take it from the booking system rather than the landing page, and keep the targeted region from the campaign for your own comparison. Never infer branch from the IP address Meta receives.
Where it breaks most is the shared booking engine with branch-specific thank-you pages. Brands often fire the pixel only on some branches' confirmation pages, because templates differ, and the server event then covers branches the pixel never saw. Check deduplication per branch over a week. A branch with server events and no browser events is a sign of a broken template, not a better audience.
Meta · Multi-location · what breaks
Why Meta under-reports for multi-location businesses
- 01
Conversions in one undifferentiated pool
No location can be evaluated.
- 02
Location pages sharing one phone number
So calls can't be attributed to a branch.
- 03
Head office and branch reporting in conflict
Two audiences, one number.
- 04
Fbclid and _fbc never reaches the record
fbclid arrives on the landing URL and is normally written into the _fbc cookie. If it isn't captured on landing, _fbc never exists — and _fbc is the strongest click signal Meta has, so its absence caps your match quality regardless of what else you send. Forward _fbp too, from the browser rather than regenerating it server-side.
Meta · Multi-location · the fix
What working looks like — Meta · Multi-location
Every conversion carrying a location
At the point it happens.
Per-location and portfolio views
From the same data.
Budget allocated on measured performance
Rather than on instinct.
Meta · Multi-location · architecture
How Meta and multi-location businesses actually connect
- 1
The conversion in multi-location businesses
Enquiry, booking or order, fulfilment — each carrying a location. The location dimension matters more than any individual stage.
- 2
Meta Ads needs a click to match
event_name from the standard set with exact casing, event_time in seconds, a shared event_id, an action_source, and hashed user_data that was normalized before hashing. Purchase additionally requires value and currency.
- 3
The identifier: fbclid and _fbc
fbclid arrives on the landing URL and is normally written into the _fbc cookie. If it isn't captured on landing, _fbc never exists — and _fbc is the strongest click signal Meta has, so its absence caps your match quality regardless of what else you send. Forward _fbp too, from the browser rather than regenerating it server-side.
- 4
Where it gets sent from
each location's own booking, order or job records.
- 5
Deduplication and window
This is the mechanism that decides whether adding CAPI helps or doubles your conversions. Both the Pixel and the server event must carry the same event_id — the order or booking reference works best, because both sides can produce it without coordinating. A case difference in the event name alone produces two events even with a matching ID. Read the Deduplicated indicator in Events Manager over a full week, not one session. Meta's default attribution is a 7-day click and 1-day view. View-through is included by default, which is a large part of why Meta claims more conversions than your other platforms — that overlap is expected rather than a fault.
Meta · Multi-location · events
The conversion map for multi-location businesses
The stages are ordinary. What makes this vertical hard is that every one of them needs a location attached.
| Event | What it means here |
|---|---|
| Enquiry with location | Browser-side, location from the page or the form. |
| Call with location | A tracked number pool per branch. |
| Booking or order with location | Server-side from the branch's own system. |
| Fulfilment with location | Server-side. The conversion that carries value. |
| Location dimension | Present on every event. Without it none of this is usable. |
Meta · Multi-location · diagnose
Diagnostic order — Meta · Multi-location
- 01
Count records carrying fbclid and _fbc
- 02
One phone number across all location pages
Calls can't be attributed to a branch, which is usually most of the conversions.
- 03
Location missing from the conversion event
So the data exists and can't be split.
- 04
Google Business Profile calls uncredited
A large local channel, invisible.
- 05
Read the Deduplicated indicator and the per-event match quality score, both read over seven days
Match quality is where most Meta accounts lose attribution, and it's almost always normalization rather than coverage. An email hashed with a capital letter, or a phone hashed with brackets, produces a perfectly valid hash that matches nobody and errors nowhere. Normalize first, then hash, and read the score per event rather than overall.
Meta · Multi-location · prove
How it gets proven — Meta · Multi-location
Source of truth
each location's own booking, order or job records
- Location present on every conversion event, verified on live conversions at more than one branch.
- A tracked number pool confirmed per location.
- Per-location reconciliation for a closed month.
- Portfolio totals that add up from the per-location figures.
- The Deduplicated indicator and the per-event match quality score, both read over seven days read directly, not inferred from an upload succeeding.
Meta · Multi-location · free audit
What we check in the free audit
- Count records carrying fbclid and _fbc
- One phone number across all location pages
- Location missing from the conversion event
- Google Business Profile calls uncredited
- Read the Deduplicated indicator and the per-event match quality score, both read over seven days
Checked against
each location's own booking, order or job records
Free30 minutesNo obligation
Meta · Multi-location · when not to buy
When you don't need this — Meta · Multi-location
- If Meta already reports conversions that reconcile against each location's own booking within a few percent, this is working and there is nothing to buy.
- Measure identifier coverage yourself first — pull your last hundred records and count how many carry fbclid and _fbc.
- If you're advertising a business type Meta restricts data collection for — health being the obvious one — the parameters you can legitimately send are narrower, and that constraint should shape the build rather than be worked around.
Meta · Multi-location · what we deliver
What gets built — Meta · Multi-location
Location captured on every conversion
From the page, the form, or the number dialled.
A tracked number pool per location
So calls resolve to a branch.
Location-level records as the source of truth
The branch system, not a site-wide total.
Reporting built both ways
Portfolio and per branch.
Dispatch via the Conversions API
Server events go through CAPI with an action_source describing where the conversion happened. Offline outcomes flow through the same API rather than a separate product. Verify current field names against Meta's documentation before building — this surface changes.
Written guarantee
95%+ tracking accuracy
Measured against each location's own booking, order or job records. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
Meta · Multi-location questions, answered
It depends on who owns the ad accounts. One shared dataset with a branch parameter gives the brand portfolio reporting; separate datasets give franchisees independence. Decide deliberately and agree what happens to the data when a location leaves.
Pass the fulfilling branch as a custom parameter on each CAPI event and build custom conversions or reporting from it. Take the branch from the booking system, not the page or the ad, since people often book at a different location.
Yes, if location is captured on every conversion — from the page path, a form field, or the number dialled. Without that, the data is one undifferentiated pool.
A tracked number pool per location. One shared number makes branch-level call attribution impossible, and calls are usually most of the volume.
Track them per location and separately from paid. They're a real channel and mixing them makes both unreadable.
fbclid arrives on the landing URL and is normally written into the _fbc cookie. If it isn't captured on landing, _fbc never exists — and _fbc is the strongest click signal Meta has, so its absence caps your match quality regardless of what else you send. Forward _fbp too, from the browser rather than regenerating it server-side.
Server events go through CAPI with an action_source describing where the conversion happened. Offline outcomes flow through the same API rather than a separate product. Verify current field names against Meta's documentation before building — this surface changes.
By reading the Deduplicated indicator and the per-event match quality score, both read over seven days and reconciling against each location's own booking, order or job records. An upload that succeeds is not an upload that matched.
More on Meta · Multi-location
- Multi-locationConversion tracking for multi-location businesses, attributed to the right branc…
- Google Ads · Multi-locationGoogle Ads conversion tracking for multi-location businesses
- TikTok · Multi-locationTikTok Ads conversion tracking for multi-location businesses
RELATED GUIDES
More for multi location businesses: other angles on the same outcome
- Multi-locationConversion tracking for multi-location businesses, attributed to the right branch
- Meta · Auto detailingMeta Ads conversion tracking for auto detailing businesses
- Meta · Real estateMeta Ads conversion tracking for real estate companies
- Meta · Franchise enquiry → agreementHow to track franchise enquiry to signed agreement for Meta Ads
- Meta × POS SystemHow to reconcile Meta Ads against your point-of-sale system
- TouchBistro → MetaConnecting TouchBistro to Meta Conversions API
- Meta · Window tintingMeta Ads conversion tracking for window tinting businesses
- Meta · Car washMeta Ads conversion tracking for car wash businesses
Free · 30 min
Get Meta reporting what multi-location businesses actually earn
Free30 minutesNo obligation
