The short answer
To attribute a showroom sale to online marketing you need three things: campaign arrivals recorded when people land on your website (UTM parameters and ad click IDs); those arrivals attached to a person when they identify themselves, online or in the room; and the in-store order landing on the same record. An attribution model then splits the sale's credit across the campaigns that came before it.
Look at more than one model and trust the campaigns that do well under all of them. Keep sales with no campaign behind them visible as "unattributed" rather than dropping them. And remember that return on ad spend needs your cost data, which lives in your ad platforms, not in the sales record.
A showroom retailer's marketing report usually tells a strange story. Paid search, especially searches for your own brand name, appears to drive almost every sale. Social ads appear to drive almost none. The showroom, where most of the revenue actually lands, doesn't appear at all. None of that is true. It's what attribution looks like when the only sales it can see are the ones that closed in an online checkout, and the only touch it credits is the last one.
Why showroom sales go unattributed
- The sale happens somewhere the ad platform can't see. Ad platforms know about clicks and online conversions. A deposit taken in your showroom three weeks later is invisible to them unless you tell them.
- The customer is anonymous when they click. The click lands on your website as a browser, not a person, so there's nothing to match to the name on the order.
- Last-click flatters whatever came last. People who already know your brand search for it by name just before they buy. Last-click reporting credits that search for sales it mostly didn't cause.
- The cycle is long. A considered purchase can take weeks. An attribution window of seven days, the default in some tools, misses most of the journey from first ad to deposit.
Three ways retailers try to close the gap
| Approach | How it works | Strengths | Limits |
|---|---|---|---|
| Ad platform store-visit estimates | The platform models which ad clickers later visited a location, from opted-in location data | No work on your side once eligible | Visits not sales; one platform at a time; high eligibility thresholds |
| Offline conversion uploads | You send in-store sales back to each ad platform, matched on a click ID or hashed customer details | Lets the platform optimise towards real sales | Needs the click ID captured and kept; per platform; ongoing effort |
| First-party identity joins | You record every arrival on your own website, attach it to the customer when they identify, and attach their order | Covers every channel at once; your data, in your hands | Only as complete as identification is; needs the customer to identify at some point |
They aren't mutually exclusive. But for a business with a handful of showrooms, the first-party join is the foundation: it's the only one that sees every campaign, every channel and every sale in one place, and it's the one that makes the other two possible, since you can't upload a sale you can't connect to a click.
The five attribution models, applied to one sale
Once a sale has a trail of campaign touches behind it, an attribution model decides how to split the credit. Here's one £4,000 sale with four touches, and what each of the five common models makes of it.
The trail: day 1, a paid social ad. Day 9, a non-brand Google search. Day 21, your newsletter. Day 29, a search for your brand name. Day 30, the customer buys in the showroom.
| Model | Social ad | Search | Newsletter | Brand search |
|---|---|---|---|---|
| Last touch | £0 | £0 | £0 | £4,000 |
| First touch | £4,000 | £0 | £0 | £0 |
| Linear | £1,000 | £1,000 | £1,000 | £1,000 |
| Position-based (40 / 20 / 40) | £1,600 | £400 | £400 | £1,600 |
| Time decay (7-day half-life) | £151 | £334 | £1,096 | £2,419 |
What each model is claiming:
- Last touch gives everything to the final touch. It has been the default for years, and it's why brand search always looks like it's doing everything: it's how people arrive when they've already decided.
- First touch is the mirror image. It flatters whatever introduced the customer and ignores everything that closed them.
- Linear splits it evenly. It makes no claim about which moment mattered, which is honest when you don't know.
- Position-based gives 40% each to the first and last touches and shares the rest across the middle. It encodes the common belief that finding someone and closing them are the two hard parts.
- Time decay gives more credit to touches closer to the sale, halving with each half-life. For considered purchases it's a sensible default: a touch in the week of the order plainly did more than one from a month earlier, but the earlier one wasn't nothing.
None of them is true. They're five opinions about something nobody can observe. The useful move is to look at your campaigns under all five: a campaign that ranks near the top under every model is telling you something that a campaign which only wins under last touch is not.
Keep the unattributed sales on the screen
Plenty of sales have no campaign touch at all: walk-ins, word of mouth, repeat customers, anyone who arrived before you started tracking. A report that quietly drops them turns "12% of our sales came through paid search" into "paid search drove everything we can see", and the two sentences look alike on a slide.
A trustworthy attribution report counts unattributed sales in the same table as the rest, and says what share of total sales it can actually explain. If that share is small, the right conclusion is that you need more customers to identify themselves, not that your campaigns are doing everything.
Why there's no return on ad spend without your cost data
Return on ad spend (ROAS) is credited revenue divided by what you spent. Attribution from your sales records gives you the first half. The spend lives in your ad accounts. So the honest way to get ROAS for showroom sales is to take credited revenue per campaign from your attribution report, take spend per campaign from each ad platform for the same period, and divide — in a spreadsheet if need be. Be wary of any tool that shows you a return figure without ever having seen your ad spend.
A practical setup for a showroom business
- Tag every campaign link consistently with UTM parameters. Agree a naming convention and stick to it; inconsistent tags split one campaign into five rows.
- Capture arrivals on your own site: UTM source, medium and campaign, plus click IDs from Google, Meta and Microsoft ads (gclid, fbclid, msclkid).
- Give customers good reasons to identify — quotes, appointments, shortlists, delivery checks — so the arrivals attach to a person.
- Record in-store sales against the customer's email, and import last year's orders so repeat customers are recognised.
- Set an attribution window that matches your sales cycle. For decisions that take weeks, 60 to 90 days is more realistic than 7.
- Review monthly, under several models, with the unattributed share in view.
| Parameter | What it's for | Example |
|---|---|---|
| utm_source | Where the click came from | google, meta, newsletter |
| utm_medium | The kind of traffic | cpc, paid-social, email |
| utm_campaign | The campaign itself | autumn-sofas-2026 |
| utm_content | Which ad or link, when you're comparing | velvet-carousel |
Where Stitchwork fits
Stitchwork records every campaign arrival on your website — source, medium, campaign and the click IDs from Google, Meta and Microsoft — and puts it on the customer's timeline alongside their browsing and store visits. When the sale lands, online or in the showroom, the touches that came before it stay with it.
The attribution report reads those touches back as sales. Pick a period, and every order in it has its credit split across the campaigns that preceded it, grouped by source, source and medium, or campaign, under whichever of the five models you choose — switchable in one click without changing what anyone else sees. Credit is fractional and adds back up to the sales you actually made. Sales with no campaign touch are counted as unattributed on the same screen. And there is no ROAS in it, because Stitchwork has never seen your ad spend. See the attribution report, or read about the tracking tag and campaign capture.
Questions people ask
What is offline conversion tracking?
Connecting sales that happen offline — in a shop, by phone, on a quote — to the online marketing that preceded them. It's done either by sending offline sales back to ad platforms with a matching identifier, or by joining campaign arrivals and sales on your own customer records.
What's the best attribution model for retail?
There isn't a correct one; each is an opinion about how credit should be shared. For considered purchases, time decay is a sensible default because recent touches plausibly did more. The more robust habit is to compare several models and trust the campaigns that hold their position across all of them.
How long should an attribution window be?
Long enough to cover your real sales cycle. Measure the time from first website visit to order for your own customers; for decisions that take weeks, a window of 60 to 90 days is common.
Can walk-in customers be attributed?
Only if they had a campaign touch before they came in and they identify themselves at some point, so the two can be joined. A walk-in with no earlier touch should be counted as unattributed, not assigned to the nearest campaign.
Does this replace Google Analytics?
No. Web analytics measures what happens on your website. Showroom attribution joins those website arrivals to sales wherever they happen. Most retailers use both.
What about Google's store visit conversions?
They're modelled estimates of visits from people who clicked an ad, using opted-in location data, and they're only available to advertisers who meet Google's eligibility requirements, including multiple verified locations and high ad volumes. They can be a useful signal, but they count visits rather than sales and cover only Google's own ads.
Sources
- Google Ads Help, "About store visit conversions".