Skip to main content
Card class: HeroCategory: Ad Platform

At a glance

Return on ad spend, the headline efficiency number for AdRoll. conversion_value ÷ spend at the advertisable level. A 6× ROAS means £1 of AdRoll spend produced £6 of AdRoll-attributed revenue. Retargeting-platform ROAS expectation is 6, 10×, materially higher than top-of-funnel acquisition platforms (Meta, Google) because the audience is warm. Below 4× on a retargeting-heavy account is a warning sign; below 2× is unprofitable for most DTC margins after COGS, fulfilment, and overhead. Post-iOS-14.5 ATT, AdRoll’s reported ROAS over-states real business ROAS by 30, 60% on iOS-heavy accounts without Conversions API.
The formulaSUM(conversion_value) ÷ SUM(spend) over the period at advertisable level. Result is a unitless multiple. Both inputs are in advertisable currency.
What “spend” meansGross media cost in advertisable currency, before AdRoll platform fees, agency markup, or partner rebates. The figure you’re billed for.
What “conversion value” meansAdRoll-attributed revenue (conversion_value summed across all line items). NOT order revenue from the commerce platform; the two often differ by 30, 50%. See Reconciling for why.
Conversion attribution modelLast-touch with view-through credit. AdRoll’s default is 30-day post-click + 7-day post-view, configurable per advertisable. Tightening to 7-day click typically drops ROAS 15, 30% on retargeting-heavy accounts.
Attribution window30-day click + 7-day view (default). Wider than Meta’s post-iOS 7d/1d, narrower than Google’s 30d/1d on conversions_value.
Retargeting ROAS bandsWarm-audience retargeting: 6, 10× typical. Cart-abandon orchestration: 8, 15× (heavily cannibalised, see FAQ). Lookalike prospecting: 1.5, 3× typical. Brand-safe contextual prospecting: 1, 2.5×. The headline ROAS is a spend-weighted blend.
iOS 14.5+ ATT impactSevere and structural. AdRoll’s cross-site cookie network was hit harder than walled-garden platforms (Meta, Google). Without server-side tagging, expect AdRoll-reported ROAS to over-state real business ROAS by 30, 60% on iOS-heavy audiences. With AdRoll Conversions API + Identity Graph live, gap narrows to 10, 25%. The card cannot correct for this; it reports what AdRoll reports.
View-through inflationMaterial on retargeting line items. AdRoll’s 7-day view window means a user who scrolled past your ad on Tuesday and bought via Google search on Friday is claimed by AdRoll. The view-through share of conversion_value is typically 25, 45% on retargeting-heavy accounts. To see click-only ROAS, switch attribution to “Click Only” in advertisable settings (cuts reported ROAS by 25, 40%).
Bot / invalid trafficAdRoll filters detected IVT impressions before billing; conversion-side IVT is removed before reporting. Real-world IVT-conversion drag is <0.5% on properly tagged accounts.
CurrencyAdvertisable currency. Single-currency per advertisable; multi-currency merchants run separate advertisables.
Time window30D vsP (default 30D vs the prior 30D). Real-time updates with up to 4-hour ingest lag on “today”; view-through conversions accumulate over 7 days post-impression.
Alert trigger<2 (warn), <1 (critical). Below 2× is unprofitable for most DTC margins after COGS; below 1× is bleeding cash. Drives sentiment_key: roas.
Rolesowner, marketing, finance

Calculation

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

Worked example

A US beauty DTC brand running AdRoll for site retargeting + lookalike prospecting + cart-abandon orchestration. The 30-day window is 02 Apr 26 to 01 May 26. Account currency USD. AdRoll Conversions API live since 18 Mar 26.
Line itemSpend ($)Conversion value ($)Per-line-item ROASiOS share
Site retargeting (web visitors, 30d)9,80078,4008.00×58%
Lookalike prospecting (purchaser LAL)6,40014,8002.31×61%
Cart-abandoner email + display2,20031,20014.18×56%
Brand-safe contextual prospecting1,2002,1001.75×49%
Account total (this card)$19,600$126,5006.45×57%
Shopify-side total revenue for the same period: 284,000.Ofthat,UTMtaggedAdRollsourcerevenue:284,000. Of that, UTM-tagged AdRoll-source revenue: 58,200. GA4 Display channel attributed revenue: $74,400. What’s interesting:
  1. The headline 6.45× is in-band for retargeting-heavy accounts. Retargeting platforms should land in the 6, 10× range; if you’re seeing 4× or below, audience match rate is degraded (most likely iOS / Safari ITP shrink) or the optimiser is buying low-quality inventory to hit pacing. Below 4× on a retargeting-heavy account is a yellow flag, not a green light.
  2. The 6.45× hides a 14× cart-abandon line item. AdRoll’s email + display orchestrated cart-recovery flow takes credit for purchases that your existing Klaviyo flow would also have caught. Real incremental ROAS on that line item is closer to 6, 8× (the 14× is the upper bound that includes cannibalisation). Run a 10% holdout for 30 days to find the real number.
  3. Site retargeting at 8.00× is the honest read on AdRoll’s core product, paying to re-target users you’ve already paid Google or Meta to acquire. The math: at a 60% gross margin, 8× ROAS contributes ~3.8× to gross profit, but you’re double-paying on these conversions (top-of-funnel + retargeting). Subtract cannibalisation and the net incremental ROAS is closer to 4, 5×, still profitable, but not the 8× headline.
  4. Prospecting at 2.31× is acceptable cold-audience performance for AdRoll. Pure cold prospecting on AdRoll typically lands 1.5, 3×, lower than Meta or TikTok cold audiences. If the growth lever is prospecting, Meta or TikTok will outperform AdRoll on a CPA basis.
  5. Pre-CAPI on this account, ROAS read 4.8× on similar spend; post-CAPI it reads 6.45×. The ~34% lift is real measurement (catching iOS conversions Pixel-only had missed), not inflation. The underlying business ROAS was the same; the new number is more accurate, not better. If you’re judging the rollout, expect a step-change in the 7, 14 days following CAPI go-live and do not compare year-on-year ROAS across the rollout boundary.
  6. The 30-day prior window had ROAS 6.81×, slight decline. Spend up 18%, ROAS down 5%. That’s mild scaling pressure; healthy provided ROAS holds above 5×. If next period shows ROAS down a further 10%+ alongside spend up, hit the brakes; the auto-optimiser is buying lower-quality inventory to hit pacing.
  7. Real business ROAS is closer to 3, 4×, not 6.45×. UTM-tagged AdRoll Shopify revenue is 58k;AdRollsclaimis58k; AdRoll's claim is 126k. The gap is structural (view-through credit + iOS modeling). Use a weighted blend (40% AdRoll claim + 60% Shopify-UTM) for the CFO read: ~$85k, ROAS ~4.3×. Don’t quote the headline 6.45× to finance.
Quick sanity tests:
  • ROAS up + spend up = healthy scaling, expand budget if pacing allows.
  • ROAS flat + spend down = budget cut without channel deterioration; channel is still healthy.
  • ROAS up + spend down = pulled back wisely from low-quality inventory; can scale back when audience refreshes.
  • ROAS down + spend up = scaling beyond efficient frontier. Cap budget, refresh creative, audit per-line-item ROAS.
  • ROAS down + spend flat = something changed: pixel breakage (most common), attribution shift to Meta or Google, or ATT audience collapse. Investigate before cutting.
  • ROAS spike (>2× normal) on a single day = view-through window catch-up or a fraudulent conversion event. Don’t celebrate; verify in commerce-platform truth first.

Sibling cards merchants should reference together

CardWhy pair it with ROASWhat the combination tells you
Total SpendThe denominator. ROAS up + spend up is healthy scaling; ROAS up + spend down is just a retreat.The shape of growth.
Total RevenueThe numerator. Tells you whether ROAS moved on cost-side or revenue-side.If ROAS dropped because revenue cratered (not spend rising), the issue is on the conversion path or pixel.
ROAS TrendDaily series. Retargeting ROAS is volatile day-to-day; the 7-day rolling is the actionable read.Detect the shape of decline (gradual creative fatigue vs sudden pixel break vs ATT audience collapse).
ROAS by CampaignHeadline ROAS hides per-line-item variance. Cart-abandon at 14× drags the average up; prospecting at 2× drags it down.Open this card before making decisions. Headline alone is misleading.
Conversion LagView-through latency. Today’s spend may credit revenue 3, 7 days from now.If lag is rising, ATT is degrading attribution; if lag is falling, inventory mix shifted toward higher-intent placements.
Clicks vs ConversionsThe broken-tracking canary. Clicks rising while conversions stagnate = pixel issue.ROAS will look like it dropped, but the cause is measurement. Don’t cut spend on a measurement bug.
CTR TrendClick-through rate. CTR drops typically precede ROAS drops by 1, 2 weeks (creative fatigue).Early-warning shape for ROAS deterioration.
Wasted SpendZero-conversion line items eating budget.Pause-or-fix list; eliminating wasted spend lifts headline ROAS without changing performance on the productive line items.
Meta Ads ROASWalled-garden retargeting peer. Meta’s retargeting ROAS sits at 5, 9× typically.If AdRoll ROAS is materially below Meta retargeting ROAS, AdRoll’s audience match rate is degraded post-iOS; consider consolidating spend on Meta.
Google Ads ROASTop-of-funnel acquisition peer (different funnel position).Retargeting ROAS should be 2, 3× higher than top-of-funnel ROAS. If they’re equal, retargeting is not adding incremental value.
Shopify Total RevenueThe truth side. Real business ROAS = (Shopify revenue × AdRoll channel share) ÷ AdRoll spend.If your business ROAS is 3.5× and AdRoll-claimed ROAS is 6.5×, that’s a 1.85× over-claim, normal post-iOS without CAPI.

Reconciling against the vendor’s own dashboard

Where to look in AdRoll’s own dashboard:
AdRoll Dashboard → Reporting → Performance Report → “ROAS” (filter to the same advertisable and date range used in this card).
The “ROAS” column in AdRoll’s Performance Report is the same ratio this card surfaces. Headline number on the Home tile shows it for the chosen window. Match the date range and the figure should reconcile to within sub-percent rounding. Other AdRoll views that look similar but aren’t:
  • “View-Through ROAS”: a separate view that isolates view-only-credited conversions. This card uses the blended click + view ROAS.
  • “Click-Only ROAS”: a toggle in advertisable settings; if you’ve switched to click-only, this card matches that setting.
  • “Influenced Revenue”: AdRoll’s broader claim that includes any user touched by AdRoll inventory regardless of last-touch. Not a real ROAS; ignore for decisions.
Why our number may legitimately differ from AdRoll itself (rare):
ReasonDirectionWhy
Real-time event-ingestion lagMarginal on most recent 24hAdRoll Reporting API has a 2, 4 hour lag; view-through events accumulate over 7 days post-impression.
Attribution model toggleDirection dependsIf the merchant changed click-only / click+view mid-window, AdRoll retroactively reflows the data; this card matches whatever the current model says.
Time zoneBoundary days offAdRoll uses advertisable time zone; Vortex IQ uses UTC. For “today” / “yesterday” the boundary shifts can move ROAS 5, 12% on US Pacific advertisables.
Modeled-conversion fillNone expectedBoth views read the same blended (real + modeled) conversion_value field.
Why the BUSINESS ROAS often differs from this card (the important one): The conversion_value AdRoll reports is whatever the pixel + Conversions API saw, attributed back through AdRoll’s last-touch model with view-through credit. That value flows from your tag setup:
  • If the pixel sends order revenue with VAT, ROAS is on a tax-inclusive basis.
  • If the pixel sends only first-purchase value, ROAS understates returning-customer revenue.
  • If the pixel sends modelled value, ROAS includes some imputed revenue.
For the true business ROAS (the one your CFO cares about), divide shopify.total_revenue attributed to AdRoll UTMs by AdRoll spend. The two figures should land within 30, 50% post-CAPI; bigger gaps usually mean (a) commerce-platform attribution disagrees with AdRoll’s view-through window, (b) the conversion pixel is misconfigured, or (c) iOS / Safari ITP impact is degrading attribution despite CAPI. Cross-connector reconciliation: This card is AdRoll’s view of AdRoll-driven performance. The same purchase will be claimed differently by every platform with a tag in the path:
CardExpected relationshipWhat causes legitimate divergence
google_analytics.ga_revenue_by_channelGA4 Display revenue ÷ AdRoll spend ≈ this card × 0.5, 0.75GA4 uses last-non-direct click; AdRoll uses last-touch with 7-day view. AdRoll typically wins more clicks because of the wider window and view-through credit. AdRoll inflates by 30, 60% versus GA4 structurally.
shopify.total_revenue(AdRoll conversion_value) is a subset claim of Shopify total revenue but AdRoll-attributed Shopify revenue (UTM-tagged) is much smaller than AdRoll claims. AdRoll typically claims 1.5, 2.5× the UTM-truth Shopify number due to iOS gap and view-through credit.The “true” business ROAS sits between AdRoll’s claim and Shopify’s UTM count. Use a weighted blend (40/60 AdRoll/Shopify) for the CFO read.
facebook_ads.fac_roasIndependent paid channel; comparable retargeting peer. Meta retargeting typically sits at 5, 9×.Different audiences, different inventory. AdRoll’s match rate is structurally weaker post-ATT because Meta has a closed ID graph.
google_ads.gads_roasDifferent funnel position. Google is intent / search; AdRoll is awareness / retargeting.Comparable benchmark only; retargeting ROAS should be 2, 3× higher than Google’s blended ROAS. If equal or lower, retargeting is not adding incremental value.

Known limitations / merchant FAQs

My AdRoll ROAS is 8× and AdRoll says I’m profitable, but my P&L disagrees. AdRoll’s conversion_value is gross revenue claimed via last-touch + view-through. Your P&L profitability also factors in: COGS (typically 30, 50% of revenue), fulfilment cost (5, 15%), payment processing (~3%), returns (5, 15%), overhead, and cannibalisation (the share of AdRoll-claimed conversions that would have happened anyway via email, organic, or direct). Rule of thumb: divide ROAS by 2 for a “true contribution multiple” on typical DTC margins, then halve again for incremental contribution if the line item is cart-abandon or warm retargeting. An 8× ROAS on cart-abandon is roughly a 2× true incremental contribution multiple. Why is my AdRoll Branded retargeting ROAS so high (12×+)? Same dynamic as Branded Search on Google Ads or returning-audience Advantage+ on Meta. Users who already know your brand were going to come back anyway; AdRoll captures ~50, 80% of that intent for warm-audience CPMs. Branded / repeat-visitor retargeting ROAS is a poor measure of incremental health, you’re paying AdRoll to defend revenue you’d capture for free. The “true acquisition” ROAS is on cold prospecting or new-visitor retargeting only. My ROAS dropped 30% overnight, what should I check first? In order of likelihood: (1) Pixel breakage. Check AdRoll → Pixel → Diagnostic; broken events show as warnings. (2) Conversion-tracking regression. Check Clicks vs Conversions, if clicks held but conversions cratered, the tag broke. (3) Attribution-model change. Check advertisable settings; someone may have switched click-only / click+view. (4) iOS audience pool collapse. ATT opt-out continues to grind audience match rates down; if you haven’t refreshed creative or expanded audiences in 30+ days, expect a drift. (5) Promo period rollover. ROAS during a 30%-off campaign rolls into “normal” the day after; sales attribution catches up unevenly. (6) Cross-platform competition. Meta or Google launched a new campaign that’s now winning last-click on conversions AdRoll used to claim. The conversions still exist; AdRoll just lost claim. Should I optimise for ROAS or for Spend × ROAS (revenue)? Depends on your phase. If you’re profitability-constrained (need every retargeting dollar to break even on its own), optimise for ROAS, retargeting ROAS should sit at 6, 10×. If you’re growth-focused with profitable unit economics on top-of-funnel, optimise for absolute incremental conversion volume; ROAS will compress as you push into prospecting line items. The right answer is rarely “highest ROAS”; usually it’s “max profit subject to spending the budget”. iOS 14.5 ATT impact, the structural answer: ATT (App Tracking Transparency) gave iOS users a system-level prompt to opt out of cross-app tracking. Around 60, 75% of UK / US iOS users opt out. AdRoll, as a cross-site retargeting network, was hit harder than walled-garden platforms (Meta, Google) because:
  • AdRoll’s pixel can no longer reliably link iOS users across sites (the basis of retargeting).
  • Safari ITP independently kills third-party cookies, compounding the damage on Safari users (~40% of UK / US web traffic).
  • For opted-out users, AdRoll backfills with statistical modeling and Identity Graph (its post-cookie ID solution).
Net effect on this card: without server-side tracking, expect AdRoll-reported ROAS to over-state real business ROAS by 30, 60% on iOS-heavy audiences. With AdRoll Conversions API + Identity Graph live, narrows to 10, 25%. Action: roll out CAPI immediately if you haven’t, and treat ROAS readings as directional, not exact. What’s the practical AdRoll Conversions API rollout playbook?
  1. Shopify: Install AdRoll’s official Sales Channel app → enable Conversions API → choose “Maximum” data sharing. 30-minute setup. Auto-deduplicates Pixel + CAPI via event_id. Easiest.
  2. BigCommerce: AdRoll BC app + manual CAPI via Tag Manager + custom event_id. 2, 4 hours.
  3. Adobe Commerce / Magento: AdRoll extension + custom server endpoint. 1, 3 days.
  4. Custom / headless: Build a server-side proxy that mirrors Pixel events. 1, 2 weeks.
  5. In all cases: deduplicate via event_id (unique per purchase) and matching event timestamps. Test in AdRoll → Pixel → Server-Side Events.
  6. Allow 7, 14 days for retraining before judging the ROAS lift; AdRoll’s models recalibrate over that window.
How do I interpret modeled conversions on AdRoll? AdRoll auto-fills attribution gaps with statistically-modeled values. They’re invisible (rolled into conversion_value) but typically run 8, 18% of total revenue for Pixel-only DTC accounts. Patterns:
  • Pre-CAPI: modeled fill ~20, 30%. Inflated.
  • Post-CAPI clean: modeled fill ~5, 12%. Healthy.
  • Post-CAPI but still high (>20%): implementation gaps, audit event_id deduplication and event coverage.
You cannot opt out. Trust the rolling 30-day, not the daily. Why is AdRoll’s claimed ROAS often higher than Meta’s claimed ROAS on the same merchant? Two structural reasons: (1) View-through window. AdRoll defaults to 7-day view; Meta defaults to 1-day view post-iOS 14.5. AdRoll claims more view-through conversions. (2) Audience overlap. AdRoll often re-targets users Meta already targeted; both claim the same conversion. Meta’s pixel typically fires before AdRoll’s on cart-and-checkout flows, but AdRoll’s last-touch + view-through wins on users who saw an AdRoll display ad mid-funnel. Sum of “Meta-claimed + AdRoll-claimed” almost always exceeds total commerce-platform revenue because of double-claim. Use commerce truth (Shopify, BigCommerce, Adobe) as the denominator. AdRoll vs Criteo, who wins on ROAS? Different audiences, different inventory. AdRoll skews toward Google Display Network + Facebook Audience Network mix; Criteo skews toward open-exchange catalogue retargeting. On the same DTC merchant, AdRoll typically reports 10, 20% higher ROAS, but this is largely a measurement artefact (AdRoll’s wider view-through window). Real incremental ROAS, measured via holdout, is usually similar between the two. Don’t pick the platform on claimed ROAS alone; pick on inventory fit, audience reach, and incrementality testing. Can I trust the “today” ROAS? Less than the rolling 7-day. Today’s ROAS is built from incomplete data: spend ingests with 2, 4 hour lag; view-through conversions accumulate over 7 days; modeled-conversion fill takes up to 72h to converge. The 7-day rolling average is the most actionable. Don’t restructure line items based on a single day’s ROAS. My multi-currency setup, how does ROAS work? AdRoll advertisables are single-currency by design. Multi-currency advertisers run separate advertisables per currency. Each advertisable reports ROAS in its own currency. This card is per-advertisable. To roll up across currencies for a unified business view, weight each advertisable’s ROAS by its spend in a common currency (FX-converted at month-end rates). A simple average of ROAS across advertisables is wrong because it gives equal weight to a 50kadvertisableanda50k advertisable and a 500 advertisable. Pixel + CAPI dual-implementation, do I get double-counted on ROAS? Only if dedup isn’t configured. With proper event_id matching, AdRoll server-side dedupes; you get the union (whichever event arrived first wins on attribution credit). Without dedup, you double-count and your ROAS reads ~80% inflated. Test it: AdRoll → Pixel → Server-Side Events → check dedup status. The official Shopify Sales Channel app handles this automatically; custom implementations need explicit dedup logic. Is my AdRoll ROAS incremental or cannibalised? The single most important question on retargeting. Most warm-audience retargeting is partially cannibalised, those buyers would have converted anyway via email, organic, or direct. Run a holdout test: exclude 10% of retargetable users from AdRoll for 30 days, measure their conversion rate vs the targeted 90%. The lift is the incremental AdRoll ROAS. Typical finding: 30, 60% of AdRoll-claimed conversions are incremental; 40, 70% are cannibalisation. Use the incremental ROAS for true performance evaluation; use the headline ROAS for AdRoll’s own optimisation.

Tracked live in Vortex IQ Nerve Centre

ROAS is one of hundreds of KPI pulses Vortex IQ tracks across AdRoll 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.