Skip to content
AdsAnalyzer

CPI and ROAS: what your app installs really cost

Two numbers decide whether a campaign lives or dies: what an install cost, and what it returned. Both are simple arithmetic. Most of the difficulty is in the inputs.

The formulas

Cost per install is the campaign’s spend divided by the installs it produced:

CPI = spend ÷ installs

Return on ad spend is the revenue from those users divided by the same spend, usually over a fixed window such as 7 or 30 days:

ROAS = revenue from those installs ÷ spend

A ROAS of 0.7, or 70%, means you have earned back seventy cents of every dollar so far. Whether that is good depends entirely on how much more those users will spend later.

A worked example

A campaign on Meta spends $1,000 and, as measured, brings 500 installs. In the first seven days those users spend $700.

Installs CPI Revenue, 7 days ROAS
Android, each user matched exactly 300 $2.50 $450 60%
iPhone, tracking allowed 60 $120
iPhone, from Apple’s campaign reports 140 ≈ $130
Total 500 $2.00 ≈ $700 ≈ 70%

Two things in that table matter more than the arithmetic. The iPhone revenue is approximate, because for users who declined tracking Apple reports revenue in bands rather than exact amounts. And the campaign total is only as good as the install count — which is where most errors come from.

Where the numbers go wrong

Counting installs your ads did not cause. If a network claims installs on weak evidence, or a click window is set generously, organic users get credited to the campaign. CPI falls, ROAS rises, and both are fiction.

Missing the installs your ads did cause. The opposite error. On iPhone, counting only the users who allowed tracking and ignoring Apple’s campaign reports will understate a campaign badly.

Comparing revenue windows that are not the same. A 30-day ROAS next to a 7-day ROAS is not a comparison. Fix the window before comparing campaigns.

Mixing test data with real data. Sandbox purchases, simulators and your own test devices belong outside the numbers. Ours are flagged at the source and excluded by default.

Forgetting that stores keep a cut. Revenue reported by an SDK is what the user paid, not what you received. Apple and Google keep their share, and refunds arrive later. If you are judging profitability rather than comparing campaigns, use net revenue.

What to do with them

CPI alone says nothing about whether a campaign is good — only about how expensive its traffic is. ROAS over a short window says a little more. The question you actually care about is whether these users, over their lifetime, will be worth more than they cost, and that means watching early ROAS as a predictor: how day-7 return compares with campaigns whose full value you already know.

Which brings it back to attribution: every one of these numbers rests on knowing which install came from where. Read more on how attribution works, and what stays measurable on iPhone.

Measure this for your own app

Add the SDK, connect your ad accounts, and see where your installs really come from.