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 formula | purchases_value ÷ spend, both pulled from the Snap Marketing API at advertiser level. Result unitless. |
| Marketing API level | Advertiser-level. Per-campaign / per-adset / per-ad ROAS rolls up weighted by spend. |
| Cost basis | Auction 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” means | Gross media cost. Excludes creator-partnership fees on Story Ads creator boosts (invoiced separately) and Sponsored AR Lens reservations (separate ledger). |
| What “purchase value” means | Snap-attributed revenue (purchases_value). Includes Pixel-confirmed, CAPI events, and modeled-conversion fill. |
| Currency | Account currency. Single-currency per account. |
| Attribution model | 7-day swipe-up + 1-day view default. Configurable to 1d, 7d, 28d for swipe-up and 1d, 7d for view. |
| Attribution window | Default 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 impact | Worst 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-only | Pixel-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 dominance | Snap 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 relevance | High 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 ROAS | Lens 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 window | 30D 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}} |
| Roles | owner, 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%.| Campaign | Spend ($) | Purchase value ($) | Per-campaign ROAS | iOS share |
|---|---|---|---|---|
| Conversions, cold prospect (Story Ads) | 9,800 | 32,400 | 3.31x | 74% |
| Conversions, retargeting 7d | 2,400 | 16,800 | 7.00x | 76% |
| Catalog Sales (DPA) | 4,200 | 18,200 | 4.33x | 72% |
| AR Lens (auction self-serve) | 1,800 | 2,400 | 1.33x | 68% |
| Account total (this card) | $18,200 | $69,800 | 3.84x | 73% |
- 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.
- 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).
- 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.
- Modeled fill at 23% of
purchases_valueis high but expected for a 73%-iOS account. Pre-CAPI fill was likely ~38%. If post-CAPI fill stays above 25%, audit dedup setup. - 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.
- 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.
- 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
| Card | Why pair it with ROAS | What the combination tells you |
|---|---|---|
| Total Spend | The denominator. ROAS up + spend up is healthy; ROAS up + spend down is just a retreat. | Shape of growth. |
| Total Revenue | The numerator. | Whether ROAS moved on cost-side or revenue-side. |
| ROAS Trend | Daily series. ROAS is volatile; rolling 7d is the actionable read. | Detect the shape of decline. |
| ROAS by Campaign | Account ROAS hides per-campaign variance (Story Ads vs Lens vs Catalog can differ 3x). | Open before any campaign-level decision. |
| Clicks vs Conversions | The broken-tracking canary. Clicks up + conversions flat = tag-fire failure. | Don’t cut spend on a tracking bug. |
| CTR Trend | Click-through (swipe-up) rate. CTR drops typically precede ROAS drops by 7, 14 days on Snapchat. | Early-warning shape. |
| Wasted Spend | Adsets with zero attributed conversions. | Lowering wasted-spend share lifts ROAS without touching the numerator. |
| GA4 Revenue by Channel | Independent attribution check on Snap’s claim. | Snap typically reports 50, 90% higher than GA4 (largest gap of major platforms). |
| Shopify Total Revenue | The truth side. | Real business ROAS from (Shopify revenue × Snap channel share) ÷ Snap spend. |
| TikTok ROAS | Peer Gen-Z social ROAS. | TikTok’s ROAS is structurally less inflated (lower iOS share). |
| Meta Ads ROAS | Peer 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.
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | Snap uses ad-account TZ (immutable). UTC card. For 30D the gap averages out. |
| Attribution window changes | Direction depends | If 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 conversions | Both inflate equally | Snap blends modeled into purchases_value; same blended field. |
| Ingest lag | Lower for “today” | 4, 8 hour lag. Today’s ROAS reads low until catchup. |
| Sponsored Lens reservation | None | Reservation Lens revenue is on a separate ledger; neither card nor UI Marketing-API view counts it. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
google_analytics.ga_revenue_by_channel | GA4 Snap revenue ÷ Snap spend ≈ this card × 0.4, 0.65 | Snap inflates by 50, 90% versus GA4 structurally on iOS-heavy accounts. |
shopify.total_revenue | Snap claims 1.7, 3.0x the UTM-truth Shopify number | Use a 25 / 75 Snap / Shopify blend for the CFO read. |
tiktok_ads.tik_roas | Peer Gen-Z social ROAS, NOT a reconciliation | Different audiences. TikTok’s ROAS is structurally less inflated. |
facebook_ads.fac_roas | Peer paid-social ROAS, NOT a reconciliation | Meta’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:- Different denominators. Snap uses
purchases_valueincluding modeled and 7d/1d attribution. Shopify uses UTM-tagged orders only. - 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%).
- Last-click vs UTM-truth. Snap credits any purchase that touched a swipe-up within 7 days. Shopify only credits UTM-tagged Snap referrals.
- Smaller audience pool. Snap DAU ~100M US (vs TikTok ~150M, Meta ~250M); fewer sub-segments to find product-market fit within.
- Younger skew. Median Snap user age is ~22, vs TikTok ~26 and Meta ~38. Older-demographic products fall off the audience entirely.
- 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.
- 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.
- Shopify: Snap official Sales Channel app > enable CAPI > “Maximum” data sharing. 30, 60 minute setup.
- BigCommerce: Snap Pixel app + manual CAPI via Tag Manager + custom event_id. 2, 4 hours.
- Adobe Commerce / Magento: Snap extension + custom server endpoint. 1, 3 days.
- Custom / headless: Server-side proxy. 1, 2 weeks.
- Test in Snap Events Manager > Test Events. Allow 7, 14 days for retraining.
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.
- Slower creative-fatigue cycle (4, 6 weeks on Snap vs 2, 3 on TikTok).
- Less aggressive algorithm. Snap’s optimisation is more conservative; doesn’t pour budget into a single ad as aggressively as TikTok’s CBO.
- 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.