Cost per install is the number every acquisition dashboard leads with, and it’s the number most likely to send budget to the wrong channel. Two channels can post nearly identical CPI and produce completely different businesses: one delivering users at $4 who mostly vanish inside a week, the other at $6 who are still active a month later. Judged on CPI alone, the cheaper channel wins the next budget round — and keeps winning, because nothing in a CPI-only dashboard ever shows the cost of the users it isn’t keeping.
Cost per retained user closes that gap by dividing acquisition spend not by installs but by the users still active at a defined retention milestone, usually D30. It reframes the acquisition question from “how cheap were the installs” to “how much did it actually cost to acquire someone who stayed” — and it routinely flips channel rankings once retention is factored in, which is exactly the point: a channel that looks 50% more expensive on CPI can turn out to be half the price per retained user once low-quality installs are backed out of the other side of the comparison.
Data Points to Track
- Spend by channel and campaign: acquisition cost attributed at the same granularity as your install and retention data, so the two can be joined without reconciliation guesswork
- Install-to-retained conversion by cohort: the share of each week’s or month’s installs from a given channel still active at D7, D30 and D90, tracked as a cohort curve rather than a single snapshot number
- Retention milestone definition: the specific activity threshold that counts as “retained” (a session, a core action, not just an app open) applied consistently across every channel being compared
- Cost per retained user by channel, by cohort period: spend divided by retained users for that same cohort, recalculated as each cohort matures rather than estimated from early data
- Retained-user LTV by channel: revenue or value generated by the retained segment specifically, to check whether a channel with a higher cost per retained user is still worth it because those users are worth more
Setup Steps
- Confirm spend and install data share a common channel and campaign taxonomy with your product analytics before calculating anything — mismatched naming between ad platforms and in-app event data is the most common reason this metric gets abandoned after one attempt.
- Pick one retention milestone and apply it uniformly across every channel and campaign under comparison; switching definitions between channels (session vs. core action) invalidates the entire comparison even if each individual number looks correct.
- Build cohort tables keyed by install week and channel, tracking the retained count at each milestone as the cohort ages, rather than calculating cost per retained user once and treating it as final.
- Divide channel spend by the cohort’s retained count at each milestone to produce cost per retained user at D7, D30 and D90 separately — early numbers will look worse than they end up being for channels with slower-maturing retention curves.
- Report cost per retained user alongside CPI in the same dashboard, not as a separate deep-dive report, so budget conversations default to the metric that reflects quality rather than requiring someone to remember to ask for it.
Actionable Insights
When a channel’s CPI is low but its cost per retained user is high relative to peers, the channel is sourcing volume rather than durable users — a strong signal to test tighter targeting or a different creative angle before cutting spend outright, since the traffic itself may still be reachable at better quality. When two channels converge on similar cost per retained user despite very different CPIs, the more expensive-looking channel is often the safer one to scale, because its retention curve is doing less of the heavy lifting on faith.
Watching cost per retained user move over time within a single channel, rather than only comparing channels against each other, also catches creative fatigue and audience saturation early — a channel that used to buy retained users cheaply and no longer does is telling you its best audience has already been reached, well before CPI itself starts climbing.
Related Resources
Need help tracking this in your app?
Our team sets up analytics pipelines for mobile and web teams every day. Talk to us and get your first events flowing in under an hour.
Talk to an expert