Your ROAS Is Lying to You: The Attribution Trap Draining DTC Budgets
67% of DTC brands are over-attributing revenue to paid social by an average of 40%. That 4× ROAS you're seeing is probably closer to 2.4×. Here's the attribution trap, why it happens, and what to track instead.
ROAS is the most-watched metric in performance marketing — and often the most misleading.📷 Unsplash
Here's a scenario that should feel familiar.
Your Meta Ads dashboard shows 3.8× ROAS for the month. You feel pretty good. You show it to your finance team, or your client, or your investor. They nod. Numbers look healthy.
Then you look at your actual revenue in Shopify (or Stripe, or wherever you track real money) and it's up — but not 3.8×-of-ad-spend up. Something doesn't add up. You try to reconcile the numbers and you can't quite get there. So you just... leave it. The ROAS looks good. Probably fine.
It's not fine.
This is the attribution trap, and according to a survey by Northbeam published in May 2026, 67% of DTC brands are currently over-attributing revenue to paid social by an average of 40%. That means a 4.0× reported ROAS likely reflects a true 2.4–2.8× ROAS. For a brand spending $50k/month on ads, that's a $30–40k/month gap in expected vs. actual return.
67%
of DTC brands over-attributing to paid social
40%
average over-attribution gap
2.1×
typical true ROAS when 4× is reported on Meta
28%
of conversions attributed to multiple channels simultaneously
Why your ROAS number isn't real
ROAS as Meta reports it counts every purchase conversion that happened within your attribution window (default: 7-day click, 1-day view) and attributes 100% of that revenue to Meta. Simple enough — but three things break this immediately in the real world.
Problem 1: Multi-touch double counting
A customer sees your Meta ad on Monday. Searches your brand name on Google on Wednesday (triggers a Google Ads click). Opens your email Thursday. Buys Friday.
Who gets credit?
Meta: 100% (7-day click window covers Monday)
Google: 100% (last-click covers Wednesday)
Email platform: 100% (last touch covers Thursday)
You've now attributed $100 of revenue three times across three platforms. Your combined reported ROAS across channels will be wildly inflated.
r/PPC▲ 280 upvotes
“Anyone else's total attributed revenue across channels 3× their actual revenue? Genuinely trying to understand if I'm the only one confused here.”
Almost all 280 comments were some variation of: "Yes, this is normal. No, nobody talks about it enough."
Problem 2: View-through attribution is doing heavy lifting
Meta's default 1-day view attribution means anyone who saw your ad (didn't click, didn't engage, just scrolled past) and then bought anything within 24 hours gets credited to your campaign.
For brands with any meaningful organic presence, brand searches, or word-of-mouth, this inflates ROAS enormously. The person who was already going to buy — driven by an influencer post they saw three days ago or a recommendation from a friend — just got attributed to your $50 ad.
⚠️View-through attribution is the quiet killer
Switch your attribution to click-only (7-day click, 0-day view) and recheck your ROAS. Most brands see a 30–50% immediate drop in reported ROAS — with zero change in actual revenue. That's how much view attribution was inflating the number.
Quick check
You switch Meta attribution from '7-day click + 1-day view' to '7-day click only'. Your reported ROAS drops from 4.2× to 2.8×. What actually happened to your revenue?
Problem 3: The wrong conversion event
Many accounts are still optimizing for Add to Cart or Initiate Checkout rather than Purchase. These are cheaper conversion events — the algorithm can hit targets more easily — but they attract browsers, not buyers. The ROAS calculation based on downstream attributed purchases looks great. The actual purchase rate from those sessions? Much lower.
A Shopify case study published earlier this year tracked 40 DTC brands that switched from ATC optimization to Purchase optimization. Average reported ROAS dropped 31%. Average actual revenue? Up 18%. The old setup was optimizing for signals that didn't predict real purchases.
The gap between platform-reported ROAS and actual blended return is widening as multi-channel attribution becomes more complex.📷 Unsplash
What to actually look at instead
ROAS isn't useless — it's a useful directional signal within a single channel when you understand its limitations. But it should not be your primary success metric. Here's what to track instead.
Blended MER (Marketing Efficiency Ratio)
MER = Total Revenue ÷ Total Ad Spend (across all channels)
This is the number that actually matters. If you're spending $100k/month on ads and generating $350k in revenue, your MER is 3.5. It doesn't care who Meta or Google or TikTok says sent the customer. It just tells you: for every dollar in, how many dollars come out.
Track MER weekly. If it's going up, your marketing is working. If it's going down, something is wrong — regardless of what any platform's dashboard says.
Interactive tool
Calculate your real MER
Enter your numbers above — your true blended efficiency ratio will appear here. Unlike platform ROAS, this counts actual revenue, not attributed estimates.
Platform-reported ROAS
Counts same purchase in multiple channels
Includes view-through inflation
Changes based on attribution window setting
Tells you what Meta thinks happened
Encourages optimizing for the dashboard
What you should actually track
MER: Total revenue ÷ total ad spend
New customer CAC (first-purchase only)
nCAC: new customer ad spend ÷ new customers
LTV:CAC ratio by cohort
Incrementality: revenue with vs. without ads
New Customer CAC
For DTC brands, repeat purchases skew ROAS in a misleading direction. Your retargeting campaign might show 8× ROAS because it's converting people who were already going to buy again. Your prospecting campaign might show 2× ROAS because acquiring new customers is genuinely harder.
Separate your campaigns and track them separately. Prospecting ROAS and retargeting ROAS are different businesses.
New customer CAC = ad spend on prospecting campaigns ÷ number of first-time buyers acquired. This is the number that tells you whether your business is growing, not your blended ROAS.
Incrementality testing
This is the gold standard and most brands never do it because it's uncomfortable. Run a holdout test: take 10–15% of your target audience and don't show them any ads for 2 weeks. Compare their purchase rate to the audience who saw ads.
The delta is your true incremental lift. Every purchase in the holdout group that happened anyway — without seeing an ad — is revenue your attribution model was crediting to your campaigns.
A Journal of Marketing study from early 2026 found that brands running holdout tests discovered their true incremental ROAS was, on average, 45% lower than platform-reported ROAS. That's not a rounding error. That's a strategic miscalculation that affects every budget decision you make.
“MER is the only metric that doesn't lie to you. Everything else is a platform telling you what it wants you to believe.”
— Taylor Holiday, Common Thread Collective — widely shared in DTC circles
💡Start simple: the ghost ad test
You don't need a sophisticated testing platform to run an incrementality test. Most ad platforms now support "holdout" audiences natively. In Meta, you can create a Brand Lift study (requires $30k+ spend) or use Conversion Lift for a lighter version. Google has Campaign Experiments with a similar function. Run one. You'll learn more from two weeks of testing than from a year of reading dashboards.
How to recalibrate your reporting this week
Here's a practical reset you can do right now, no new tools required:
Step 1: Switch to click-only attribution on Meta. In your ad account, go to Account Overview → Attribution Settings → change to 7-day click, 0-day view. Yes, your ROAS number will drop. Your actual revenue won't.
Step 2: Calculate your MER for the last 30 days. Pull total Shopify/Stripe revenue. Divide by total ad spend across all channels. Use the calculator above. Write that number down. That's your actual efficiency metric.
Step 3: Separate new vs. returning customer revenue. Most Shopify accounts have this in their analytics. Check what percentage of your revenue is coming from first-time buyers. If it's below 30%, your "growth" is mostly retention — and your prospecting campaigns are less effective than your ROAS suggests.
Step 4: Set up a 2-week holdout on your lowest-performing channel. Pick the channel with the weakest MER contribution and pause it for 2 weeks. Watch your MER carefully. If it doesn't move, that channel wasn't contributing incrementally.
Step 5: Report MER to leadership, not ROAS. Change the conversation. ROAS is a platform metric. MER is a business metric. The switch takes 5 minutes and will fundamentally improve how decisions get made about where to spend.
Quick check
Your Meta ROAS is 4.2×, but your blended MER is 1.8×. What does this most likely mean?
None of this means paid ads aren't working. For most DTC brands, they absolutely are. But you deserve accurate visibility into how well they're working, so you can make smarter decisions about where to scale, where to cut, and what's actually driving revenue.
Your reported 4.0× ROAS is probably more like 2.4×. That's still good! But knowing the real number lets you set realistic budgets, plan inventory correctly, and stop scaling campaigns that are growing your dashboard metrics instead of your business.
The number you see in Ads Manager is not your number. Your number is in your P&L.
Your ROAS Is Lying to You: The Attribution Trap Draining DTC Budgets — Fly Adsly Blog | Fly Adsly