If you own physical shops, you’ve likely felt the disconnect.
You pour money into Google Ads, the website reports “okay” online revenue, and stores stay busy. The infuriating part isn’t footfall itself, it’s that you can’t confidently explain what drove it.
That disconnect is where good budgets get slashed and great campaigns get switched off.
In this playbook, we’ll explore:
- What Online-to-Offline (O2O) marketing is (and isn’t)
- The practical tracking options that Google has made available in their platform
- A straightforward roadmap to connect ad spend with store revenue
What is Online-to-Offline (O2O) marketing?
Online-to-Offline (O2O) marketing is the process of utilising digital channels to drive trackable actions in the physical world, and reporting those actions back into your marketing data.
In practice, this means you stop assessing performance by “online sales only” and start optimising towards your total impact (online + in-store).
The invisible revenue problem for UK retailers
A typical customer journey looks less than linear:
- Customer searches on mobile
- They check stock or opening times
- Visit the shop
- Buy at the till
If your reporting only counts online conversions, that journey looks like a miss. The ad “didn’t convert”.
The reality is, it may have driven the sale that matters most: the one in-store.
The 4 pillars of O2O growth
The building blocks for consistent O2O success fall into 4 buckets. These pillars are a helpful way to pressure-test your foundations before you start scaling spend.
1) The Trust Layer: Google Business Profile optimisation
For many retailers, the first impression is not your website. It’s your profile in Google, especially Maps and the local pack.
Goals of consistency and completeness across locations:
- Correct name, address, phone number
- Accurate opening times (including seasonal changes)
- Photos that match the actual shop experience
- Attributes that reduce customer uncertainty (accessibility, collections, in-store pickup)
This also connects directly into Google Ads via location assets, which are the backbone for store-goal campaigns and Store Visits reporting.
Learn more about verifying your locations in our guide to Google Business Profile Optimisation.
2) The Conversion Layer: Local Inventory Ads (LIA)
Local Inventory Ads are how you show products and local availability to nearby shoppers.
When working well, LIAs remove the biggest friction point to a store visit: “Will they actually have it?”
Operationally, LIAs depend on clean location mapping and store identifiers. In Merchant Centre, the store code attribute is required for local inventory and must be mapped against the store codes in your Business Profile setup.
Read our full technical setup guide for Local Inventory Ads.
3) The Strategy Layer: Data-driven targeting
Radius targeting is crude and imprecise. Circles ignore how people actually travel, where they work, and how far they’re willing to come from.
A more practical approach is postcode-led planning where you:
- Group postcodes by realistic drive time (or delivery/collection behaviour)
- Set tiers based on profitability signals (store visits, directions, call volume, store sales where available)
- Exclude segments of an area that repeatedly waste spend
This helps you to build a repeatable catchment strategy that you can roll out store-by-store.
Discover why circles fail in our analysis of Postcode Targeting vs. Radius Targeting.
4) The Proof Layer: Footfall tracking
If you can’t measure it, you can’t improve it.
In Google Ads, the key measurement concept for in-store sales is Store Visits.
Store Visits reporting is eligibility-based and Google only reports when there’s enough data to meet their privacy thresholds. It also requires that you’re using location assets or affiliate location assets (and that they’re active).
See how to set this up in our Footfall Tracking & Measurement guide.
Ready to connect your ad spend to store revenue?
Book an Online to Offline Growth Session and leave with:
- A clear measurement plan (what you can track and how)
- A store-growth campaign structure that you can deploy
- A prioritised action list for the next 30 days
Tracking options: Store Visits, Store Sales, and imported offline conversions
Not every retailer should use one single metric for everything. The right approach will vary depending on your footprint, the quality of your location data, and your ability to tie purchases back to marketing.
Here are the most useful options and when to use each.
Store Visits (best for footfall-led businesses)
Use Store Visits when your main aim is increasing store traffic, and you have enough traffic to become eligible.
- Good for: multi-location retail, high footfall categories, broad product ranges.
Store Sales (best when you can connect purchases back)
Store Sales is the natural next step when you want to optimise for revenue, not just visits.
- Good for: retailers with strong POS data and the ability to connect sales outcomes.
Imported offline conversions (best for controlled measurement)
If you can collect customer details at the point of sale (or reliably tie purchases to marketing campaigns), offline imports can offer tighter control than modelled visit metrics.
- Good for: higher-consideration purchases, appointment-based retail, membership-driven businesses.
Performance Max with store goals: the engine
Once your foundations are in place, Performance Max for store goals can drive store-centric outcomes across Google surfaces.
Learn how to build these campaigns in our Performance Max for Retail guide.
Two practical expectations matter:
- There is a reporting delay. Allow time before analysing store-goal performance, because visits take time to happen and be reported.
- Location assets matter. Store-goal performance is dependent on a linked and accurate location source.
How to calculate and use a Store Visit Value
Assign a value to a visit so bidding can optimise for more of the right traffic.
Store Visit Value template
Pick a reporting window (start with 30–90 days).
Calculate:
- Average in-store order value (AOV) = total in-store revenue ÷ number of in-store transactions
- Visit-to-purchase rate = in-store transactions ÷ store visits (or a proxy like a footfall counter)
Compute:
- Store Visit Value = AOV × visit-to-purchase rate
If you don’t have reliable visit counts yet, start with a conservative proxy and replace it once Store Visits (or your own footfall data) stabilises.
30-day implementation roadmap
Week 1: Audit and eligibility
- Confirm your location data source is correct (Business Profile or other) and that location assets are active.
- Check whether Store Visits is available or “pending” and remember eligibility is assessed at the account level.
- Review Merchant Centre health if you plan to run LIAs (feed approval, diagnostics, store code readiness).
Weeks 2–3: Build the O2O foundation
- Standardise your Google Business Profiles across locations (hours, categories, photos, attributes).
- Implement postcode tiers for each location (start with one store and replicate).
- If running LIAs, ensure store codes match exactly and local inventory data sources map correctly.
- Define an initial Store Visit Value (conservative ok).
Week 4: Launch and learning
- Launch Performance Max for store goals with store-centric conversion goals.
- Avoid knee-jerk optimisations early. Let the system learn and allow time for store visit conversions to populate.
Common mistakes and quick fixes
“Store Visits” is missing or stuck on “pending” Eligibility is assessed at the sub-account level even if you track via an MCC. Ensure location assets or affiliate location assets are enabled and not switched off at the campaign level.
Local Inventory Ads disapprovals or “can’t match stores” Your store code is required and case-sensitive, and must match your Business Profile store codes exactly.
Judging Performance Max too quickly Store-goal reporting can lag. Give it a full learning window before making big calls.
FAQs
Why is Store Visits missing or “pending” in my account?
Store Visits is eligibility-based and only appears once your account meets Google’s privacy and data thresholds. It also requires active location assets.
Do I need Local Inventory Ads to drive footfall?
Not always, but LIAs can help to remove friction by showing local availability when you can support it.
What’s the difference between Store Visits and Store Sales?
Store Visits measures visits. Store Sales is focused on sales measurement. Many retailers start with visits and progress to sales once POS data and measurement is ready.
How do store codes work in Merchant Centre?
Store codes are a unique identifier for each physical location for local inventory purposes. They must match across your setup for Google to correctly map products to stores.
How long until Performance Max store goals shows results?
Performance Max store goals reporting can take time. Allow it a full learning window before judging performance.
Conclusion: unify your growth
Your customers don’t care about your internal channels. They just want the easiest path to buy.
A good local online marketing approach connects the dots:
- Trust via an accurate local presence
- Conversion via local product availability
- Strategy via realistic catchment targeting
- Proof via store-centric measurement
If you want to stop guessing and start measuring what actually drives in-store revenue, the next step is simple.
Book an Online to Offline Growth Session
Want to see what this looks like in practice? Read our O2O Case Study.
