July 3, 2026
Why your app's cost per install (CPI) is so high
If your app’s cost per install keeps creeping up, the instinct is to blame the algorithm or the auction getting more expensive. Sometimes that is part of it. But most of the time a high CPI comes down to a few specific, fixable things, and once you see them you can usually bring it down hard. On one app I worked on we took CPI from $4.12 to $1.97, a 52% drop, without spending a cent more.
Before any of that though, one uncomfortable question.
Is your CPI actually high, or is your tracking lying?
On iOS after ATT, most installs are attributed through SKAdNetwork, which is delayed and aggregated. If your tracking is set up badly, Meta undercounts your installs, and an install it never saw makes every install it did see look more expensive than it really was. So before you tear apart your campaigns, confirm your install and purchase events are actually firing and matching. A surprising number of “high CPI” problems are really “broken tracking” problems wearing a costume.
Assuming your numbers are real, here is what actually drives CPI up.
The real causes of a high CPI
Your creative is not stopping the scroll. This is the single biggest lever, by a mile. CPI is downstream of your click-through rate and your cost per click. Weak creative means low CTR, which means Meta charges you more to reach the same people, which means a higher CPI. If you are testing two or three tired ads, that is your problem right there.
You are optimising for the wrong event. If you optimise campaigns for installs, Meta will happily find you the cheapest installs it can, and cheap installs are usually low quality people who will never pay. Your CPI looks great and your revenue does not move. Optimise for a real value event instead and your CPI will often go up while your cost per paying user goes down. That is a good trade, even though the CPI number looks worse.
Your app store page is leaking. The ad gets the tap, but the install happens on the App Store or Play Store, not in the ad. If your store listing, screenshots, or first impression are weak, people tap the ad and then bounce off the store page. You paid for the click and got no install, so your CPI climbs even when your ads are cheap. A high tap to install drop off is one of the most overlooked CPI killers.
Your account is retargeting people who already installed. This one is common and quietly expensive. If your campaign structure is aimed at people who already have the app, Meta is spending your budget to reach an audience that cannot install again. On one account I took over, that single structural mistake was wrecking the numbers before we split acquisition and re-engagement into separate flows.
Your targeting or budget is fighting the algorithm. Audiences too narrow, budgets too small to exit the learning phase, or too many restrictions, and Meta never gets enough signal to optimise. It defaults to expensive.
The part most people get backwards
Chasing the lowest possible CPI is usually the wrong goal. A $2 install that never opens the app again is worse than a $6 install that becomes a $22 customer. CPI on its own tells you almost nothing about whether you are making money.
So the real target is not “cheapest install.” It is “cheapest install that turns into a paying, retained user.” Once you frame it that way, a lot of decisions that raise CPI on paper are actually the right call.
How to actually bring CPI down
- Fix tracking first. You cannot optimise toward value if Meta cannot see value. Get your install and purchase events clean before anything else.
- Test far more creative. New hooks, new angles, new formats. This is where most real CPI gains come from. Do not just scale budget on one winner, understand why it won and make more like it.
- Optimise for the right event. Once tracking is solid, move off install optimisation and toward the value event that matters. Accept a higher CPI if your cost per paying user drops.
- Fix the store listing. Tighten your screenshots, your first line, and the promise so the tap actually turns into an install.
- Clean up structure. Separate new user acquisition from re-engagement so you are not paying to reach people who already have the app.
- Give it room to learn. Enough budget and enough signal to exit the learning phase, without strangling it with restrictions.
That combination, better creative plus clean tracking plus the right structure, is exactly how we cut that app’s CPI by 52% and scaled its spend from $1.5K to $7K a month while it stayed profitable.
When a high CPI is actually fine
Sometimes it is. If your installs are highly profitable, a higher CPI can be completely healthy, you are just buying valuable users. The only CPI worth worrying about is one that is high relative to what those users are worth. If you do not know that number, that is the first thing to fix.
Bottom line
A high CPI is rarely just “ads got expensive.” It is usually weak creative, install-optimised campaigns, a leaky store page, a messy account structure, or tracking that is quietly lying to you. Fix those, judge every install against what that user is actually worth, and the number tends to come down on its own.
If your app’s CPI is high and you are not sure which of these is the culprit, that is exactly what I pull apart on a teardown call.
Ads live but the numbers do not make sense? That is what I fix.