Not as a measure of what Meta caused. Meta’s reported ROAS is an accurate count of the purchases Meta’s systems connected to your ads under Meta’s own rules. That is a narrower thing than the revenue your Meta ads actually created, and the gap can run in either direction. For most e-commerce brands I look at, it overstates Meta’s contribution on retargeting and returning customers, and sometimes understates it on prospecting that works through views and other channels.
I covered the mechanics in depth in why is Meta’s reported ROAS inaccurate. This post is the short answer plus a way to check your own account.
Why does Meta’s ROAS run high?
Three main reasons. Meta’s default attribution setting counts purchases within seven days of a click and one day of a view, so someone who scrolled past an ad and bought the next day through Google counts as a Meta sale. Meta does not know about your other channels, so it claims orders that Google, email, or TikTok also claim. And Meta’s ads, especially automated campaigns, are good at reaching people already likely to buy, including existing customers. Each of those is reasonable from Meta’s point of view. Together they mean the column adds up to more than Meta caused.
Can it also run low?
Yes. Browser signal loss means Meta misses some purchases it did influence, and modeled conversions only partly fill the gap. Prospecting ads that plant the idea weeks before someone searches your brand name rarely get credit inside a seven-day window. Brands with weak pixel or Conversions API setups often see Meta under-report, which is the case where server-side tracking helps.
How can I check it in 20 minutes?
Pull the last 30 days. In Ads Manager, note total purchases and purchase value. In Shopify, note total orders and revenue for the same dates, then filter to orders with a Meta UTM source or a Facebook or Instagram referrer. Now compare three numbers: what Meta claims, what Shopify can tie to Meta by last click, and total store revenue.
If Meta claims two or three times what Shopify ties to it by last click, a large share of the claim is view-through and shared credit. If Meta’s claim alone is close to total store revenue while you also run Google and email, it is double counting heavily. If Meta claims less than Shopify’s last-click view, your tracking is probably losing signal.
What should I use instead?
Keep Meta’s ROAS for comparing campaigns and creatives inside Meta, where its biases are roughly consistent. For deciding how much to spend on Meta versus other channels, use three things: MER from store revenue and total spend, channel ROAS from a deduplicated attribution tool, and an occasional holdout test.
For the attribution piece, ThoughtMetric credits each order once across Meta, Google, TikTok, and other channels, splits new and returning customers, and adds post-purchase surveys to catch view-driven discovery. (Disclosure: ThoughtMetric sponsors this site.) It starts at $99 a month for 50,000 pageviews with a 14-day free trial.
Does the Conversions API fix it?
It fixes part of it. The Conversions API helps Meta see more of the purchases its pixel misses, which improves optimization and can raise reported ROAS. It does not stop Meta from claiming orders other channels also drove, and it does not separate new customers from returning ones. I covered that distinction in does Meta’s Conversions API replace an attribution tool.
Quick answers
- Is it accurate for comparing campaigns inside Meta? Reasonably, yes.
- Is it accurate for deciding Meta’s share of budget? No, use deduplicated attribution and MER.
- Is it usually too high? Often, on retargeting and returning customers.
- How do I prove what Meta really drives? A holdout or a planned spend change, read against MER.
Leave a Reply