Skip to main content
Card class: HeroCategory: Ad Platform

At a glance

Return on ad spend, the headline efficiency number for Snapchat. purchases_value ÷ spend. A 4x ROAS means £1 of Snap spend produced £4 of Snap-attributed purchase value. Snapchat’s vertical-fit dependency dominates: lifestyle / fashion / cosmetics / gaming / entertainment perform; B2B SaaS / industrial / 45+ demographics consistently fail. Caveat: Snap’s iOS share is the highest of the major platforms (60, 75% on US accounts), so without CAPI expect ROAS to over-state real Snap-driven ROAS by 60, 110% on iOS-heavy audiences.
The formulapurchases_value ÷ spend, both pulled from the Snap Marketing API at advertiser level. Result unitless.
Marketing API levelAdvertiser-level. Per-campaign / per-adset / per-ad ROAS rolls up weighted by spend.
Cost basisAuction CPM converted to CPC / CPA / CPV by optimisation goal. Campaigns optimised for PURCHASE (Conversions objective) bid against expected purchase value; campaigns optimised for SWIPES or IMPRESSIONS are awareness-tier and won’t show meaningful direct ROAS.
What “spend” meansGross media cost. Excludes creator-partnership fees on Story Ads creator boosts (invoiced separately) and Sponsored AR Lens reservations (separate ledger).
What “purchase value” meansSnap-attributed revenue (purchases_value). Includes Pixel-confirmed, CAPI events, and modeled-conversion fill.
CurrencyAccount currency. Single-currency per account.
Attribution model7-day swipe-up + 1-day view default. Configurable to 1d, 7d, 28d for swipe-up and 1d, 7d for view.
Attribution windowDefault 7d/1d. Lengthening to 28d/1d typically lifts ROAS 8, 18% (Snap’s audience converts on a longer cycle than TikTok’s because Story-Ad recall is stickier).
iOS 14.5+ ATT impactWorst gap of the major platforms. Without CAPI, expect Snap-reported ROAS to over-state by 60, 110% on iOS-heavy audiences. With CAPI live, narrows to 25, 50%. The card cannot correct; it reports what Snap reports.
CAPI vs Pixel-onlyPixel-only: ATT-blocked iOS conversions missing → ROAS under-states (real higher); modeled fill over-states. Net: noisy, structurally inflated. CAPI live: tighter, less modeled fill.
Vertical-fit dominanceSnap ROAS is more vertical-dependent than other platforms. Best-fit verticals reliably hit 3, 5x ROAS; worst-fit verticals stay below 1.5x regardless of creative or audience tuning. The audience-vertical match is the dominant factor, not creative quality.
Frequency cap relevanceHigh frequency (>3 in 7d) compresses ROAS. Snap’s frequency cap is structurally lower than TikTok or Meta because Snap users see fewer ads per session.
AR Lens ROASLens spend rarely shows direct ROAS above 2x; the value is brand-association lift over 30, 60 days, not direct attribution. Don’t kill Lens campaigns on direct ROAS.
Time window30D vsP. 4, 8 hour ingest lag plus 24, 72h modeled-conversion convergence.
Alert trigger<2 (warn), <1 (critical). Below 2x is unprofitable for most DTC margins; below 1x is bleeding cash.
Sentiment key{'type': 'gauge', 'thresholds': {'good': 4, 'warn': 2}}
Rolesowner, marketing, finance

Calculation

Calculated automatically from your Snapchat Ads 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 Gen-Z DTC cosmetics brand on Shopify. 30-day window 02 Apr 26 to 01 May 26. Account currency USD. CAPI live since 09 Mar 26. iOS share 73%.
CampaignSpend ($)Purchase value ($)Per-campaign ROASiOS share
Conversions, cold prospect (Story Ads)9,80032,4003.31x74%
Conversions, retargeting 7d2,40016,8007.00x76%
Catalog Sales (DPA)4,20018,2004.33x72%
AR Lens (auction self-serve)1,8002,4001.33x68%
Account total (this card)$18,200$69,8003.84x73%
Shopify total revenue for the same window: 148k.UTMtaggedSnapsourcerevenue:148k. UTM-tagged Snap-source revenue: 26k. GA4 Paid Social Snap-attributed: $34k.
  1. The headline 3.84x is honest by Snap’s measurement, but the business ROAS is closer to 1.4, 1.8x. Real Snap-driven Shopify revenue is probably $26, 34k; divide by spend: 1.4, 1.9x. Don’t quote 3.84x to the CFO without the iOS-gap caveat.
  2. Retargeting 7d at 7x is cookie-pool defence, the audience already visited; Snap is taking last-click credit for buyers who would have come back via email or organic. The “true acquisition” ROAS is closer to the cold-prospect 3.31x (~1.2x on Shopify-truth basis).
  3. iOS share at 73% is the structural Snap pattern. Can’t tune it down; the audience is iPhone-heavy. CAPI rollout in March helped (gap was likely 80, 130% pre-rollout); now down to 50, 80%. Further closure depends on Pixel + CAPI dedup quality.
  4. Modeled fill at 23% of purchases_value is high but expected for a 73%-iOS account. Pre-CAPI fill was likely ~38%. If post-CAPI fill stays above 25%, audit dedup setup.
  5. AR Lens at 1.33x ROAS reads as failure but it isn’t, it’s awareness-tier. The Lens drove 6.2M impressions and 280k engagements. Brand-search lift will arrive 30, 60 days later. Don’t kill the Lens.
  6. 30D prior window was 4.18x, 8% decline. Spend up 12%, ROAS down 8%. Soft creative-fatigue pattern (slower than TikTok). Plan a refresh in the next 14 days, not urgent.
Quick sanity tests:
  • ROAS up + spend up = healthy on a vertical-fit account.
  • ROAS flat + spend down = budget pull-back without channel deterioration.
  • ROAS up + spend down = pulled back from low-quality auctions.
  • ROAS down + spend up = vertical-fit problem if your account is borderline (mass-market fashion, mid-range cosmetics) or creative-fatigue if you’re solidly in fit.
  • ROAS structurally below 1.5x for 60+ days = vertical-fit failure. No creative or audience tuning will fix it. Pull spend, redirect to TikTok or Meta.

Sibling cards merchants should reference together

CardWhy pair it with ROASWhat the combination tells you
Total SpendThe denominator. ROAS up + spend up is healthy; ROAS up + spend down is just a retreat.Shape of growth.
Total RevenueThe numerator.Whether ROAS moved on cost-side or revenue-side.
ROAS TrendDaily series. ROAS is volatile; rolling 7d is the actionable read.Detect the shape of decline.
ROAS by CampaignAccount ROAS hides per-campaign variance (Story Ads vs Lens vs Catalog can differ 3x).Open before any campaign-level decision.
Clicks vs ConversionsThe broken-tracking canary. Clicks up + conversions flat = tag-fire failure.Don’t cut spend on a tracking bug.
CTR TrendClick-through (swipe-up) rate. CTR drops typically precede ROAS drops by 7, 14 days on Snapchat.Early-warning shape.
Wasted SpendAdsets with zero attributed conversions.Lowering wasted-spend share lifts ROAS without touching the numerator.
GA4 Revenue by ChannelIndependent attribution check on Snap’s claim.Snap typically reports 50, 90% higher than GA4 (largest gap of major platforms).
Shopify Total RevenueThe truth side.Real business ROAS from (Shopify revenue × Snap channel share) ÷ Snap spend.
TikTok ROASPeer Gen-Z social ROAS.TikTok’s ROAS is structurally less inflated (lower iOS share).
Meta Ads ROASPeer paid-social ROAS.Meta’s iOS share is mid-pack; Snap’s gap is wider.

Reconciling against the vendor’s own dashboard

Where to look in Snap Ads Manager: Snap Ads Manager > Campaigns > Columns > Purchase ROAS. Snap’s headline efficiency reading. Match the date range to this card’s window; footer total reconciles to within sub-percent rounding. Other Ads Manager columns:
  • Mobile App ROAS: app SDK ecosystem; not in this card.
  • Swipe-up ROAS: click-only ROAS, excludes view-through.
  • Cost per swipe-up: an engagement metric, not ROAS.
Why our number may legitimately differ from Snap:
ReasonDirectionWhy
Time zoneBoundary days offSnap uses ad-account TZ (immutable). UTC card. For 30D the gap averages out.
Attribution window changesDirection dependsIf account changed from 7d to 28d mid-window, Snap reflows; this card matches whatever you’ve configured. A 7d→28d switch typically lifts ROAS 8, 18%.
Modeled conversionsBoth inflate equallySnap blends modeled into purchases_value; same blended field.
Ingest lagLower for “today”4, 8 hour lag. Today’s ROAS reads low until catchup.
Sponsored Lens reservationNoneReservation Lens revenue is on a separate ledger; neither card nor UI Marketing-API view counts it.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
google_analytics.ga_revenue_by_channelGA4 Snap revenue ÷ Snap spend ≈ this card × 0.4, 0.65Snap inflates by 50, 90% versus GA4 structurally on iOS-heavy accounts.
shopify.total_revenueSnap claims 1.7, 3.0x the UTM-truth Shopify numberUse a 25 / 75 Snap / Shopify blend for the CFO read.
tiktok_ads.tik_roasPeer Gen-Z social ROAS, NOT a reconciliationDifferent audiences. TikTok’s ROAS is structurally less inflated.
facebook_ads.fac_roasPeer paid-social ROAS, NOT a reconciliationMeta’s iOS share is mid-pack; Snap’s gap is wider.

Known limitations / merchant FAQs

Why does Snap say I’m at 4x ROAS but Shopify says I’m at 1.5x? Same answer as TikTok / Meta but with a wider gap because Snap’s iOS share is highest:
  1. Different denominators. Snap uses purchases_value including modeled and 7d/1d attribution. Shopify uses UTM-tagged orders only.
  2. iOS 14.5 ATT. Snap’s iOS share (60, 75%) means ATT-blocked conversions are a larger share of the total than on TikTok (35, 45%) or Meta (55, 65%).
  3. Last-click vs UTM-truth. Snap credits any purchase that touched a swipe-up within 7 days. Shopify only credits UTM-tagged Snap referrals.
Practical answer: real ROAS is between, weighted heavily toward Shopify. Use 25 / 75 Snap / Shopify blend (vs 40 / 60 on TikTok or Meta). My Snapchat ROAS is consistently below 1.5x. What’s wrong? Almost always vertical-fit failure, not creative or audience tuning. Snapchat’s audience is structurally young, urban, visual-content-native. Best-fit verticals (cosmetics, fashion, lifestyle, gaming, food delivery, dating apps, entertainment) reliably hit 3+ ROAS. Worst-fit verticals (B2B SaaS, industrial, enterprise, professional services, anything 45+) stay below 1.5x regardless of optimisation. Don’t burn 6 months trying to tune your way out of a vertical-fit problem. Test with $5k over 30 days; if ROAS is still below 1.5x, pull spend. Why is Snap ROAS more vertical-dependent than TikTok or Meta? Three structural factors:
  1. Smaller audience pool. Snap DAU ~100M US (vs TikTok ~150M, Meta ~250M); fewer sub-segments to find product-market fit within.
  2. Younger skew. Median Snap user age is ~22, vs TikTok ~26 and Meta ~38. Older-demographic products fall off the audience entirely.
  3. Lifestyle-content native UX. Snap’s content surface (Stories, Discover, Spotlight) is dominated by lifestyle / fashion / entertainment creators. Products that don’t fit this aesthetic feel jarring to users and underperform.
iOS 14.5 ATT impact, the structural answer: ATT gave iOS users a system-level prompt to opt out of cross-app tracking. Around 60, 75% of US iOS users opt out. Snap’s user base is iOS-heavy (60, 75% on US accounts), so ATT impact is amplified.
  • Pixel can still fire on opted-in users.
  • For opted-out users, Snap can’t link the conversion to the user.
  • Snap backfills with modeling and CAPI.
Net effect: without CAPI, Snap-reported ROAS over-states by 60, 110%. With CAPI, narrows to 25, 50%. Roll out CAPI urgently if you haven’t. Snap CAPI rollout playbook:
  1. Shopify: Snap official Sales Channel app > enable CAPI > “Maximum” data sharing. 30, 60 minute setup.
  2. BigCommerce: Snap Pixel app + manual CAPI via Tag Manager + custom event_id. 2, 4 hours.
  3. Adobe Commerce / Magento: Snap extension + custom server endpoint. 1, 3 days.
  4. Custom / headless: Server-side proxy. 1, 2 weeks.
  5. Test in Snap Events Manager > Test Events. Allow 7, 14 days for retraining.
How do I interpret Snap’s modeled conversions? Auto-filled gaps. Typical 18, 28% of purchases_value Pixel-only DTC, the highest of major platforms. Patterns:
  • Pre-CAPI: ~28, 38%. Inflated.
  • Post-CAPI clean: ~8, 15%. Healthy.
  • Post-CAPI still high (>22%): dedup broken.
Should I lengthen the attribution window? Maybe. Snap supports 28-day swipe-up (vs 7-day default), which typically lifts ROAS 8, 18%. Snap’s audience converts on a longer cycle than TikTok’s because Story-Ad recall is stickier. For high-AOV considered-purchase brands (>$200, fashion / beauty / jewellery), 28-day window gives a more honest read. For impulse buys, 7-day is fine. Why is Snap ROAS less volatile than TikTok ROAS? Two reasons:
  1. Slower creative-fatigue cycle (4, 6 weeks on Snap vs 2, 3 on TikTok).
  2. Less aggressive algorithm. Snap’s optimisation is more conservative; doesn’t pour budget into a single ad as aggressively as TikTok’s CBO.
This means weekly ROAS variance is lower; 30-day rolling is reliable. AR Lens ROAS at 1.3x, should I kill it? No without 30, 60 days of data. Lenses are awareness-tier; the value lands as branded-search lift on Google or organic site traffic 30, 60 days after the flight. If your branded-search volume on Google rose 15, 40% in the 30 days following the Lens, the Lens worked. If branded-search is flat, the Lens didn’t resonate with the audience. Snapchat vs TikTok for Gen-Z DTC, who wins on ROAS? Vertical-dependent:
  • Cosmetics, fashion: Snap usually within 20% of TikTok ROAS, but at 30, 50% lower CPM (cheaper to test on Snap).
  • Gaming, food delivery: Snap often beats TikTok on direct ROAS (audience match is tighter).
  • Athleisure, electronics: TikTok wins; Snap underperforms.
  • Anything 25+: Meta wins; both Snap and TikTok struggle.
Run both for incremental reach if your brand fits Snap-native verticals. Multi-account aggregation? Snap accounts are single-currency. Multi-currency / multi-region brands run separate accounts. Roll up by weighting each account’s ROAS by spend (a simple average is wrong). Can I trust today’s ROAS on Snap? Less than 7-day rolling. Today’s value is built from incomplete data: 4, 8h ingest lag, 24, 72h modeled-conversion convergence. Don’t restructure campaigns based on a single day’s ROAS.

Tracked live in Vortex IQ Nerve Centre

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