Short answer: ROAS (return on ad spend) is attributed revenue divided by ad spend. Attribution is not proof that the ads caused all that revenue. For an app, that revenue arrives over weeks or months, so ROAS is always tied to a window: D7 ROAS compares a cohort’s revenue through the defined day-seven window with its acquisition spend. There is no universal “good” ROAS; the right target is the one your own margins and payback period allow, and campaign comparisons require a consistent attribution and revenue basis.
Page Contents
How do you calculate ROAS for an app?
ROAS = attributed revenue ÷ corresponding ad spend.
For an acquisition payback analysis, calculate it by cohort: take the users who installed on a given day (or week) from a given campaign, add up the revenue those users generated within the window, and divide by the corresponding period’s acquisition spend. Keep the spend and install attribution basis consistent, especially where impressions, installs and reports use different dates. For example, if a campaign spent $10,000 on Monday’s installs and those users generated $3,500 through your defined D7 window, Monday’s D7 ROAS is 35%. If the same users have generated $9,000 by day 30, D30 ROAS is 90%.
Two choices change the number, so make them once and write them down:
- Gross or net revenue. Revenue reported by an MMP or ad platform is often before store fees, depending on how your app sends it. Apple and Google take a commission that varies by store, programme, region and product type (see Apple’s Small Business Program and Google Play’s service fees). Define net revenue explicitly, including the fees, refunds and taxes you subtract. Net revenue after store fees still is not profit after all servicing and operating costs.
- Which revenue. In-app purchases, subscriptions, ad revenue, or all three. If you want total-monetization ROAS, include ad revenue as well as purchases; a purchase-only ROAS answers a narrower question.
If you run a subscription app, you can work out cohort ROAS from your own App Store data with our App Store Connect ROAS calculator.
What is the difference between D1, D7 and D30 ROAS?
They use the same calculation over different post-install windows. Check your reporting tool’s day indexing and whether the label means cumulative revenue through that day or a rolling 24-hour interval; conventions can differ. Early windows tell you sooner; later ones tell you more.
- D1 and D3 are early warnings. Useful for spotting a broken campaign or a weak ad quickly, but for many apps the first days hold only a small part of what a cohort will eventually earn.
- D7 can be a useful operating signal if your own history shows it predicts later value. Trials longer than that window need a different interpretation.
- D30 and beyond captures more mature revenue. Use it to check earlier forecasts and guide ongoing campaigns, rather than waiting for it before every decision.
The way to connect them is your own curve: from past cohorts, work out what multiple of D7 revenue a cohort typically reaches by D90 or D180, then judge today’s D7 against the D7 that has historically led to payback. How to calculate LTV without a lifetime of data and how backtesting protects you from unrealistic LTV expectations cover how to build that curve honestly.
What is a good ROAS for a mobile app?
The one your business can afford. A ROAS benchmark from another app tells you very little, because it depends on that app’s prices, margins, store fees, retention, the window it measured over and how long it is willing to wait to get its money back. Copy someone else’s number and you either cut campaigns that would have paid back or keep ones that never will.
Set your own target instead:
- Decide your payback period. How long can you wait for a cohort to return its ad spend: 30 days, six months, a year? That depends on your cash and your goals, not on your category.
- Find breakeven. If the numerator is contribution after all relevant variable costs, 100% means that contribution covers acquisition spend. If you use revenue net only of store fees, other costs still need coverage. For gross-revenue ROAS, derive the target from your contribution margin; do not equate 100% with profit.
- Translate it back to an early window. Using your own curve, find the D7 ROAS that has historically led to breakeven by your payback date. That D7 figure is your working target.
- Revisit it. Prices, paywalls and retention change, and the curve changes with them.
Our scaling guide, when mature campaign economics support it, is about 20% a day if you want to move steadily, or 50% to 100% a week if you want to move fast. If you are trying to grow without ROAS falling, new creative is one of our main priorities, which is covered in how to scale mobile ad spend without losing ROAS.
What is the difference between ROAS and ROI?
ROAS compares revenue with ad spend. ROI compares profit with total cost. Spend $10,000 on ads and earn $30,000 in revenue, and ROAS is 300%; if that revenue cost you $30,000 in total once you count ads, store fees, staff and tools, ROI is zero. ROAS is the better tool for comparing campaigns and channels against each other; ROI is the better tool for deciding whether the business is making money.
What changes when you measure iOS campaign ROAS?
Measurement depends on the method, consent and available signals. Apple’s AdAttributionKit supports up to three postbacks with windows covering days 0 to 2, 3 to 7 and 8 to 35 after first launch. After a window closes or is locked early, the delay is 24 to 48 hours for the first postback and 24 to 144 hours for later ones.
The first postback may contain a fine or coarse conversion value; later ones use coarse values, with availability limited by privacy thresholds. These values encode the app’s schema, rather than exposing a user’s exact revenue record. Separately, eligible Meta AEM reporting can be near real-time. Do not apply Apple postback delays to every iOS metric or assume all campaign revenue is modeled.
A dashboard may combine observed, aggregated and modeled signals. Before acting:
- Compare campaign, channel and platform totals with first-party revenue on matched dates and definitions. Aggregating can reduce noise, but does not automatically cancel attribution bias.
- Investigate whether reported growth is consistent with total revenue after allowing for lag, organic activity and other channel changes. Flat total revenue after more spend is a reason to investigate, not proof that a campaign report is false.
- Use incrementality tests for big decisions. Three approaches to measuring mobile marketing ROAS and our measurement framework after ATT go further.
Frequently asked questions
What does ROAS mean in mobile apps? Return on ad spend: attributed revenue divided by corresponding ad spend, with the revenue basis and measurement window specified. It measures attributed return, not causal lift by itself.
How do you calculate D7 ROAS? Use a campaign’s install cohort, sum revenue through the defined D7 window and divide by the corresponding acquisition spend. Check your tool’s day indexing and allow the cohort and reporting to mature.
What is a good ROAS for an app? There is no universal figure. Work out the ROAS at which a cohort pays back within the period your business can wait, then use your own history to translate that into a D7 target.
Is ROAS the same as ROI? No. ROAS divides revenue by ad spend; ROI divides profit by all costs. A campaign can have a high ROAS and still lose money once store fees and other costs are counted.