How do I measure success and ROI (save rate, by source/country, playlist-level tracking, goals, UTM)?
TL;DR
Put every click, stream, save, follower, and dollar into one sheet. Tag every outbound link with UTMs. Judge each channel by cost per key action, usually save, follower, ticket sold, or email captured. Green rows scale, yellow rows tweak, red rows pause.
Pick one north-star KPI per goal
Awareness
Goal: reach new ears
North-star KPI: cost per 1,000 impressions ≤ 6 dollars
Supporting: CPM, geo match, view-through over 20 seconds
Engagement
Goal: convert listeners
North-star KPI: save-to-stream ≥ 10 percent
Supporting: skip-rate ≤ 25 percent, playlist adds ≥ 3 percent
Ownership
Goal: own audience data
North-star KPI: cost per email ≤ 1 dollar
Supporting: click-through ≥ 5 percent, churn < 3 percent per month
Revenue
Goal: positive cash flow
North-star KPI: ROAS ≥ 1.2
Supporting: cost per ticket ≤ 3 dollars, merch margin ≥ 50 percent
Pick one north-star per campaign so every dollar has a single purpose.
Tag every link or ad with UTMs
Example
[https://smart.link/new_single?utm_source=tiktok&utm_medium=organic&utm_campaign=chorus_hook](https://smart.link/new_single?utm_source=tiktok&utm_medium=organic&utm_campaign=chorus_hook)
utm_source = channel such as instagram, email, groover
utm_medium = organic, paid, playlist, blog
utm_campaign = release name or A or B creative label
utm_content = optional, such as ad set or variant id
Linkfire, ToneDen, Koji, and Shopify pass UTM parameters into their reports.
Build a single source-of-truth sheet
Include these columns
Date, Channel, Spend, Streams, Saves, Save percent, Followers, Emails, Revenue, Cost per save, ROAS, Notes
Import cadence
DSP and ad CSVs weekly
PRO and SoundExchange quarterly
Playlist platforms such as SubmitHub, Groover, One Submit after each run
Playlist-level and geo tracking
Use Chartmetric or Soundcharts to export playlist adds, follower counts, save rate, skip rate.
Use Spotify for Artists, Music → Audience → listeners by source and country.
Pivot your sheet by playlist URI or by country.
Rule of thumb: any placement with saves under 3 percent or skips over 50 percent should be removed within 48 hours.
ROI math in practice, case study “Marble Echo”
SubmitHub, 40 credits
Spend 46 dollars, saves 540, cost per save 0.085 dollars, ROAS not applicable
Groover, 30 contacts
Spend 60 euros, about 65 dollars, saves 680, cost per save 0.096 dollars, ROAS not applicable
TikTok Spark Ad
Spend 120 dollars, saves 950, cost per save 0.126 dollars, ROAS 1.1
PlaylistPush starter
Spend 325 dollars, saves 4,180, cost per save 0.078 dollars, ROAS 1.3
Decision
Scale PlaylistPush by another 200 dollars. Keep TikTok only for retargeting. Pause further Groover until euro to dollar exchange improves.
Weekly traffic-light review
Save-to-stream
Green ≥ 10 percent
Yellow 6 to 9 percent
Red under 6 percent
Skip-rate at 30 seconds
Green ≤ 25 percent
Yellow 26 to 40 percent
Red over 40 percent
Cost per save
Green ≤ 0.15 dollars
Yellow 0.16 to 0.25 dollars
Red over 0.25 dollars
Algorithmic share
Green ≥ 25 percent of streams
Yellow 15 to 24 percent
Red under 15 percent
Country ratio top five
Green ≤ 50 percent from one country
Red ≥ 70 percent from one country, possible bot risk
Green means increase budget by 50 percent.
Yellow means tweak creative or targeting and retest in seven days.
Red means pause, pull, or dispute bot playlists.
Automation shortcuts
Auto import DSP CSVs
Tool: Zapier to Google Drive to Google Sheets
Setup: about 15 minutes
Slack or Discord Monday KPI digest
Tool: Google Apps Script
Method: IMPORTRANGE into a webhook
Geo heat map
Tool: Looker Studio
Method: connect the Sheet and filter by country code
Common pitfalls and fixes
Judging by streams alone
Fix: track saves and follows, streams can be botted
No UTMs on smart links
Fix: always add utm_source and utm_campaign
Mixing organic and paid without a tag
Fix: use utm_medium = organic or paid
Forgetting foreign exchange and platform fees
Fix: add a calculated column, Spend True = Spend times 1.03
Missing dispute windows
Fix: set a 90 day calendar alert per payer
Key takeaways
One master sheet beats five dashboards. Merge spend, traffic, and revenue in one place.
UTMs plus playlist and geo pivots pinpoint who and where, whether success or fraud.
Save-to-stream, skip rate, and cost per save decide what to scale.
A weekly green, yellow, red review keeps budget on winners and throttles losers fast.
Document everything, including codes, receipts, and hold amounts, so audits and royalty claims are painless.