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 formula | SUM(conversion_value) ÷ SUM(spend) over the period at advertisable level. Result is a unitless multiple. Both inputs are in advertisable currency. |
| What “spend” means | Gross media cost in advertisable currency, before AdRoll platform fees, agency markup, or partner rebates. The figure you’re billed for. |
| What “conversion value” means | AdRoll-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 model | Last-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 window | 30-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 bands | Warm-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 impact | Severe 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 inflation | Material 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 traffic | AdRoll 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. |
| Currency | Advertisable currency. Single-currency per advertisable; multi-currency merchants run separate advertisables. |
| Time window | 30D 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. |
| Roles | owner, 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 item | Spend ($) | Conversion value ($) | Per-line-item ROAS | iOS share |
|---|---|---|---|---|
| Site retargeting (web visitors, 30d) | 9,800 | 78,400 | 8.00× | 58% |
| Lookalike prospecting (purchaser LAL) | 6,400 | 14,800 | 2.31× | 61% |
| Cart-abandoner email + display | 2,200 | 31,200 | 14.18× | 56% |
| Brand-safe contextual prospecting | 1,200 | 2,100 | 1.75× | 49% |
| Account total (this card) | $19,600 | $126,500 | 6.45× | 57% |
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Real business ROAS is closer to 3, 4×, not 6.45×. UTM-tagged AdRoll Shopify revenue 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.
- 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
| Card | Why pair it with ROAS | What the combination tells you |
|---|---|---|
| Total Spend | The denominator. ROAS up + spend up is healthy scaling; ROAS up + spend down is just a retreat. | The shape of growth. |
| Total Revenue | The 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 Trend | Daily 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 Campaign | Headline 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 Lag | View-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 Conversions | The 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 Trend | Click-through rate. CTR drops typically precede ROAS drops by 1, 2 weeks (creative fatigue). | Early-warning shape for ROAS deterioration. |
| Wasted Spend | Zero-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 ROAS | Walled-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 ROAS | Top-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 Revenue | The 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.
| Reason | Direction | Why |
|---|---|---|
| Real-time event-ingestion lag | Marginal on most recent 24h | AdRoll Reporting API has a 2, 4 hour lag; view-through events accumulate over 7 days post-impression. |
| Attribution model toggle | Direction depends | If the merchant changed click-only / click+view mid-window, AdRoll retroactively reflows the data; this card matches whatever the current model says. |
| Time zone | Boundary days off | AdRoll 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 fill | None expected | Both views read the same blended (real + modeled) conversion_value field. |
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.
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:
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
google_analytics.ga_revenue_by_channel | GA4 Display revenue ÷ AdRoll spend ≈ this card × 0.5, 0.75 | GA4 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_roas | Independent 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_roas | Different 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’sconversion_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).
- 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. - BigCommerce: AdRoll BC app + manual CAPI via Tag Manager + custom event_id. 2, 4 hours.
- Adobe Commerce / Magento: AdRoll extension + custom server endpoint. 1, 3 days.
- Custom / headless: Build a server-side proxy that mirrors Pixel events. 1, 2 weeks.
- In all cases: deduplicate via
event_id(unique per purchase) and matching event timestamps. Test in AdRoll → Pixel → Server-Side Events. - Allow 7, 14 days for retraining before judging the ROAS lift; AdRoll’s models recalibrate over that window.
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_iddeduplication and event coverage.
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.