Hey notJust Developers,
Monetizing your mobile app is a crucial step in making it sustainable.
The best monetization strategy, especially for consumer apps is the subscription model. It offers a reliable and predictable income stream, month over month. Companies like Netflix, Spotify, Duolingo, and Tinder have built an empire using the subscription model.
Compared to in-app ads, you don’t need millions of users to start making significant revenue using In-app Subscriptions.
With 10k app downloads, you can have 200 paid customers and 2000$ monthly recurring revenue (based on average conversion rate and prices).
In this newsletter, I want to dive deeper and answer some of the most common questions about In-app subscriptions.
- Freemium vs Premium model
- Apple and Google, and some loopholes around them
- Can you integrate 3rd Party Payment providers, ex: Stripe?
- When is the best time to show a Paywall
- The best subscription duration and pricing to maximize revenue
This issue is sponsored by RevenueCat
There couldn’t be a better sponsor than RevenueCat for the topic of today’s Newsletter.
In-app subscriptions are a pain. The code can be hard to write, time-consuming to maintain, and full of edge cases. RevenueCat makes it simple, plus provides analytics, integrations, and tools to grow so you can get back to building your app.
Get started with RevenueCat for free, and save weeks of development time integrating In-app subscriptions.
Freemium vs Premium
A subscription-based model has 2 variations: Freemium and Premium.
With a Freemium model, you offer core features or content for free, and you put some advanced features behind a paywall. For example, Duolingo has a free plan that gives you access to the full learning experience. They have paywalled some small additional benefits, like ad-free, extra streak freezes, etc.
The freemium model works great if you need a large user base because it reduces the friction to use the app. For example, a social media or marketplace needs a large user base to become valuable.
With a Premium model, all (or almost all) the features/content require a subscription. For example, Headspace, a meditation app, is free to download, but it offers only 10 free sessions for free. To unlock the full experience, you’ll have to subscribe.
The premium model is great for apps where the value is easily communicated to the target audience, in a way that they are ready to commit to a subscription without any “test drives”.
Another use case for the premium model is when the cost of running the app increases linearly with every new user. For example, AI apps that integrate with OpenAI incur significant costs for every new user.
Apple and Google
In-app subscriptions MUST be integrated and processed by Apple on iOS and Google on Android. That’s the rule.
They take a 30% fee. Which is a lot, but there is nothing we can do about it.
In some cases, the fee is reduced to 15%. Small business up to $1m/year in their first year is one example.
Can you integrate 3rd Party Payment providers, ex: Stripe?
That’s one of the most common questions when it comes to in-app subscriptions.
The answer is, as always, it depends. But the rules are quite simple.
If the payment has the purpose of unlocking digital content or features, then it must go through the stores.
The exception is when the payment is made for a physical good or service. For example, an e-commerce app can integrate 3rd party payment providers.
With RevenueCat, the payments are still processed by Apple and Google. RevenueCat stays between your app, and different platforms: Apple, Google, Amazon, Stripe. As a developer, this makes it simple to handle subscriptions inside our code, as we are dealing only with one subscription source - RevenueCat.
Loopholes
There are some loopholes around this that some businesses are notorious for using.
If you onboard and process the payments on the web, you have the freedom to use any payment provider there. After the user pays on the web, you can let him download the app and sign in to his account to get access to the full experience.
Audible is using this approach. You buy the audiobook through the Amazon website, and then it magically appears in your digital library in the audible app.
The only caveat is, to never link, mention, or redirect a user from your mobile app to the webpage for payment purposes. That’s against the guidelines. For example, if you are audible, you cannot even write in the app “Go to Amazon and buy the book there and it will appear in your library”.
Disclaimer: I am not an expert and I am not recommending this approach 🫣
Paywalls
Paywalls are a crucial step in the user journey from free to paid.
They are crucial for the conversion rates, which directly impact your revenue.
Paywalls are also an aspect of the app, that is reviewed thoroughly by Apple and Google. There are a lot of rules and guidelines around paywalls. The platform’s primary goal is to avoid developers misleading or taking advantage of users.
It’s very common to go through multiple rounds of changes before Apple approves your paywall. If that happens, at least you can have some free socks 🥲
RevenueCat Paywalls
RevenueCat Paywalls is a library of battle-tested templates that you can integrate in minutes, configure remotely, and easily A/B test to increase conversions. If you want to see them in action, check out this livestream we did a couple of weeks ago.
When to show the Paywall
One of the best times to show the paywall is when the user is in the best mood to subscribe. This is usually after completing an important milestone or achieving something in the app. For Duolingo, the best time to show the Paywall is after finishing a lesson. At that time, the user feels good about learning something new and is in the best mood to make a purchase.
A good strategy is to also show the paywall right after the user has been onboarded in the app. You will be surprised, but a lot of users, if they understand the value of your app from your marketing materials and the onboarding screens, are ready to subscribe. Don’t miss this opportunity.
Lastly, a very good strategy is to tease people with what they are missing by not subscribing. Instead of hiding content or features - blur it out. This creates FOMO (fear of missing out) and makes users want to subscribe to see the info. The blogging website Medium is great at this strategy.
Subscription duration
The subscription period can be weekly, monthly, quarterly, semi-annual, or annual.
You can have multiple subscriptions with different periods, that unlock the same content.
With RevenueCat, that’s super easy to manage. You create Entitlements, that represent the level of access a user will get, and then assign multiple subscription products to one entitlement.
The shorter-duration subscriptions have a lower barrier to entry. The price for one month is lower than for a full year. This means that it’s easier to convert a user with a shorter duration. On the other hand, the churn (users canceling subscriptions) is higher with shorter periods. Every time the user is charged, this makes him re-evaluate if he needs the subscription.
Longer-period subscriptions are harder to convert but have a lower churn rate. Another benefit is that you are collecting the money for one year at once. This can help you, especially if you are running paid ads, as you don’t have to wait for 3-5 months to get the investment from ads back.
You can increase the conversion rate for annual subscriptions, by offering discounts and free trials exclusive for annual plans.
Pricing
The price of your subscription depends on the industry your app targets. There is no one-size-fits-all price that you can use.
I recommend checking what your competitors are charging and starting with a price in that range.
Then, A/B tests different price options, with different durations and free trial periods, and optimizes for revenue.
To give you a very rough idea of the most popular prices, based on the duration, here is the data from RevenueCat’s State of Subscriptions report.
Where to start?
Now that you know more about In-app subscriptions, it’s time to integrate them into your app. For that, you have to:
- Publish your app on AppStore and/or Play Market, if you haven’t already
- Create the In-app Subscriptions on AppStore and/or Play Market
- Create a free RevenueCat account and connect it to your app on the stores
- Choose a template from the Paywall Library and adjust it for your app
- Install the RevenueCat package in React Native and render the Paywall UI with a couple of lines of code
For a step-by-step tutorial, you can check out this video:
Ask me anything
If you still have questions about In-app subscriptions, hit reply and I will try to answer them.
🔴 Join me live
This Friday we will build a MyFitnessPal Clone. It's going to be a tutorial packed with value, so set a reminder and don't miss it out 👇
🔁 In case you missed it
In-app Subscriptions & Paywalls with RevenueCat In this video, we'll incorporate in-app subscriptions and paywalls using RevenueCat and React Native in our app! | | Data Fetching in React Native with TanStack Query This tutorial is a beginner-friendly guide to Data Fetching in React Native using TanStack Query |
Did you learn something new today?
If you found this email valuable, forward it to one friend or coworker who can also benefit from it. That would be much appreciated 🙏
| | Vadim SavinHelping you become a better developer together with the notJust.dev team |