At a glance
Sum of spend on TikTok adsets that produced zero attributed purchase conversions in the period. The “where the budget bled with nothing to show” card. Note: TikTok is not a keyword-driven platform like Google Search; the unit of “wasted spend” is the adset (or ad), not the keyword. Many “wasted” adsets on TikTok are creative-fatigue casualties (an ad that worked for 2 weeks then collapsed) rather than mistargeted audiences.
| What it counts | SUM(spend) for every adset whose attributed purchase count was zero in the period, advertiser-level. Adsets with non-purchase conversions (engagement, video views, traffic) but zero purchases are still flagged if the account objective is Sales / Conversions. |
| Reporting API level | Adset-level. The card aggregates wasted spend across all zero-conversion adsets to a single account total. Drill down by adset is in Zero-Conversion Spend. |
| Currency | Account currency. |
| Attribution model | Whatever the account is configured for (default 7d/1d post-iOS 14.5). An adset reads as “zero-conversion” if no purchase was attributed within that window. |
| iOS 14.5+ ATT impact | Material. ATT-blocked iOS purchases don’t appear in the adset’s attributed-purchase count for Pixel-only accounts. An adset that “really” converted on iOS but lost the attribution gets flagged here as wasted. Without Events API, this card over-states wasted spend by 10, 20% (smaller than the 15, 30% Meta over-states because TikTok’s iOS share is structurally lower). |
| Events API vs Pixel-only | Pixel-only: false-positives common on iOS-skewing audiences. Events API live: closer to truth but still some modeled-conversion noise. |
| Creative-fatigue waste vs audience-mismatch waste | Two distinct shapes. Fatigue: adset converted historically, then trailed off. Fix: refresh creative. Mismatch: adset never converted from launch. Fix: pause; the audience-creative pair is wrong. |
| Conversions vs all-conversions | Uses purchase conversions only. An adset with zero purchases but lots of add-to-carts will still flag as wasted. Use All Conversions for the broader view. |
| Frequency cap relevance | Adsets capped early may show low spend AND low conversions, mathematically zero-conversion, practically just throttled. Audit before pausing. |
| Time window | 30D (last 30 days; not vs prior). |
| Alert trigger | >$0 (any zero-conv adset over the threshold). The default threshold is “any spend on any zero-conversion adset”; tightening to “spend >$50 on zero-conv adset” reduces noise. |
| Roles | owner, marketing, finance |
Calculation
Calculated automatically from your TikTok 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 streetwear merchant. 30-day window 02 Apr 26 to 01 May 26. Sales-objective account, Events API live since 18 Mar 26. iOS share 38%.| Adset | Campaign | Spend ($) | Purchases (TikTok-attributed) | Wasted? |
|---|---|---|---|---|
| LAL 1% (purchasers, video) | Conversions, cold prospect | 4,800 | 41 | No |
| LAL 3% (engagers, video) | Conversions, cold prospect | 2,200 | 6 | No |
| LAL 5% (video viewers) | Conversions, cold prospect | 1,800 | 0 | Yes (false positive risk) |
| Interest: streetwear + 18-24 + male | Conversions, cold prospect | 1,400 | 8 | No |
| Interest: hypebeast + 16-22 + male | Conversions, cold prospect | 1,100 | 0 | Yes (creative fatigue) |
| Interest: sneakerheads + 18-24 + all | Conversions, cold prospect | 800 | 0 | Yes (audience mismatch) |
| Custom audience: cart-abandoners 7d | Retargeting | 520 | 24 | No |
| Custom audience: site-visitors 30d | Retargeting | 380 | 11 | No |
| Account total | $13,000 | 90 | $3,300 wasted (25.4%) |
- 13,000 spend (25%) produced zero attributed purchases. Lower than Meta’s typical 30%+ but still meaningful. On a 38% iOS-share account with Events API live, expect 8, 14% of “wasted” spend to be false positives (real iOS conversions that didn’t make it through ATT). Real wasted spend is probably $2,800, 3,000.
- The “LAL 5% video viewers” adset is borderline. $1,800 spent, zero attributed purchases. Two reads: (a) genuinely the wrong audience (LAL based on video views is a weak signal for purchase intent on Gen-Z DTC where video views are casual / scroll-by) → pause. (b) iOS conversions still partially invisible despite Events API → wait one more period. Pragmatic choice on TikTok: pause now, because TikTok creative fatigues fast and dragging out a marginal adset eats budget on the wrong audience.
- “Interest: hypebeast” is creative fatigue, not audience mismatch. This adset converted at 4.2x ROAS in February (we have the historical data) and dropped to zero in April. Same audience, same broad targeting, the creative ran for 18 days. Classic TikTok 2, 3-week fatigue cycle. Fix: refresh the creative, not pause the audience.
- “Interest: sneakerheads” is audience mismatch. Never converted from launch. Six creatives tested, all flat. The audience is too broad and too engagement-driven (sneakerheads scroll a lot but don’t buy; they save for later or screenshot to compare prices). Fix: pause and rebuild around purchase-intent signals.
- Action priority: (a) refresh creative on “Interest: hypebeast” within 48h (it’ll re-earn), (b) pause “Interest: sneakerheads” today (clearest waste), (c) put “LAL 5% video viewers” on watch for one more period, (d) reallocate freed-up $1,900 to LAL 1% and retargeting (already at 5+ ROAS). Expected ROAS lift: 6, 12% on the account.
- Wasted spend rising while ROAS holding = budget being spread to too many adsets (consolidate).
- Wasted spend rising while ROAS dropping = broad creative fatigue or audience saturation. Refresh creative across the account.
- Wasted spend constant while ROAS rising = healthy mix (the wasted bucket is the experimentation cost).
- Wasted spend = 0 while ROAS = 4x = excellent OR you’ve stopped testing. Test something new.
- Wasted spend % rising fast (e.g. 15% → 30% in two weeks) = on TikTok, this is almost always creative fatigue. Refresh.
Sibling cards merchants should reference together
| Card | Why pair it with Wasted Spend | What the combination tells you |
|---|---|---|
| Zero-Conversion Spend | The per-adset drill-down. This card sums; that card lists. | Which specific adsets to pause or refresh. |
| Total Spend | The denominator for a wasted-spend percentage. | Whether 25% wasted is a small problem (30k). |
| Spend by Campaign | Campaign-level view of where waste clusters. | Whether wasted spend is concentrated in one campaign (easy fix) or spread (creative or audience-strategy issue). |
| Conversions by Campaign | The numerator side. | Which campaigns convert vs which don’t. |
| Conversion Rate Trend | If wasted spend is rising AND CR is dropping, the issue is post-click (landing page, stockouts, pricing). | Diagnose whether waste is upstream (wrong audience / fatigued creative) or downstream (broken funnel). |
| CTR Trend | A high-CTR / zero-conversion adset is mistargeted creative (good hook, wrong audience). A low-CTR / zero-conversion adset is fatigued creative. | Different fixes for different shapes. |
| Conversion Lag | TikTok’s 7d/1d window means today’s “wasted” might convert tomorrow. | Don’t pause on day-1 waste reads; wait at least 3, 5 days for attribution to settle. |
| ROAS | Wasted-spend ratio rising while ROAS holds = experimentation cost. Wasted ratio rising AND ROAS dropping = systemic problem. | Health check before pausing. |
| Meta Ads Wasted Spend | Cross-platform waste peer (also adset-driven). | Compare share-of-waste across platforms. TikTok waste is more often creative-fatigue than audience-mismatch; Meta is the opposite. |
Reconciling against the vendor’s own dashboard
Where to look in TikTok Ads Manager: TikTok Ads Manager > Ad Groups > sort by “Complete payment” ascending, filter Cost > 0. Adsets at the top of the sort with non-zero spend and zero purchases are the wasted-spend bucket. Sum their Cost column to reconcile against this card. Other relevant Ads Manager views:- Reports > Custom > Adgroup Performance: same data downloadable.
- Audience Insights: helps diagnose why an adset wasted, audience saturation, frequency cap, mismatched intent.
- Delivery > Learning Phase status: adsets stuck in Learning often spend without converting. Different cause, similar symptom.
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | TikTok uses ad-account TZ for purchase counting; this card uses UTC. An adset converting just after midnight TZ may register as zero-conversion in this card’s window. |
| Attribution window changes | Direction depends | A 14d→7d switch hides longer-cycle conversions; more adsets read as “wasted” under tighter windows. |
| Modeled conversions | Lower waste in our card | Modeled conversions count toward attributed purchases; Pixel-only accounts get modeled fill that TikTok credits to specific adsets, reducing the “zero-conversion” pool. |
| Ingest lag | Higher waste for “today” | Recent (2, 6h) conversions may not be in yet; an adset converting in the last few hours reads as zero-conversion. |
| Learning Phase | None on the headline | Adsets in Learning Phase are flagged separately in Ads Manager but the card counts their spend the same way. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
google_analytics.ga_revenue_by_channel | If GA4 attributes Paid Social TikTok revenue to a campaign this card flags as wasted, the iOS attribution gap is the cause. | Real iOS conversions invisible to Pixel show up in GA4 (with Consent Mode v2) but not in TikTok. |
shopify.total_revenue | UTM-tagged TikTok-source revenue should account for any “real” conversion the wasted adset drove. | Without UTM tags, Shopify cannot attribute back to specific adsets. |
facebook_ads.fac_wasted_spend | Independent paid-social waste. | TikTok waste is more often creative-fatigue (refresh works); Meta waste is more often audience-mismatch (pause works). Different fixes. |
Known limitations / merchant FAQs
My TikTok wasted-spend is 25%. Is that bad? Context-dependent. Healthy DTC TikTok account ranges 15, 30% wasted-spend share. Below 15% means you’ve stopped testing new audiences / creative (which on TikTok will catch up to you within a fortnight when fatigue hits). Above 30% means systemic problems, broken attribution, audience-quality issues, or runaway creative fatigue across multiple adsets. The trend matters more than the absolute, a stable 25% is fine; a 15% → 30% rise in two weeks is the warning. Should I pause every adset on this list? No. On TikTok specifically, before pausing:- Check creative-fatigue history. If the adset converted historically (e.g. ROAS 3+ for 14 days, then dropped to zero in week 3), it’s fatigue. Refresh creative, don’t pause the audience.
- Check the iOS-share of the adset. Adsets with >50% iOS impressions on Pixel-only accounts have higher false-positive risk; wait one period before pausing.
- Check Conversion Lag. TikTok’s 7d/1d window means a “zero-conversion today” adset might convert tomorrow. Don’t pause on day 1 of a flight.
- TikTok: more often creative-fatigue waste. The audience converts, the creative gets stale. Fix: refresh creative.
- Meta: more often audience-mismatch waste. The audience never converts, regardless of creative. Fix: pause.
- Wasted spend = zero attributed conversions. A clean failure mode.
- Negative ROAS = some conversions, but cost > revenue. A different signal. Use Worst Performing Campaigns for negative-ROAS analysis.
- Audience exhaustion. The 7-day or 30-day site-visitor pool is small (typically <50k for SMBs); fatigue hits fast.
- Creative reuse from prospecting. Retargeting needs different creative (offer / reminder / proof) than prospecting (hook / education). Reusing prospecting creative on retargeting under-converts.
- Frequency cap too high. TikTok retargeting at frequency >5 in 7 days converts poorly. Cap at 3, 4.