How to Measure App Campaign ROI and ROAS
ROAS is the number every app advertiser is judged on and the number most dashboards quietly distort. Not through malice — through windows, attribution choices and cohort math that flatter whoever chose them. This guide is how to compute return honestly enough to bet budgets on it.
ROI, ROAS and why the difference matters
ROAS — revenue divided by ad spend — measures what the campaign produced. ROI — (revenue minus all costs) divided by all costs — measures whether the business made money. The gap between them is where apps die: a campaign at 120% ROAS with 30% margin on revenue, creative costs and tooling is below breakeven while looking like a win in the ad dashboard. Decide which number your finance team means, compute both, and never present one as the other.
For subscription and deposit verticals, add the third number that actually rules: payback period — days until cumulative cohort revenue covers acquisition cost. A 90-day payback at strong retention can be a better business than 30-day payback with churn, and only the LTV curve tells you which you have.
Cohorts or fiction
Revenue from a campaign arrives over weeks and months; the only honest way to match it to spend is cohort analysis: users grouped by install date and source, with cumulative revenue tracked per cohort per day. Anything else — this week's revenue against this week's spend — mixes cohorts of different ages and manufactures trends that don't exist.
Cohort math forces two disciplines. First, maturity windows: day-7 ROAS is a forecast, day-30 is evidence, day-90 is truth — and decisions need to know which they're reading. Second, prediction: mature accounts project final cohort value from early curves, which is legitimate when the curves are stable and self-deception when they're not. Mark projected numbers as projections. Every time.
Attribution windows are a business decision
The same campaign shows different ROAS at a 1-day click window versus a 7-day one, and view-through attribution inflates further. Windows aren't technical trivia — they're the contract between you and everyone you pay. Set them deliberately: short windows undercount slow verticals (finance deposits take days), long windows overcredit cheap touch formats and invite attribution gaming.
Write the windows into partner agreements, align them across channels, and audit quarterly whether claimed installs actually drive the revenue curve — a source whose installs spike revenue on day 0 and never again looks very different from one whose cohorts keep paying at day 30. Our post-install events guide covers the event wiring this depends on.
The incrementality question
Attributed is not the same as caused. Some credited installs would have happened organically; some retargeting claims credit for users who were already returning. The correction tools: holdout tests for re-engagement flows (a control slice gets nothing, lift is measured against it), geo-splits for brand-heavy spend, and periodic source pauses to watch whether organic absorbs the gap.
You don't need perfect incrementality measurement to benefit from asking the question. Sources whose value collapses under scrutiny reveal themselves fast — the click-to-install time distributions go strange, the post-install behavior thins out. Suspicion, applied weekly in the source report, is the working version of incrementality for most budgets.
The reporting cadence that keeps it honest
ROI measurement fails as a quarterly ritual; it works as a weekly operating rhythm. The working cadence we run: weekly source-level review — spend, billable events, cohort ROAS trajectory per source, with cut-or-scale decisions recorded; monthly reconciliation between partner invoices and MMP counts against written rejection rules; quarterly re-validation of the LTV model against realized cohort revenue.
The artifact that holds it together is boring: one source-level table that both sides optimize from. When your buying partner's report is the same table their buyers use — as ours is, on the advertiser platform — the ROI conversation stops being an argument about whose numbers are real and starts being a decision about what to scale. If that's the cadence you want, register as an advertiser.
A working LTV model in four inputs
You don't need a data science team to model lifetime value; you need four honest inputs: payer conversion rate per cohort, average revenue per payer, the retention curve's shape, and gross margin on revenue. Multiply the first three and you have expected revenue per install at day-N; extend the retention curve and revenue per install grows toward a stable LTV estimate. Fit it against your mature cohorts quarterly and the model stays humble by construction.
Where teams go wrong is modeling the average instead of the distribution. A vertical where 2% of users produce 80% of revenue — casino, midcore games — has an LTV model that is really a whale-probability model, and campaign decisions change accordingly: you optimize for sources that occasionally deliver whales, not sources that reliably deliver minnows. Know which shape your business has before you let an algorithm spend against the average.