At a glance
Per-campaign drill-down of zero-conversion spend. The companion to Wasted Spend: that card sums, this card lists. Each row is a campaign that’s been live more than 7 days and produced zero attributed purchases. The 7-day filter excludes Learning-Phase campaigns (TikTok’s algorithm typically needs 25, 50 conversions before delivery stabilises; campaigns younger than 7 days are still in that learning window).
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 accessories brand. 30-day window 02 Apr 26 to 01 May 26. Account currency USD. Events API live. iOS share 36%.
What this is telling you, row by row:
- Cold prospect, hypebeast 18-24 ($1,840, 28 days, zero conversions). CTR 1.17% is healthy for TikTok cold traffic. The audience clicks but doesn’t buy. That’s the audience-mismatch signature, hypebeasts on TikTok scroll, save, screenshot for price comparison; they don’t convert in-session. Pause this audience entirely. Don’t refresh creative; the issue isn’t the hook, it’s the buyer intent of the segment.
- Catalog Sales, summer drop SKUs ($1,420, 21 days). CTR 0.99% is low; impressions still high (318k) means delivery is fine but the creative isn’t engaging. Catalog ads on TikTok work best with seasonal hooks; “summer drop” feels stale by week 3. Refresh the catalog creative template (new music, new transition pattern, fresh on-screen text). Don’t pause the campaign, refresh the creative.
- Spark Ads, creator @taylor_drips boost ($920, 14 days). CTR 2.94% is excellent (well above platform average). Zero conversions despite strong engagement is the awareness-tier shape: people watch, save, follow the creator, but don’t click through to buy. Watch, don’t pause. Spark Ads have brand-equity value (UGC rights, creator association) that doesn’t show up here. Judge on a 60, 90 day MMM read.
- Conversions, lookalike 5% (video viewers) ($680, 11 days). CTR 0.83% is below platform average, conversions zero. LAL based on video-viewer signal is structurally weak (video views are a noisy intent signal on TikTok; viewers are casual, not buyers). Pause, redirect to LAL 1% (purchasers) or LAL 1, 3% (engagers).
- BHC support, #DripCheckChallenge ($480, 9 days). Reach-objective campaign, 1.84M impressions. Zero attributed purchases is expected for reach-objective. Don’t read this row as waste. The signal that the BHC worked lives elsewhere (branded-search lift on Google, organic site traffic, follower growth on the brand TikTok account). Filter or exclude reach-objective campaigns from this card’s read by configuring
objective != 'REACH'in the alert rule.
- Pause the hypebeast cold prospect and the LAL 5% video-viewer adset today (clearest waste, $2,520 freed).
- Refresh creative on the Catalog Sales summer-drop campaign within 48h (don’t pause; the SKUs are still active).
- Re-allocate $2,520 to LAL 1% (purchasers) and the cart-abandoner retargeting pool (already at 5+ ROAS).
- Filter BHC support out of this card’s alert (configure
objective != 'REACH'in the trigger rules).
- Row count rising while account ROAS holding = experimentation cost. Expected.
- Row count rising while account ROAS dropping = systemic creative fatigue. Refresh creative across the account.
- Same campaign appearing here for 3+ consecutive periods = the audience or creative is broken; pause or rebuild.
- Reach-objective campaigns appearing = configure the alert filter to exclude them.
- High-CTR campaigns with zero conversions = post-click problem (landing page, pricing, audience intent mismatch). Don’t fix at the ad level; fix downstream.
Sibling cards merchants should reference together
Reconciling against the vendor’s own dashboard
Where to look in TikTok Ads Manager: TikTok Ads Manager > Campaigns > sort by “Complete payment” ascending, filter Cost > 0, filter Created > 7 days ago. The list of campaigns at the top of the sort with non-zero cost and zero purchases is the same set this card lists. Other relevant Ads Manager views:- Reports > Custom > Campaign Performance: same data downloadable.
- Audience Insights per campaign: helps diagnose audience-mismatch waste.
- Delivery > Learning Phase status: campaigns still in Learning shouldn’t be counted here (the 7-day filter approximates this).
Cross-connector reconciliation:
Known limitations / merchant FAQs
Why is the same campaign appearing here for 3 weeks running? Three possibilities, ordered by probability:- Audience-creative mismatch (most common). The audience clicks but doesn’t buy; the campaign won’t convert no matter how many creatives you swap in. Pause and rebuild around a different audience.
- Frequency cap too high. The same audience is seeing the ad 5+ times in 7 days; saturation kills conversion. Cap at 3, 4 in 7d.
- Tracking failure. Pixel mis-fires on the landing page, Events API event_id duplication, or Conversions API event mapping wrong. Audit in Events Manager > Test Events.
campaign_age_days >= 7 (or 10, 14 days for low-volume accounts).
My BHC support campaign always appears here, is that a problem?
No. Reach-objective campaigns systematically appear because they don’t optimise to purchases. Configure the alert to exclude objective in ('REACH', 'VIDEO_VIEWS', 'TRAFFIC') to filter them out. They have value (branded-search lift, follower growth) measured elsewhere.
Should I pause every campaign on this list?
No. Triage by:
- CTR shape. High-CTR / zero-conversion = downstream problem (landing page, pricing, intent mismatch). Don’t pause; fix downstream.
- Creative age. Older than 14 days with declining performance = creative fatigue. Refresh, don’t pause.
- Audience size. Smaller than 100k = audience may be exhausted; rebuild with a broader signal.
- Spend size. Below $50 cumulative = often a test that didn’t get enough volume to learn. Either kill or scale up to give it a chance.
- Creative fatigue: campaign converted historically (e.g. ROAS 3+ for 2, 3 weeks), then dropped to zero. Same audience, different time. → Refresh creative.
- Audience mismatch: campaign never converted from launch, multiple creatives tested. → Pause and rebuild.