CPI vs CPA vs ROAS: Choosing a Bidding Model for App User Acquisition

CPI, CPA, or ROAS: the short answer
Your CPI vs. CPA vs. ROAS choice depends on how much data you have. Use CPI when you're launching or need volume and don't yet know what a user is worth. Move to CPA once you know which in-app action predicts revenue, and you're getting that action often enough to optimize on. Move to ROAS once you have steady revenue data and the volume to back it.
That's the usual order. The mistake is skipping ahead. A ROAS campaign with ten purchases a week has almost nothing to learn from, and it will either spend nothing or spend badly while it guesses.
What CPI, CPA and ROAS bidding mean
CPI (cost per install) means you pay, or your campaign optimizes, for each install. It's the simplest model and the easiest to buy at scale. It tells you nothing about whether the user ever opens the app again.
CPA (cost per action) moves the target down the funnel to an in-app event: a registration, a tutorial completion, a first purchase. AppsFlyer's formula is total ad cost for a period divided by the number of those actions in the same period. Spend $1,000 on a free-trial campaign, get 200 sign-ups, and your CPA is $5 (AppsFlyer).
ROAS (return on ad spend) targets revenue instead of a count. Google defines it as conversion value divided by ad spend, times 100%. A campaign bidding on target ROAS tries to bring in users whose revenue matches the return-to-spend ratio you set (Google Ads Help).
The further down the funnel you go, the closer the target is to what you actually care about, and the fewer events there are to learn from. That trade-off is the whole decision.
CPI vs CPA vs ROAS compared
CPICPAROASOptimizes forInstallsOne in-app eventRevenueData you need firstAlmost noneA tracked event that predicts value, firing oftenRevenue events with values, firing often, plus a few weeks of historyVolumeHighestMediumLowest at the startCost per userLowestHigherHighest per install, judged on return insteadMain riskCheap installs that never come backOptimizing for an event that doesn't lead to revenueToo little data, so the campaign stalls or swingsBest forLaunches, new markets, building a data baselineApps with a clear early signal (sign-up, trial, first deposit)Apps with steady purchase or ad revenue
One detail people miss on CPA: pick one event. Google advises against selecting more than one action for a target CPA, because it turns your target into a blended target for actions that may be worth different amounts (Google Ads Help).
How to move from CPI to CPA to ROAS
- Start on CPI and instrument everything. Send every meaningful in-app event to your MMP from day one, with revenue values where they exist. You're buying installs, but what you're really buying is data.
- Find the event that predicts revenue. Look at your paying users and work backward. Which early action did most of them take in the first day or two? That's your CPA event. A tutorial completion is often too easy. A first purchase may be too rare. The useful event usually sits in between.
- Switch to CPA when that event fires often. A CPA campaign needs enough events to learn from. If the event barely fires, pick one a step earlier in the funnel.
- Move to ROAS when revenue is steady. Google's own guidance for App campaigns is to start on Maximize Conversions or Target CPA and switch to Target ROAS once you reach a stable volume, typically 30+ conversions in 30 days, with at least 3 to 4 weeks of conversion value history (Google Ads Help). Other platforms have their own thresholds, but the logic is the same.
- Set the first ROAS target from what you've already achieved. Google recommends using the achieved ROAS of a comparable campaign (same app, event, conversion window, location, and language) as the starting target, not the number you wish you had. A higher target makes the campaign more selective, so if you set it too high, volume drops (Google Ads Help).
You don't have to retire the earlier campaigns. Plenty of teams keep a CPI campaign running in a new market while a ROAS campaign does the heavy lifting in a proven one.
How Edge226 prices outcomes
Edge226 pricing is tied to outcomes (installs, in-app events, subscriptions, and purchases) rather than impressions. Campaigns run across in-app, CTV, and rewarded, and CTV campaigns optimize toward CPI, CPA, or ROAS (Edge226; Edge226 CTV).
Measurement runs through the MMP you already use, including AppsFlyer, Adjust, Singular, Branch, Kochava, and Airbridge, so bidding and reporting run on the same event data.
FAQ
What's the difference between CPI and CPA?
CPI charges or optimizes for each install. CPA charges or optimizes for a specific action after the install, such as a registration or purchase. CPA costs more per user but tells you whether the installs bring value.
How is ROAS calculated?
ROAS is revenue (conversion value) divided by ad spend, usually shown as a percentage. $5,000 in revenue from $2,500 in spend is a 200% ROAS.
When should I switch from CPA to ROAS bidding?
When you have steady revenue events with values attached and enough of them to learn from. For Google App campaigns, Google suggests a stable volume, typically 30+ conversions in 30 days, and at least 3 to 4 weeks of conversion value history.
Is a higher CPI always worse?
No. A higher CPI from users who pay or stay longer can beat a cheap CPI from users who churn in a day. Judge acquisition cost against what those users bring in, not on its own.
Choose the right model for your app
If you're not sure which stage you're at, or you're ready to move to the next one, get in touch. We'll look at your event data and tell you where to start.

