The short version

A cheap install can become an expensive paying customer when fewer users reach value or payment. Compare the same acquisition cohorts at the same age, using a defined payment outcome. The worked example below shows how the ranking can change twice, and how to investigate before moving budget.

Choose the outcome before ranking campaigns

If one campaign brings cheaper installs, your next question is how many of those users reach the outcome the business needs. For a subscription app, that may be a first payment after a useful product experience. A lower install cost can coexist with a higher cost per payer. Neither number, by itself, establishes profitability.

This guide follows a subscription app from acquisition to a first payment that has not been fully refunded. It is a proposed analysis you can adapt, not a universal app-growth model. An ad-funded game needs a different commercial outcome, such as revenue earned over a specified observation period with the relevant costs considered.

Sketch the actual path through your product: installation, first useful task, trial if one exists, and first payment. Define the useful task in product terms. A planning app might deliver its first value when someone creates and saves a usable plan. A screen view is easier to count, but it does not establish that the user accomplished that task.

Include the route users really take. If some subscribe without a trial, keep that branch visible instead of declaring them missing from the funnel. The purpose is to locate a decision: investigate acquisition, repair an experience, improve measurement or wait for an agreed outcome window.

Calculate what each campaign actually acquired

Consider two hypothetical campaigns for the same subscription app. Each spends $1,000 on media. Assume their acquisition cohorts have reached the same day-30 cutoff, the install definition is consistent, and their first-time payers are counted once. These figures are invented to demonstrate the calculation, not client results or benchmarks.

Same media spend, different acquisition outcomes
MetricCampaign ACampaign B
Media spend$1,000$1,000
Installs1,000500
Cost per install$1$2
Unique first-time payers1025
Install-to-payer rate1%5%
Media cost per first-time payer$100$40

A has the cheaper install. B has the cheaper first-time payer. The difference follows from the denominator: divide spend by installs for CPI, or by unique first-time payers for payer cost. With these definitions, payer cost also equals CPI divided by the install-to-payer rate expressed as a decimal. For B, $2 ÷ 0.05 = $40.

Do not move budget on this table alone. We have not considered payment value, refunds, renewal behavior or the cost of serving users. The campaign audiences might also differ. The table identifies a more relevant commercial question; it does not answer every part of it.

Distinguish a paying person from a payment event

Write the counting rule before exporting data. Five payment events could represent five first-time payers, one subscriber renewing, duplicate instrumentation or some combination. Decide how a customer is identified across devices and accounts, and acknowledge where you cannot reliably deduplicate.

For this example, count each first-time payer once and attach them to the defined acquisition cohort. Keep transaction records separately so a refund can be matched to the relevant payment. Exclude sandbox purchases and document failed payments. Do not treat the presence of a “purchase” event as proof that money was collected and retained.

Firebase's iOS event-logging documentation explains logging events and parameters for analysis. That instrumentation can help follow product actions; it does not by itself establish that your events are correct or reconciled with billing. Validate a permitted test journey from the product action through the recorded event and transaction, including duplicate and failure cases.

Keep unmatched outcomes visible. If privacy restrictions or missing identifiers prevent a reliable campaign match, report the aggregate payment outcome separately from the attributed view. Do not allocate unknown customers to whichever campaign currently looks best.

Compare users at the same age

A cohort is a group with a defined starting event during a defined acquisition period. To compare payment outcomes, give the groups the same opportunity to progress. Yesterday's users have not had the same time to finish a trial as last month's users.

Choose the observation window from the actual journey. If a payment cannot occur until a trial ends, an earlier review can examine onboarding but cannot settle the payer-cost question. State the cohort dates, observation window, data cutoff, time zone and currency beside the result. Day 30 here is an illustrative choice, not a recommendation for every app.

AppsFlyer's cohort documentation distinguishes partial and complete periods, and notes that calendar-based periods can differ from periods measured from each install timestamp. Check those definitions before treating two dashboards' “day 7” columns as equivalent.

Also check the population. Keep new-user acquisition separate from re-engagement when the question is about acquiring new customers. Compare markets, subscription offers and acquisition sources at a level that can change the decision, while showing counts so small groups do not create an illusion of precision.

Check whether the first payment survives

Extend the hypothetical example. By the agreed day-30 cutoff, none of A's 10 first-time payers has received a full refund, while 20 of B's 25 first-time payers have. Assume no partial refunds. A now has 10 payers with a retained first payment; B has 5. The respective media costs per retained first payer are $100 and $200.

The ranking changes again because the outcome changed. These deliberately extreme illustrative refund counts make the arithmetic visible; they are not a claim about typical app behavior. “Retained first payment” describes a payment adjustment, not user retention or a guarantee of future renewals.

You now have a reason to investigate B's refunds. Its acquisition promise may have attracted expectations the app does not satisfy. There could instead be a billing issue, a different offer, incorrect refund matching or another explanation. Review transaction assignment and available refund reasons before attributing the pattern to the campaign.

For a budget decision, bring in net proceeds under your agreed accounting definition, applicable fees, service costs and the observation period for further payments. State which costs are included. Media-only payer cost should never quietly become an all-in customer acquisition cost in the next slide.

Use the weak transition to choose an investigation

Once the records are credible, inspect the path between acquisition and payment. Read these patterns as questions to investigate, not automatic diagnoses:

  • Installs rise, first useful tasks do not: replay the advertised promise and the first-run experience. Check whether the task is discoverable and functional for the affected device and app version. Confirm the event itself works.
  • Useful tasks occur, trial starts lag: examine when the offer appears, what users understand they will receive and whether the product route needs a trial at all.
  • Trials start, first payments lag: separate cohorts that have not reached the billing point from completed trials. Review available cancellation and payment-failure evidence before rewriting ads.
  • First payments arrive, refunds rise: inspect promise, delivery and billing together. A stronger checkout conversion rate would not resolve a product or expectation problem.

Start with the largest decision-relevant gap that you can investigate reliably. Reproducing a broken step on a particular app version may be more useful than slicing a handful of payers into many audience segments. If event coverage changes after a release, repair the comparison before interpreting the apparent behavioral shift.

Record competing explanations. A change in country mix or pricing during the same period can affect the outcome you are trying to explain. An observed association identifies work; it does not prove that the ad or onboarding change caused the result.

Turn the diagnosis into a bounded test

Suppose the product path works, but an ad promises a fully automatic result while the app requires a guided setup. A useful next test is whether showing that setup before the click changes who arrives and completes the first useful task. This is a hypothetical test proposal, not a claim that such a mismatch exists in your app.

Define the changed promise, eligible audience, comparison and evaluation period in advance. Keep the offer and product experience stable where possible. Record unavoidable simultaneous changes. Use an appropriate experiment design if you need a causal conclusion; a simple before-and-after view leaves alternative explanations open.

Choose the primary outcome and protective checks. First useful-task completion might provide an early signal, with mature payer cost and refund-adjusted outcomes reviewed later. A higher CPI could be acceptable under a justified commercial model, but a lower CPI should not overrule worse downstream evidence.

Set the test's spending boundary and review condition with the decision owner. There is no universal number of installs that makes every payer-cost comparison reliable. Sparse payments, variable value and the consequences of a wrong decision affect the evidence required. If the result remains uncertain, document that uncertainty and decide whether another bounded test is worth the cost.

Build one cohort record your team can challenge

Use the following record for the next acquisition review. Each field should point to an agreed definition or source, so another person can reproduce the calculation.

App acquisition review record
  • Population: acquisition event, dates, new or returning users, market, platform and app version.
  • Observation: cohort age, cutoff, time zone and which outcomes remain incomplete.
  • Spend: amount, currency, included expenses and allocation rule.
  • Journey: installs, unique first-value users, relevant trial users and unique first-time payers.
  • Adjustments: duplicates, failed transactions, full or partial refunds and unmatched records.
  • Decision metric: named numerator, denominator, result and underlying counts.
  • Next step: evidence gap, proposed investigation or test, owner and review condition.

If the billing outcome is trustworthy but campaign assignment is incomplete, say so in the record. If the cohort is immature, schedule the mature review and use the early view only for the questions it can answer. This prevents a precise-looking CPI from carrying more authority than the evidence supports.

For the broader meeting structure, use our marketing reporting decision record. To discuss your app's acquisition and measurement path, see performance for apps or send us the question through the contact form.

Sources & further reading

← Back to all articles