Google 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 Google Ads adds on top of that is a mechanical requirement: gclid, gbraid and wbraid have to reach the record that holds the money, because Google Ads 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 Google Ads specifically needs to accept it.
Free30 minutesNo obligation
Specific to Google Ads × Multi-location
Google Ads for multi-location brands: branch on every import row
On Google Ads, a multi-location business should import each branch's fulfilled bookings or orders as offline conversions against the gclid, gbraid or wbraid captured at landing, sent from the branch system with the branch recorded alongside. Keep calls from location assets tied to each Business Profile, and report targeted region versus fulfilling branch separately.
Google carries more of the location problem than any other platform, because location assets, Business Profiles and local search all sit inside the account. Link every branch's Business Profile to the account so location assets show the right address and number. A gclid only tells you the campaign; it doesn't tell you which branch served the customer, so the branch has to come from your own record and travel with the import.
The trap is the campaign that targets one city and converts at another branch. Someone searches near work, books at the branch near home, and the conversion credits the work-area campaign. That's correct attribution and confusing reporting. Keep the import as it is, and in your own reporting compare campaign geography against the branch that fulfilled, so a regional director can see the spillover.
If you run Performance Max with store goals or use store visit conversions, check whether your account meets the eligibility thresholds before planning on them, and report them as modeled. Use one conversion action per outcome rather than one per branch: dozens of near-identical actions make bidding and auditing harder. Check whether conversion custom variables are available in your account for segmenting by branch.
Google Ads · Multi-location · what breaks
Why Google Ads 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
Gclid, gbraid and wbraid never reaches the record
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
Google Ads · Multi-location · the fix
What working looks like — Google Ads · 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.
Google Ads · Multi-location · architecture
How Google Ads 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
Google Ads needs a click to match
A click identifier inside the 90-day window, a conversion action name that matches one configured in the account, a conversion timestamp for when the outcome happened, and a value. Read the match rate after uploading — a file can upload perfectly and match nothing.
- 3
The identifier: gclid, gbraid and wbraid
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
- 4
Where it gets sent from
each location's own booking, order or job records.
- 5
Deduplication and window
There's no shared event ID mechanism like Meta's. What matters instead is the counting setting on each conversion action — 'one' for lead-type conversions so a repeat submitter doesn't count three times, 'every' for ecommerce where a second purchase is a second sale. This is the single most common misconfiguration we find in Google Ads accounts. Google's offline import window is 90 days from the click. Anything older can't be matched, and rows outside it fail as unmatched without much explanation. Measure your median click-to-outcome time against that before designing anything.
Google Ads · 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. |
Google Ads · Multi-location · diagnose
Diagnostic order — Google Ads · Multi-location
- 01
Count records carrying gclid, gbraid and wbraid
- 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 match rate on the upload, not the success message
A conversion action that stops receiving hits is flagged as inactive 30 days later — by which point a month of budget has already run against a missing signal. Check the last-received date on every action monthly; it takes two minutes and it's the cheapest monitoring available.
Google Ads · Multi-location · prove
How it gets proven — Google Ads · 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 match rate on the upload, not the success message read directly, not inferred from an upload succeeding.
Google Ads · Multi-location · free audit
What we check in the free audit
- Count records carrying gclid, gbraid and wbraid
- One phone number across all location pages
- Location missing from the conversion event
- Google Business Profile calls uncredited
- Read the match rate on the upload, not the success message
Checked against
each location's own booking, order or job records
Free30 minutesNo obligation
Google Ads · Multi-location · when not to buy
When you don't need this — Google Ads · Multi-location
- If Google Ads 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 gclid, gbraid and wbraid.
- If you're running Performance Max exclusively and haven't separated your conversion actions, the import will work and the reporting won't tell you much. Worth sorting the account structure first.
Google Ads · Multi-location · what we deliver
What gets built — Google Ads · 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 Google's offline conversion import
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
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
Google Ads · Multi-location questions, answered
Usually not. One action per outcome, with the branch kept in your own records or a custom variable where available, keeps bidding stable and makes the account easier to audit.
Link each branch's Business Profile so location assets show its own number, and use tracked numbers per branch on the site. Calls from location assets and from the site should be separate actions, both mapped back to the branch.
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.
Three parameters, not one. gclid is the long-standing identifier; gbraid and wbraid arrive on iOS traffic where privacy constraints prevent the usual one. Capture code that names only gclid loses a growing share, silently, and the loss is invisible until you audit how many records carry an identifier.
Uploaded against the click identifier, either through the Google Ads API or as a file. The upload is the easy part; what limits it is how many of your records carry an identifier at all. Verify the current column format against Google's own template — it has changed before.
By reading the match rate on the upload, not the success message and reconciling against each location's own booking, order or job records. An upload that succeeds is not an upload that matched.
More on Google Ads · Multi-location
- Multi-locationConversion tracking for multi-location businesses, attributed to the right branc…
- Meta · Multi-locationMeta 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
- Google Ads · Pet careGoogle Ads conversion tracking for pet grooming and boarding businesses
- Google Ads · Window tintingGoogle Ads conversion tracking for window tinting businesses
- Google Ads · Franchise enquiry → agreementHow to track franchise enquiry to signed agreement for Google Ads
- Google Ads × POS SystemHow to reconcile Google Ads against your point-of-sale system
- Lightspeed → Google AdsConnecting Lightspeed to Google Ads
- Google Ads · TowingGoogle Ads conversion tracking for towing companies
- Google Ads · Auto glassGoogle Ads conversion tracking for auto glass companies
Free · 30 min
Get Google Ads reporting what multi-location businesses actually earn
Free30 minutesNo obligation
