Apple Search Ads ROAS: formula, costs and trial timing
Calculate Apple Ads ROAS for a subscription cohort, compare CPI and cost per paid subscriber, and account for refunds, fees and trials that haven't converted yet.

Apple Search Ads ROAS is the revenue attributed to an acquisition cohort divided by the ad spend used to acquire it. If $100 of spend brings in $240, ROAS is 2.4x, or 240%.
For a subscription app, the arithmetic is easy. The mistakes usually come from mixing dates, calling gross revenue profit, or counting a trial as though it has already paid.
The ROAS formula
ROAS = attributed revenue / acquisition spend
ROAS (%) = attributed revenue / acquisition spend × 100
Google's ROAS documentation uses conversion value divided by cost. For the calculations here, conversion value means revenue attributed to the selected Apple Ads cohort. These are reporting calculations, not a recommendation to use Google's bidding settings in Apple Ads.
Write a label that tells someone what you counted: "Day-30 gross revenue ROAS, US installs acquired September 1 to 7" is much easier to check than "ROAS: 1.4x".
Keep the following definitions beside your report:
- Which campaign, ad group or keyword acquired the users.
- Acquisition dates and country.
- Revenue observation window, such as the first 30 days after each acquisition.
- Gross revenue or net proceeds, and how refunds are treated.
- Currency and conversion method, if spend and receipts use different currencies.
If spend is zero, the ratio is undefined. Mark it unavailable instead of displaying an infinite return.
A worked subscription example
The following numbers are hypothetical and use a single currency. They describe one acquisition cohort after every user has had a full 30 days to produce revenue.
| Input | Amount |
|---|---|
| Apple Ads spend | $100 |
| Attributed installs | 50 |
| Trial starts | 20 |
| Subscribers with a paid conversion | 8 |
| Gross attributed revenue, before refunds | $160 |
| Refunds from those transactions | $20 |
| Revenue after refunds, before other deductions | $140 |
From those inputs:
| Calculation | Result |
|---|---|
| Gross revenue ROAS: $160 / $100 | 1.6x |
| Refund-adjusted revenue ROAS: $140 / $100 | 1.4x |
| Cost per install: $100 / 50 | $2 |
| Cost per trial: $100 / 20 | $5 |
| Cost per paid subscriber: $100 / 8 | $12.50 |
The $40 difference between refund-adjusted revenue and ad spend still has to cover any remaining fees and costs. Calling it profit would overstate the result.
Count each receipt once. If your revenue export already subtracts refunds, don't subtract the same refund again. Check how transfers and duplicate events are handled before adding up subscription data.
Include collected renewal receipts when they belong to the same acquisition cohort and fall inside the stated observation window. A renewal from an older cohort belongs in that cohort's report.
What counts as good ROAS?
Your break-even point depends on what remains from each revenue dollar and how long you can wait to recover the acquisition cost.
For a simple planning example, suppose 70% of gross revenue remains after all non-ad variable costs. This is an assumed margin, not Apple's fee schedule. Gross revenue must reach $100 / 0.70, or about $142.86, to cover $100 in ad spend. Break-even gross ROAS is therefore about 1.43x.
If you want an additional margin, or fixed costs aren't included, you'll need a higher target. With net proceeds in the numerator, use the costs still excluded from those proceeds rather than subtracting a platform fee twice.
Keep observed and projected ROAS separate. Future renewals may change the result, but a forecast needs its own assumptions about retention, refunds and plan mix. Don't quietly add projected lifetime revenue to a column labeled collected revenue.
CPI, CPA and ROAS measure different things
There is a naming trap in Apple Ads: Apple's average CPA is install-based. It doesn't mean you've acquired a paying subscriber. Apple also distinguishes tap-through and total installs, so keep the attribution basis consistent when comparing reports.
| Metric | What you can diagnose |
|---|---|
| Cost per install | How much you're paying to bring someone into the app |
| Cost per trial | Whether those users reach and start the subscription offer |
| Cost per paid subscriber | What you spend for a user who pays |
| ROAS at a stated cohort age | How much attributed revenue has returned so far |
Cheap installs can still produce little revenue. Conversely, a higher install cost can be workable if those users pay and stay. Read the costs together before changing bids.
A weak trial rate is a reason to inspect relevance and onboarding. Trials without paid conversions call for a closer look at the offer and the elapsed trial period. Those are diagnostic possibilities; the metric alone doesn't establish the cause.
Give every cohort the same time to convert
A person who starts a seven-day free trial today hasn't had the same opportunity to pay as someone acquired three weeks ago. Keep active trials visible, but don't put their expected payments into observed revenue.
For a day-30 comparison, wait until every acquisition included has reached day 30, or use a report that applies an equal age window to each user. Comparing all September receipts with September ad spend can mix renewals from older users with the cost of newly acquired users.
You can still review delivery and cap spending while a cohort matures. The bidding guide covers hold, lower and pause decisions. Waiting for revenue doesn't require leaving a campaign's budget unchecked.
Check attribution before interpreting missing revenue
Ad spend and subscription receipts need a reliable connection. RevenueCat's Apple Ads integration uses an AdServices attribution token to collect Apple's attribution data and lets you follow subscription revenue over time.
Its current documentation flags a September 2026 limitation: AdServices returns attribution: false for installs from ad groups using age or gender targeting. Missing campaign information in that situation doesn't prove the ads produced no paying users. Check the integration and targeting before drawing that conclusion.
Keep unattributed revenue separate. Allocating it to keywords in proportion to spend would create a modeled estimate, so it shouldn't appear as observed keyword ROAS.
The RevenueCat setup guide covers the integration workflow. The subscription campaign guide explains how to use downstream outcomes when planning a test.
Compare keywords before increasing the budget
A campaign average can hide different results. Use the same revenue basis and cohort age for each keyword, and keep country and subscription plan differences visible where the sample allows it.
For a keyword with acceptable mature economics, impression share can help you investigate whether more visibility is available. It doesn't show whether the next users will pay back at a higher bid.
Save the current spend, revenue basis and cohort age before changing anything. Then compare the additional spend with the revenue those newly acquired users produce after the same observation window.
Sources
Research, analyze, optimize
Find the right keywords, study the competitors already earning attention, and turn that into a stronger App Store page.
Available for macOS 14.6 and above
Loved by 544 users
Related articles
See all posts →
When to Pause an Apple Search Ads Keyword
Pause Apple Search Ads keywords when mature spend, weak funnel signal, and poor ROAS show the search intent is not paying back.

How to Track Apple Search Ads Revenue With Superwall
Use Superwall subscription events with Apple Search Ads attribution and spend to measure trials, paid conversions, revenue, and keyword ROAS.

How to Track Apple Search Ads Revenue With RevenueCat
Use RevenueCat revenue events with Apple Search Ads spend to see which campaigns and keywords create trials, subscriptions, renewals, and ROAS.