When a UK-based women's fashion brand came to DataMaster, their Meta Ads dashboard showed a 2.8x ROAS. On paper, that was acceptable — just above their 2.5x target. But the founders kept running out of cash. Stock wasn't moving the way the numbers said it should be. The business felt squeezed in a way that a 2.8x ROAS shouldn't produce. Something wasn't adding up.
This is the story of how they found out what was wrong, where exactly the money was going, and what they changed. Over 60 days, they recovered £4,200/month in ad spend that was generating almost no real return — and used it to grow revenue by 8% while spending less overall.
Background: a four-person brand at a critical inflection point
The brand had been running for two and a half years at the time of this case study. They sell women's clothing — primarily occasionwear and elevated basics — through a Shopify store with no physical retail presence. Annual revenue was approximately £380,000, making them a mid-tier DTC brand: past the early scrappy phase, not yet at the scale where they could afford a dedicated data team.
Their paid media setup was typical for a brand at their stage:
- Meta Ads (Facebook and Instagram): £14,000/month — their primary acquisition channel
- Google Ads: £6,000/month — a mix of branded search and a small Shopping campaign
- Total paid media: £20,000/month, or roughly 63% of monthly revenue
Four people ran the business: two founders and two employees, one of whom handled marketing part-time alongside customer operations. Meta Ads management was handled by a freelance media buyer who had worked with them for 18 months.
The problem: good ROAS, bad business
The founders had a phrase they kept coming back to in early conversations: "Our Meta ROAS looks fine but we keep having cash flow problems." It's a surprisingly common complaint, and it almost always points to the same underlying issue.
Their Meta dashboard told a coherent-looking story. Across all campaigns, Meta was reporting a blended 2.8x ROAS — meaning for every £1 spent on Meta Ads, Meta claimed £2.80 of revenue was generated. Their target was 2.5x. They were above target. Their media buyer's monthly report showed improving performance. Everything should have been fine.
But it wasn't. Orders weren't arriving at the rate the Meta numbers implied. Repeat purchase rates were flat. And at the end of each month, the profit margin was nowhere near where a 2.8x ROAS should deliver it — at their cost of goods, a genuine 2.8x ROAS on £14,000 Meta spend should have been producing a healthy margin. Instead they were barely breaking even on their ad spend.
"Our Meta ROAS looks fine, but we keep having cash flow problems. Something isn't adding up — and we've been trying to figure out what for six months."
The founders had started to question whether their cost of goods was the issue, or their average order value, or their conversion rate. None of those metrics looked unusual. The real answer was simpler and more uncomfortable: Meta was telling them they were making money they weren't actually making.
The diagnosis: Shopify-truth ROAS reveals the real number
Within 24 hours of connecting DataMaster — linking their Shopify store, Meta Ads account, Google Ads account, and GA4 property — the first Shopify-truth ROAS report was ready.
The headline number was stark. Meta was reporting 2.8x ROAS. DataMaster's Shopify-truth calculation — matching actual GA4 sessions to actual Shopify orders, using last-click attribution and excluding view-through events — showed a real ROAS of 1.9x.
A gap of 0.9x across £14,000 of monthly Meta spend means £4,200/month of revenue that Meta is claiming credit for but that is not appearing in Shopify. That revenue either didn't happen, or it happened through a different channel that Meta is also claiming. Either way, the brand was making budget decisions based on a number that was 47% more optimistic than reality.
DataMaster matches individual GA4 sessions (which carry UTM parameters from your ad clicks) to individual Shopify orders using session timestamps and user identifiers. This means we can say with confidence: this order came from a customer who clicked a Meta ad, not just viewed one. View-through conversions — where Meta claims credit because someone saw an ad and later bought through a different channel — are excluded by default. The result is a ROAS figure anchored in actual Shopify revenue, not Meta's modelled estimate.
Drilling in: the per-campaign breakdown that changed everything
A blended channel ROAS of 1.9x was bad news, but it was also an average — and averages hide the truth. The more important question was which campaigns were dragging the number down. Some campaigns might be performing well. Others might be the source of almost all the inflation.
The brand was running four active Meta campaigns at the time of the audit:
| Campaign | Monthly spend | Meta-reported ROAS | Shopify-truth ROAS | Gap | Status |
|---|---|---|---|---|---|
| A — Broad audience prospecting | £3,100 | 3.1x | 2.4x | −0.7x | Healthy |
| B — Retargeting (past 30 days) | £2,400 | 4.2x | 1.4x | −2.8x | Critical |
| C — Lookalike (1% LTV audience) | £3,300 | 2.6x | 2.2x | −0.4x | Marginal |
| D — Advantage+ Shopping | £5,200 | 3.8x | 1.6x | −2.2x | Critical |
The pattern was immediately clear. Two campaigns — Campaign A (broad prospecting) and Campaign C (lookalike) — were performing acceptably. Campaign A at 2.4x Shopify-truth ROAS was above the 2.0x floor that made economic sense for this brand at their margin. Campaign C at 2.2x was slightly below their 2.5x target but manageable.
Campaigns B and D were a different story entirely.
Campaign B — Retargeting: a 2.8x gap
The retargeting campaign was targeting website visitors from the past 30 days — a warm audience that had shown interest in the brand but hadn't converted. Meta was reporting an impressive 4.2x ROAS on £2,400 of spend. Shopify-truth ROAS was 1.4x.
A 2.8x gap on a retargeting campaign is the signature of view-through inflation at its most extreme. Retargeting audiences have already demonstrated purchase intent. A significant proportion of them are going to convert regardless of whether they see another ad — they just need a little more time. When they do buy, they often come back directly, or via a Google search for the brand name. Meta sees that the person was in its retargeting audience, notes that a purchase happened within the attribution window, and claims the credit.
In this case, Meta was claiming 4.2x. Shopify saw 1.4x. The difference — 2.8x — represents purchases that were happening anyway, attributed to Meta's retargeting campaign by accident.
Campaign D — Advantage+ Shopping: the biggest culprit
Advantage+ Shopping Campaigns (ASC) use Meta's automation to optimise placements, audiences, and bids across the full funnel. They're often cited as high-performers in Meta reporting — and they were here: Meta showed 3.8x ROAS on the brand's largest campaign, £5,200/month.
Shopify-truth: 1.6x. A gap of 2.2x.
Advantage+ campaigns are particularly vulnerable to view-through inflation for a structural reason: because they target across the full funnel, a large portion of their impressions are delivered to warm audiences — people who already know the brand, who are already in the purchase consideration phase. When those people convert through any channel, Meta's algorithm assigns credit to the Advantage+ campaign that reached them last. The campaign appears to be an incredible performer. It's actually cannibalising organic and other-channel conversions.
"Campaign D was our biggest campaign and Meta's favourite. It reported 3.8x ROAS on £5,200/month. The Shopify-truth number was 1.6x. We were pouring money into a campaign that looked great and did almost nothing."
The root cause: high-intent audiences + view-through attribution
The pattern across both failing campaigns pointed to the same mechanism. View-through attribution — where Meta claims a conversion because someone saw an ad within the past 24 hours, even if they never clicked — is dramatically more distorting for campaigns targeting warm audiences.
Here's why: a prospecting campaign targeting cold audiences (people who've never heard of your brand) is showing ads to people who have low baseline purchase intent. When someone from that audience converts, there's a reasonable chance that seeing the ad genuinely influenced them. The view-through inflation is real, but it's partially justified.
A retargeting campaign or an Advantage+ campaign with a broad remit is different. It's reaching people who've already visited the site, added things to their cart, engaged with the brand's Instagram. Those people have high baseline purchase intent. They were likely going to buy anyway. Meta's view-through attribution picks up all of those organic conversions and attributes them to the campaign. The campaign looks like a star. It's actually just a spectator who arrived late and claimed the trophy.
Meta's default attribution setting is 7-day click, 1-day view. That means any purchase within one day of someone seeing an ad — even without clicking — gets attributed to Meta. For a retargeting audience, this window captures enormous numbers of organic and direct purchases. To get closer to truth, switch your campaign attribution to 1-day click only in Meta Ads Manager. You'll see reported ROAS drop substantially — but the number you're left with is far closer to the real one.
The decisions: what they changed and why
Armed with per-campaign Shopify-truth ROAS data, the brand made four decisions over the course of a week.
Decision 1: Pause Campaign B (retargeting) entirely
A 1.4x Shopify-truth ROAS on a retargeting campaign is not worth optimising — it's worth stopping. The economics don't work at that margin. The brand paused Campaign B and redirected the retargeting function to their Klaviyo email flows, which were already set up but under-optimised. Email retargeting to engaged subscribers costs almost nothing in media spend and avoids the view-through attribution problem entirely.
Freed budget: £2,400/month.
Decision 2: Drastically reduce and restructure Campaign D (Advantage+)
Pausing Advantage+ entirely felt too aggressive — the campaign was generating some real revenue, just not at the scale Meta claimed. Instead, the brand reduced the budget from £5,200/month to £1,800/month and restructured the campaign with two constraints: 1-day click attribution only (removing view-through from the equation), and a tighter audience exclusion list to reduce the overlap with warm audiences who were likely to buy organically.
Freed budget: £3,400/month.
Decision 3: Maintain Campaigns A and C
Campaign A (broad prospecting) was held at £3,100/month. At 2.4x Shopify-truth ROAS it was their best-performing campaign in real terms, and it was doing the work retargeting is supposed to feed — building a warm audience for later. Campaign C (lookalike) was maintained at £3,300/month with a note to revisit if Shopify-truth ROAS didn't improve toward 2.5x within 60 days.
Decision 4: Reallocate the freed budget
The £5,800/month freed from Campaigns B and D was reallocated in two directions:
- £4,000/month to Google Shopping: Their existing Google Shopping campaign had been under-invested. DataMaster's Shopify-truth data showed Google Shopping was delivering a consistent 3.4x ROAS — their best-performing campaign across both channels. Scaling it was the obvious move.
- £1,800/month to new Meta prospecting creative tests: Rather than putting money back into Advantage+, they used a portion to fund a structured creative testing programme on the broad prospecting campaign — new video formats, three different offer angles, UGC-style content.
The results: 60 days later
At the 60-day mark, here's where the brand stood compared to their baseline:
| Metric | Before (monthly avg) | After (monthly avg) | Change |
|---|---|---|---|
| Total Meta spend | £14,000 | £8,200 | −£5,800 |
| Total Google spend | £6,000 | £10,000 | +£4,000 |
| Total ad spend | £20,000 | £18,200 | −£1,800 |
| Blended ROAS (Shopify-truth) | 1.9x | 2.6x | +0.7x |
| Monthly revenue (paid) | £38,000 | £41,040 | +8% |
| New customer acquisition | 312/month | 381/month | +22% |
| Gross profit margin on ad spend | 11% | 19% | +8pp |
The headline results: blended Shopify-truth ROAS improved from 1.9x to 2.6x. Revenue from paid channels increased 8% with £1,800/month less total spend. New customer acquisition — the metric most resistant to view-through inflation, since new customers have no prior brand relationship — improved 22%. And gross profit margin on ad spend nearly doubled.
The cash flow problem the founders had described in their first conversation? Resolved. Not because the business fundamentals changed, but because they stopped funding £4,200/month of phantom conversions.
The repeatable framework: 3 steps any brand can follow
The specific campaigns and numbers here are unique to this brand, but the framework that produced these results is entirely transferable.
Step 1 — Establish your Shopify-truth ROAS baseline
Before you can act on anything, you need a number you trust. Connect your actual Shopify orders to your actual ad clicks using GA4 session data and UTM parameters. If you're doing this manually, fix your UTMs first — missing UTMs will cause Meta-attributed orders to appear as Direct traffic, making Meta look worse than it is and making the manual audit unreliable. Once you have clean UTM coverage, calculate ROAS using Shopify revenue divided by platform spend, not platform-reported revenue.
Step 2 — Break the channel average into campaign-level truth
A blended channel ROAS is almost never the full story. The campaigns dragging your number down are usually specific types: retargeting campaigns with broad view windows, Advantage+ campaigns with wide audience remits, and remarketing campaigns targeting recent site visitors. Compute Shopify-truth ROAS per campaign and compare it to your target. Every campaign more than 0.5x below target warrants immediate scrutiny.
Step 3 — Reallocate, don't just cut
Cutting spend on underperforming campaigns is only half the decision. The other half is where the freed budget goes. Let Shopify-truth ROAS guide you: the campaigns with the strongest real performance — not Meta-reported performance — are the ones that deserve more investment. That might mean Google Shopping, it might mean email, it might mean more creative testing on a campaign that's already working. The key is that the decision is grounded in actual order data, not platform claims.
The key takeaway
The brand's problem was never Meta. Meta is a viable channel — Campaign A proved that, and the new prospecting creative tests were beginning to show strong early results. The problem was two specific campaign types within Meta that were structurally prone to view-through inflation, and a measurement system (Meta's own dashboard) that had no incentive to flag the problem.
The £4,200/month gap was invisible as long as the brand was looking at Meta's numbers. It became visible the moment they had a way to look at Shopify's numbers instead. That's the practical value of Shopify-truth attribution: not a theoretical improvement in measurement accuracy, but a direct line to budget decisions that either grow the business or quietly drain it.
Find out where your Meta spend is really going
DataMaster connects your Shopify store, Meta Ads, and Google Ads in under 15 minutes and shows you per-campaign Shopify-truth ROAS — updated every morning. The average brand finds their first reallocation opportunity within 48 hours of connecting.
Start free trial — no credit card required