Meta Ads Manager will tell you your ROAS is 4.2x. Your bank account will not reflect that. Here’s why the number lies, and what to use instead.

Why Meta ROAS overstates performance

Meta’s default attribution window is 7-day click, 1-day view. This means if a customer sees your ad Monday, does nothing, buys on Friday after a Google search, Meta takes full credit. So does Google. You’ve attributed the same purchase twice — or three times if they also clicked an email.

The degree of overstatement varies by business model, but for most DTC stores we see Meta’s reported ROAS running 1.5-2.5x higher than what you’d calculate from actual incremental revenue.

Three tools that give you a clearer picture

1. Post-purchase surveys

A single question on the thank-you page: “How did you first hear about us?” Unscientific, but gives you a directional read on actual influence. Stores are almost always surprised how much word of mouth and organic are under-attributed in their dashboard.

2. Geo holdout tests

Turn off Meta spend in one market (a state, a country) for 2-4 weeks. Measure the revenue difference versus a matched control market. This is incrementality testing — it tells you what Meta spend is actually adding, not what it’s claiming credit for.

3. Marketing mix modelling

At scale (typically $500k+ annual spend), MMM gives you a statistically-grounded view of contribution by channel. At smaller scale, a simplified version using weekly spend and revenue data in a regression model is surprisingly useful and not hard to build.

What we tell clients

Stop optimizing toward the ROAS number in Meta Ads Manager. Optimize toward blended ROAS — total ad spend divided by total revenue — and use the tools above to understand which channels are actually pulling weight.

This usually means reducing Meta spend somewhat and reallocating toward channels that are under-attributed (often email and SEO). In almost every case, blended ROAS goes up when you stop chasing the platform number.

We’ve been managing TikTok Shop campaigns for four clients over the past two months. Here’s what’s actually working, what isn’t, and one specific creative pattern that drove our best result.

What’s working

Consumables and replenishables. Beauty, skincare, supplements, food and beverage. Products with a clear “before and after” or a visible usage moment perform extremely well. TikTok’s audience understands and accepts before/after content in a way that Meta’s has become suspicious of.

Price points under $60. Impulse-purchase range. Products above $100 see lower conversion from TikTok — not zero, but the consideration cycle is longer than the platform’s attention span.

Organic-looking content. The algorithmic distribution of TikTok ads still rewards content that feels native to the platform. Polished, branded creative performs significantly worse than UGC or creator-style content — even when the UGC is produced professionally.

What’s not working

Direct response from cold audiences. Trying to go directly from cold interest targeting to purchase, with no intermediate step, rarely pencils out on TikTok at reasonable CPAs. Better as an awareness channel that you retarget on Meta and Google.

Products that require explanation. Anything where the customer needs more than 30 seconds to understand the value proposition needs a landing page that does work — and TikTok Shop checkout often bypasses your landing page entirely.

The creative pattern that worked

Our best-performing creative across all four clients follows this structure: a 7-second hook that shows the problem (not the product), a 12-second middle showing the product solving it in real life, and a 5-second close with price and a direct call to action. No logo in the first three seconds. No music that fights the voiceover. Aspect ratio 9:16, filmed on a phone.

This isn’t a new discovery — it’s what all the TikTok native creators already know. But it’s consistently what we see brands resist when they have established brand guidelines, and consistently what wins when we test it against their polished alternatives.