Skip to main content
Metrics type: Key MetricsCategory: Ad Platform

At a glance

Return on ad spend on StackAdapt. conversionsValue ÷ spend, with view-through credit included where configured. DSP ROAS reads in the 2, 4× band typically; below 2× the working media isn’t paying for itself; above 4× either retargeting is dominating the mix or view-through is over-claiming. A 3× DSP ROAS often translates to 1.5, 2× true incremental ROAS once view-through inflation and multi-touch overlap are factored out.

Calculation

Calculated automatically from your StackAdapt data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

The same US homeware brand. The 30-day window is 02 Apr 26 to 01 May 26. Shopify-truth context: UTM-tagged StackAdapt revenue $48,200. Business ROAS on Shopify-truth = 1.10×. Both are real; both answer different questions. What’s interesting:
  1. Account ROAS 2.67× sits in the “warn” gauge band (good ≥4, warn ≥2). For DSP this is on the lower side; healthy mid-market DSP runs 2.5, 4× when the channel mix is balanced. The CTV-heavy mix here (41% of spend) drags the headline down.
  2. Retargeting at 5.33× is the standout. This is StackAdapt’s sweet spot. Cross-platform retargeting reaches users who already showed intent; conversion rates are 3, 5× higher than prospecting. Scale this campaign aggressively, but watch for diminishing returns past 25, 30% of total spend (you’ll exhaust the audience).
  3. CTV at 1.56× ROAS reads bad on a last-click basis but is misleading. CTV’s job is to seed intent; the conversions appear weeks later as Direct, Branded Search, or Email orders that Shopify credits to other channels. Real CTV ROAS measured via incrementality is often 2.5, 4× even when StackAdapt-attributed reads under 2×.
  4. Audio at 1.56× ROAS is unprofitable on direct attribution. If your audio strategy is awareness-only, accept it as awareness spend. If you expected direct response, the channel-product fit is probably wrong; audio shines for low-consideration impulse products, not homeware.
  5. Prior 30D ROAS was 3.51×. Down to 2.67× this window, a 24% decline. Spend up 21%, revenue down 8%. Classic scaling-beyond-efficient-frontier shape. Action: cap budget at prior-period level for two weeks, refresh creative on Display Prospecting, audit CTV view-through window to ensure it’s at 7-day not 1-day.
Quick sanity tests:
  • ROAS up + spend up = healthy scaling.
  • ROAS down + spend up = scaling beyond efficient frontier; cap budget.
  • ROAS down + spend flat = something changed (pixel, audience, attribution window). Investigate before throttling.
  • CTV ROAS very low + display ROAS healthy = CTV view-through window probably misconfigured.
  • All channels ROAS down simultaneously = pixel issue or site-wide tracking problem.

Sibling cards merchants should reference together

Reconciling against the vendor’s own dashboard

Where to look in StackAdapt: StackAdapt → Reports → Campaigns → ROAS column at account level. Should match this card to within sub-percent rounding once ingest catches up. Why our number may legitimately differ from StackAdapt’s UI: Cross-connector reconciliation: Why DSP ROAS reads so differently from Search DSP ROAS sits in the 2, 4× band on a generous (view-through-included) basis because:
  1. Cold audience. Most DSP impressions reach users who weren’t actively shopping; click value is lower than Search.
  2. View-through inclusion. StackAdapt credits impressions that didn’t lead to a click but where the user later converted. Search does not.
  3. Multi-touch hand-off. DSP often seeds intent that Search closes; last-click attribution credits the closer.
For honest DSP ROAS, run periodic incrementality holdouts (turn off DSP for 14 days in a control region). Real incremental DSP ROAS is typically 1.2, 2.5× last-click DSP ROAS, but with high variance.

Known limitations / merchant FAQs

My StackAdapt ROAS is 2.5× and Google Ads ROAS is 6×, should I move budget? Maybe, but not on that comparison alone. The two channels do different jobs. Search captures intent (people searching for your product); DSP seeds intent and reaches users who weren’t shopping. Moving budget from DSP to Search often shows a Search ROAS lift in the short term and absolute revenue contraction in 30, 60 days as the funnel-feeder dries up. Run a holdout test before reallocating: pause DSP in one geo for 14 days vs control. If Direct/Branded Search/Email volumes hold, move the budget; if they drop 10, 20%, DSP was working harder than its ROAS suggested. Why is CTV ROAS so much lower than display ROAS? CTV cannot generate clicks (you can’t tap a TV). All CTV attribution is view-through. With a 1-day view-through window CTV ROAS is artificially compressed because most CTV-driven conversions take 3, 7 days to surface. Set CTV view-through to 7 days and ROAS typically rises 30, 60%. Even at 7 days, CTV ROAS will be lower than display because the audience is colder and earlier-funnel. My ROAS dropped 30% after I extended view-through from 1 day to 7 days, that doesn’t make sense. You probably didn’t extend; you shortened. Re-check the campaign settings. Extending the window should raise ROAS (more conversions credited), not drop it. If you genuinely extended and ROAS dropped, the cause is elsewhere (creative fatigue, audience exhaustion, attribution-window-independent issue). Should I optimise BidCore for ROAS or for CPA? Depends on AOV. High AOV (>200)**: optimise for ROAS; the algorithm targets revenue × value. **Low AOV (<80): optimise for CPA; ROAS optimisation gets confused by AOV variance and small samples. Mid-range: try both for 14 days each, pick whichever delivered better Shopify-truth incrementality. My retargeting ROAS is 5× and prospecting is 2×, can I just shut off prospecting? You can, but the funnel will erode. Retargeting needs prospecting to refill the audience pool; without it, the retargeting audience exhausts in 30, 60 days and ROAS collapses. Healthy DSP accounts maintain a 60/40 to 70/30 prospecting/retargeting split. The high retargeting ROAS depends on the prospecting work; do not separate them. Why does this card show ROAS dropping when I just turned on a new campaign? New campaigns enter BidCore’s learning phase; the algorithm pays exploration cost to find the converting audience. ROAS is depressed for the first 7, 14 days while learning. Expect ROAS to lift after 50, 100 conversions (when learning phase exits). If ROAS hasn’t lifted by day 21, the campaign config is probably wrong (audience, creative, landing page). Can I trust the “today” ROAS? Less than rolling 7-day. Today’s ROAS is built from incomplete data; clicks today often convert tomorrow or later (especially on CTV view-through). The 7-day rolling is the actionable read. Why is Audio ROAS so low even though podcast/audio sponsorship is supposedly effective? Streaming audio is structurally hard to measure. The user heard your ad while driving; bought 4 days later via Branded Search. Your DSP gets no credit (no click, no view-through pixel fire), Search claims the conversion. Audio’s value shows up in incremental Search volume not direct DSP attribution. Run a Search-volume-by-region analysis during/after audio campaigns; that’s where audio ROAS actually lives. My multi-region account, how does ROAS work? StackAdapt accounts are single-currency. Multi-region advertisers run separate accounts per region; this card is per-account. Aggregate ROAS across regions requires a weighted blend at the report layer.

Tracked live in Vortex IQ Nerve Centre

ROAS is one of hundreds of KPI pulses Vortex IQ tracks across StackAdapt and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.