How to set up in-app subscriptions that actually convert

A well-set-up subscription runs through the stores' own in-app purchase systems, is wired with a tool like RevenueCat, and is priced and placed so a user sees clear value and subscribes instead of bouncing.

In short

Most first apps leave money on the table because the paywall is an afterthought or wired wrong. The fastest path is to handle recurring payments through the stores' own in-app purchase systems - required for digital goods - and use RevenueCat to manage products, receipts, and entitlements across both Apple and Google from one place. Price for the value you deliver, not what feels safe: an annual option with a free trial usually converts better than a bare monthly price. And always test the full flow - onboarding, trial, subscribe, restore - before you submit, so review passes and real users can actually pay.

Monetization is the single highest-leverage decision after the app works. Wire the paywall right and the app can earn while you sleep. Get it wrong and even a great app makes nothing, or worse, gets rejected for handling payments the wrong way. The core skill is simple to state and easy to skip: sell subscriptions through the stores' own in-app purchase systems, and manage them with a tool built for it.

The key distinction is between in-app purchases and outside payments. For digital goods and subscriptions, both Apple and Google require you to use their in-app purchase systems - you cannot route a subscriber to an outside checkout to dodge the fee. That is not a limitation to fight; it is the rail every compliant app rides. Wiring it correctly is the difference between an app that takes money cleanly and one that gets kicked back at review.

How the stores handle recurring payments

For anything you charge for inside the app - a subscription, a premium tier, unlocking features - Apple's StoreKit and Google Play Billing are the required payment systems. Both take a cut, but the Small Business programs on Apple and Google drop that to 15 percent for developers under the revenue threshold, which means you keep 85 percent of your revenue when set up right. You define your products (a monthly plan, an annual plan, a lifetime unlock) in App Store Connect and Google Play Console, and the stores handle the actual charge, renewal, and receipt.

Read the whole flow, not just the price. A subscription is not a one-time charge - it renews, it can be in a free-trial period, it can be canceled, refunded, or restored on a new device. Your app has to know, at any moment, whether the person in front of it currently has access. Trying to track all of that yourself across both stores by hand is where most first apps break. That is exactly the problem RevenueCat is built to solve.

Why most first paywalls are wired wrong

The most common mistake is treating payments like a web app - dropping in a Stripe checkout for a digital subscription. That gets rejected, because digital goods must go through in-app purchase. The second common mistake is doing the in-app purchase plumbing by hand: managing receipts, renewals, and entitlements across Apple and Google with custom code. It is fragile, it breaks on edge cases like restores and lapsed trials, and it eats days you could spend on the app.

RevenueCat sits on top of both stores' billing systems and gives you one place to define products, check whether a user has an active entitlement, and see your revenue. Instead of writing receipt-validation code for two platforms, you ask RevenueCat one question - does this user have access? - and it answers. That is why it is the paywall tool taught in the club: it removes the most error-prone part of monetization and lets you ship a working, tested paywall in an afternoon instead of a lost week.

Price for the outcome you want

Pricing a subscription is a choice about value, not a guess. Two honest prices can both be right depending on your app and audience. A bare monthly price is easy to set but often converts worse than an annual plan with a free trial, which lets users try before they commit and rewards them for paying up front. If your app delivers ongoing value, an annual option priced at a clear discount to twelve months, plus a short free trial, usually beats a lonely monthly button. What is wrong is pricing on fear - charging almost nothing because you are not sure the app is worth more.

  1. 1Define your products - create your monthly, annual, or lifetime offerings in App Store Connect and Google Play Console
  2. 2Connect RevenueCat - wire the products into RevenueCat so one entitlement check works across both stores
  3. 3Build the paywall flow - onboarding into a clear value screen, a free trial, then the subscribe call
  4. 4Test the full loop - subscribe, cancel, restore on a fresh device, and confirm access unlocks and locks correctly before you submit

The paywall and the review decision

The most important moment to get the paywall right is before you submit, not after. Apple in particular checks that a paid app has a working restore-purchases option and that the paywall is honest about what it charges. A paywall with no restore path, or a free trial that is not clearly disclosed, is a common rejection. Testing the entire flow on a real device - subscribe, then restore on a clean install - before submitting is the habit that keeps monetization from becoming the reason your app bounces at review.

Reading conversion and retention

Price is only half the picture - the paywall placement and your retention are the other half. Some apps convert well because the value is obvious the moment the user opens them; others need a few sessions before the paywall lands. RevenueCat's dashboard shows you not just revenue but trial-to-paid conversion and how long subscribers stay. A high-converting paywall on a well-timed screen can be priced with confidence. A paywall shown too early, before the user sees value, needs to move later in the flow, not a lower price.

What to track to get better

Monetization improves with data specific to your app and your users. Watch a simple set of numbers: how many installs reach the paywall, how many start the trial, how many convert to paid, and how long they stay. After a few weeks of real users, patterns emerge - which onboarding screens lift conversion, where the free trial length lands best, and which price point real people actually pay. That live, app-specific data is worth more than any general pricing rule of thumb.

Common questions

  • How do I set up in-app subscriptions for my app?

    Define your subscription products in App Store Connect and Google Play Console, then wire them through RevenueCat so a single entitlement check works across both stores. Build the paywall flow - value screen, free trial, subscribe - and test the whole loop, including restore purchases, on a real device before you submit.

  • Why do I have to use in-app purchase instead of Stripe?

    For digital goods and subscriptions, both Apple and Google require their own in-app purchase systems - you cannot route users to an outside checkout to avoid the fee. Using Stripe for a digital subscription is a common cause of rejection. In-app purchase is the compliant rail, and RevenueCat sits on top of it to make it manageable.

  • What is RevenueCat and do I need it?

    RevenueCat is a service that sits on top of Apple's and Google's billing systems and gives you one place to define products, check whether a user has an active subscription, and track revenue. You do not strictly need it, but doing receipt validation and entitlements by hand across two stores is fragile and error-prone, which is why the club teaches RevenueCat.

  • How much of my subscription revenue do I keep?

    Apple and Google take a cut of in-app purchases, but their Small Business programs drop that to 15 percent for developers under the revenue threshold, meaning you keep 85 percent when set up correctly. Enrolling in those programs is a simple step that meaningfully improves your take on every subscription.

  • Should I offer a monthly or annual subscription?

    It depends on your app, but an annual plan with a short free trial usually converts better than a bare monthly price, because the trial lets users commit after seeing value and the annual price rewards paying up front. Many apps offer both. Test what your real users respond to rather than guessing at a single option.

  • Why did Apple reject my app for the paywall?

    Common paywall rejections include a missing restore-purchases option, an unclear free-trial disclosure, or selling digital goods outside in-app purchase. The fix is to wire payments through in-app purchase, add a working restore path, and disclose the trial and price clearly. Testing the full subscribe-and-restore loop before submitting avoids most of these.

More to learn

Keep going on this topic

Learn it, then build with it.

The full curriculum + 7,000 members inside App Store Launch Club for $9/month.