How to See Which Ad Creative Drives Best ROAS by Channel
by Trivas.ai
|
6 min read
Oct 08, 2026
Why Channel-Level ROAS Isn't Enough
"Meta is doing 2.8x ROAS" tells you almost nothing useful. It's an average, and averages hide the thing you actually need to know: which specific ad is earning that number.
Here's the scenario that plays out in almost every ad account we look at. One creative is crushing it at 5x. Three others are limping along at 1.2x, barely covering their own spend. Blend them together and you get a channel average that looks fine, maybe even good. Meanwhile you're burning budget on the losers because nobody pulled the number apart.
This is the whole problem with how to see which ad creative drives best ROAS by channel: the platforms themselves won't show you. Meta's Ads Manager reports creative performance, sure, but it reports it in isolation, using its own attribution model, against its own definition of a conversion. It never cross-references that against your actual blended ROAS pulled from order data. Google Ads does the same thing in its own silo. So does TikTok. You end up with three different dashboards, three different "truths," and no single view that tells you which creative, on which channel, actually moved revenue.
What Data You Need to Attribute ROAS to Creative
To get a real creative-level ROAS view, you need three things lined up correctly:
Ad spend by creative ID, pulled from each platform's own reporting layer
Impressions and clicks tied to that same creative ID
Revenue that's actually been matched back through UTM parameters or platform conversion data, not just self-reported by the ad platform
That middle point is where most teams get stuck. Matching an ad-platform creative ID to the order that actually resulted from it (not the order the platform claims resulted from it) is what closes the attribution gap. Platforms have every incentive to take credit for a sale. Your order data doesn't lie the same way.
The typical breakdown looks like this: Shopify order data lives in one system, Meta/Google/TikTok ad data lives in three more, and GA4 session data lives in yet another. None of them talk to each other natively. If you're doing this by hand, you're exporting four CSVs and praying the UTMs matched cleanly, which they usually don't.
Step-by-Step: Building a Creative-Level ROAS View
Step 1: Pull creative-level spend and conversion data from each platform's API. Meta, Google Ads, and TikTok all expose creative-level breakdowns via their reporting APIs, not just campaign or ad set level. If you're still looking at ad set summaries, you're one layer too shallow.
Step 2: Join that data to actual revenue. Use order-level UTM parameters or post-purchase attribution data, not the platform's self-reported ROAS column. This is the step that turns "Meta says this creative converted 40 people" into "this creative is tied to $11,200 in actual Shopify revenue."
Step 3: Segment by channel first, then by creative within channel. Don't throw a TikTok UGC video into the same table as a Google Shopping image ad and rank them against each other. They serve different intents, different placements, different audiences. Segment by channel, then rank creatives inside each one.
Step 4: Set a minimum spend or impression threshold before trusting any ROAS number. A creative that's spent $40 and happened to land one $200 order will show a ROAS that looks incredible and means nothing. Give every creative enough spend to be statistically meaningful before you act on its number, not before.
Reading the Results: Scale, Pause, or Iterate
Once the table is built, the decisions are mostly mechanical.
Creatives sitting above your target ROAS threshold are scale candidates. Push more budget specifically into those ad sets, not the whole campaign around them. Scaling the campaign dilutes the signal you just worked to isolate.
Creatives burning spend below breakeven get paused, full stop, even if the channel average still looks healthy. This is the exact blind spot channel-level reporting creates: a losing creative can hide comfortably inside a winning channel average for months.
Then there's the middle tier, the creatives sitting near breakeven. These aren't automatic kills. A near-breakeven creative with a weak thumbnail or a flat hook might just need a new opening three seconds, a different headline, or a fresh variant tested against it. Pausing it outright throws away a creative concept that might work with one tweak. Treat the middle tier as a test queue, not a graveyard.
Doing This Across Meta, Google, and TikTok at Once
Manual spreadsheet pulls work fine for one channel. Maybe two, if you're patient. Past that, it breaks down fast, because spend definitions and attribution windows differ by platform. Meta's "amount spent" isn't calculated the same way as Google's cost metric, and TikTok's conversion window doesn't match either one. Stack three raw exports together and you're comparing numbers that were never meant to sit next to each other.
A centralized dashboard built on a common data warehouse solves this by normalizing creative-level ROAS across channels before you ever see it, so a 3x on TikTok and a 3x on Google actually mean the same thing. This is the core of what Trivas's Redshift-based reporting does: it pulls creative-level data from Meta, Google, and TikTok alongside Shopify and Amazon order data, and reconciles it into one comparable view instead of three disconnected ones. If you're running ads across Meta, Google, and TikTok simultaneously, this is the only way the comparison holds up.
Common Mistakes When Comparing Creative ROAS
A few errors show up constantly once teams start trying to do this themselves:
Comparing creatives with wildly different spend levels without normalizing for confidence. A creative with $50 spent and a 6x ROAS is not a better bet than one with $5,000 spent at 3.2x. Spend level changes how much you should trust the number.
Ignoring attribution window mismatches. A 7-day click window on Meta and a 1-day view window on TikTok will produce very different numbers for creatives that are otherwise performing identically. Stack them side by side without adjusting and you'll draw the wrong conclusion.
Judging creatives purely on last-click ROAS. Some creatives do the heavy lifting upper-funnel and get no credit because a retargeting ad closes the sale. Check assisted conversions, not just the final-touch number, before you pause something that's quietly feeding your whole funnel.
Put This Into Practice
The workflow isn't complicated, it's just tedious to do manually: pull creative-level data per channel, join it to real revenue instead of platform-reported conversions, segment by channel and then by creative, apply a spend threshold, and act weekly on what's above target, below breakeven, or sitting in the middle needing a new variant.
Before you go deep on creative-level breakdowns, it's worth checking your current blended number with the ROAS calculator so you know what you're benchmarking against.
If you'd rather see this running live across your own accounts than build it in a spreadsheet, start a trial and connect your ad channels to see creative-level ROAS in one dashboard.
Content author and contributor at Trivas.ai, sharing insights on e-commerce analytics, business intelligence, and data-driven strategies to help businesses grow.
Continue Reading
explore more insights
What Happens to Ecommerce Attribution When Cookies Are Removed?
3 min read
Stage-by-Stage Funnel Optimization Strategies for DTC Ecommerce Brands
3 min read
Shopify Analytics with Meta Ads Connected: See Real ROAS Without the Guesswork