CPI jumps. One person blames the auction. Another opens the creative report. Someone else suspects the store, the audience or tracking. Ten minutes later, the team has more hypotheses than it started with.
The problem is not a shortage of possible causes. It is that “Why did CPI increase?” expands the search space before the team knows which acquisition mechanism actually moved the number.
The first output is not an explanation
The first useful output is a routing decision: investigate CPM, CTR or click-to-install—and temporarily stop discussing the branches that contributed little to the movement.
That distinction matters. Causes are open-ended. Contributions are bounded by the metric structure. You are not proving why performance changed. You are deciding where further investigation has the highest information value.
List auction pressure, fatigue, targeting, store conversion, tracking and every recent change.
Quantify which acquisition component moved CPI, rank the branches and park the weak ones.
Only now do we need the formula
For consistently defined impressions, clicks and installs:
CPI is not an independent mechanism. It is the combined result of impression cost, click creation and click-to-install conversion. The formula is not the method; it is the proof that the search space can be decomposed.
Turn three moving charts into one contribution vector
Products are awkward to compare as contributions. Logs turn the relationship into an additive diagnostic:
Now every component has a signed contribution to the same total movement. The team can compare them directly instead of describing three charts independently.
An ordinary reading says that every component deteriorated. The contribution vector tells us how much each movement mattered.
CPM and CTR account for almost 90% of the absolute movement. That does not prove auction pressure or creative fatigue. It does something more useful at this stage: it tells the team to prioritize the CPM and CTR branches and park most click-to-install explanations.
The 10-minute compression protocol
- 01
Freeze the comparison
Use comparable periods, definitions and mature install windows. The method cannot rescue a denominator that is still arriving or an event that changed definition.
- 02
Build the contribution vector
Calculate the signed log contribution of CPM, CTR and click-to-install. The signs matter: a CTR improvement offsets CPI growth; a CTR decline adds to it.
- 03
Rank absolute contributions
Order components by absolute contribution. This prevents two large opposing movements from disappearing inside a small net CPI change.
- 04
Keep the smallest useful branch set
Retain the fewest components that explain roughly 80–90% of absolute movement. Park the remaining branches until evidence brings them back.
- 05
Write the routing decision
State which component or components move forward, which are parked and how much of the observed movement the retained set covers.
Do not let the net change hide opposing movements
If CPM adds 20 log points while better CTR removes 15, net CPI changes by only five. Ranking components by their share of the net would be misleading. Use absolute contributions to prioritize investigation, while preserving the sign to show whether each component amplified or offset the result.
This is also why a fixed rule such as “investigate only the largest component” is too crude. Keep the smallest set that explains most absolute movement. Sometimes that is one branch. Sometimes two large opposing branches both matter.
What actually moved your CPI?
Enter two comparable periods. Nothing is uploaded or stored.
Know where this article stops
Contribution is not localization and it is not causality. If CTR explains most of the movement, the next question is where that CTR contribution concentrates: geo, placement, creative, audience, OS, publisher or time. Only after localization should the team test an explanation.
Two scope gates
The install window is immature: apply the existing cohort-maturity rule before comparing CPI. Contribution decomposition cannot repair conversions that have not arrived.
Platform and backend disagree: route the incident to a tracking diagnostic. Do not use an unstable install denominator to prioritize UA hypotheses.
If the retained branch may have lost attribution credit rather than business impact, use the channel-cut diagnostic. If a model is about to turn that movement into a budget claim, run the six-gate causal iROAS release standard before acting on it.
Sources and limits
- Google Ads: clickthrough rate definition. Used for the clicks-to-impressions definition of CTR.
- Google Ads: conversion lag reporting. Used for the cohort-maturity scope gate.
- AppsFlyer: discrepancies with third-party platforms. Used for the tracking-consistency scope gate.
- The decomposition is an accounting identity, not causal proof. Use consistent cost, impression, click and install boundaries. Log contributions are additive; the equivalent arithmetic CPI change is exponential, so log points should not be presented as ordinary percentage-point additions.