CPA (cost per action) measures the cost of one user completing a defined post-install action, not just installing. The "action" is whatever event you've configured as the optimization goal: trial start, account registration, first session length > 5 minutes, level-10 completion, first purchase. Because not every install reaches the action, CPA is always higher than CPI — sometimes 2× higher, sometimes 20× higher, depending on how many installs flow through to that event.
CPA / CPI ratio is a funnel-efficiency metric. A 5× ratio means 1 in 5 installs reach the action; a 20× ratio means 1 in 20. Mature UA programs track this ratio over time — a rising ratio means installs are converting less efficiently (worse targeting, weakening creative-to-product fit, or a product change that broke activation). A falling ratio means the funnel is improving.
When to optimize for CPA vs CPI
- CPI: when install volume is the constraint and downstream behavior is predictable. Hyper-casual games, mass-market utilities.
- CPA: when install ≠ activation, and you need the ad network to filter low-intent installs out. Subscription apps optimizing for trial-starts, finance apps optimizing for KYC-completed users, content apps optimizing for content-engaged users.
The trade-off: CPA optimization needs more data per ad-set than CPI optimization (the network needs ~50 actions per week per ad-set to learn). If your action is too rare, CPA optimization fails — use a higher-funnel proxy event.
Pass CPA signals back to ad networks. Meta, TikTok, AppLovin all accept post-install conversion events as optimization signals. Configure your MMP (AppsFlyer, Adjust, Singular) to fire these events server-side as users hit them — and let the ad platform's algorithm bid based on which users will likely complete the action, not just which will install.