Why you cannot measure cost per acquisition by location
The conversions are real. The ability to credit them to a location is what is missing.
In multi-location businesses, conversion events frequently fire without a location parameter. The conversions are real and correctly counted in aggregate, but per-location performance becomes unmeasurable — which means budget decisions across sites get made on aggregate data and instinct. This is an attribution gap, it is fixable at the event layer, and it should be closed before any optimisation work begins.
What an attribution gap is
An attribution gap is the difference between the conversions a system records and the conversions it can attribute to a source. A conversion event that fires without the location parameter needed to assign it is the clearest example.
Nothing is lost or double-counted. Corporate can see aggregate spend and aggregate conversions, and the totals are correct. What cannot be produced is a defensible cost per acquisition for any individual site.
That is a specific failure with a specific consequence: you cannot defend a budget decision at the location level, because you have no location-level number to defend it with.
Why location goes missing
Usually because nobody required it. A measurement plan that starts from events rather than from decisions produces events that carry whatever parameters the implementer thought of.
The second cause is cloning. A new location is onboarded by copying the last one, and the cloned conversion action still points at the original site's thank-you page. It reports conversions cheerfully and attributes them to the wrong location, sometimes for months.
The third is third-party handoffs. The visitor moves to a booking platform or payment processor, the session breaks, and whatever location context existed does not survive the trip.
Only the first is a design problem. The other two are verification problems — the work was done and never checked against real traffic.
What it costs
| Decision | Without location data | With it |
|---|---|---|
| Budget between sites | Aggregate plus instinct | Per-site cost per acquisition |
| Underperformer diagnosis | Invisible until revenue drops | Visible in the monthly report |
| Franchisee reporting | One consolidated number | Their own site, their own spend |
| Corporate rollup | Sum of unknowns | Same definitions at every level |
| Vendor accountability | Unfalsifiable claims | Checkable per location |
The franchisee row is the one that creates political problems rather than only analytical ones. A franchisee paying into a corporate marketing spend and receiving a consolidated number has no way to verify they are getting value, and reasonably assumes they are not.
The last row matters if you use an agency. Without per-location data, no claim about performance can be falsified, which is not a position any operator should accept.
How to fix it
Start with the measurement plan, not the tags. Name the decisions the business makes monthly, then the events and parameters those decisions require. If location is not a required parameter on every conversion event, per-location reporting is impossible later without reimplementation.
Then trace the highest-value conversion path end to end in a real session with debug tooling open — user action, data layer, trigger, tag fire, platform receipt. Duplicate firing and broken linkage are visible in minutes this way and invisible in reports for months.
Then verify again after a week of live traffic. The failures that matter are conditional: the mobile variant of the form, the returning visitor, the booking flow that only redirects for one service type.
A franchise IV therapy operator with more than fifteen clinics across two states had exactly this gap. Tracing it to the event layer in GA4 and correcting the conversion configuration so location resolved on every conversion restored per-clinic attribution across every site, and made automated per-location quarterly reporting possible.
Where to fix it, and in what order
If the events are wrong, this is a GA4 and Tag Manager implementation problem — event architecture, parameters, and verification per conversion path.
If the events are right and the systems still disagree, it is a conversion attribution audit: quantify each gap, separate structural variance from defects, and declare which source is authoritative for which decision. Some of the gap between platforms is designed in rather than broken, which is worth understanding before you go looking for a bug.
If you need to join location data across ad platforms, call tracking and a booking system to answer the question at all, it is a marketing data warehouse. Cross-platform questions cannot be answered without a place the data sits together.
Do this before optimisation work, not after. Per-location cost per acquisition is not comparable until it is fixed, and optimising against incomparable numbers is measuring a bent ruler more carefully.