profile

notJust.dev Newsletter

🚀 Monetize your app with In-app Subscription

Published 2 months ago • 6 min read

notJust.dev Newsletter 🚀

Stay up-to-date with the latest technologies and become a better developer

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.

How does RevenueCat work?

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:

video preview

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 👇

video preview

Count down to 2024-03-08T15:00:00.000Z

🔁 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 Savin

Helping you become a better developer together with the notJust.dev team

113 Cherry St 98104-2205, Seattle, WA 98104-2205
Unsubscribe · Preferences

notJust.dev Newsletter

by Vadim Savin

Stay up-to-date with the latest technologies and become a better developer

Read more from notJust.dev Newsletter

notJust.dev Newsletter 🚀 Stay up-to-date with the latest technologies and become a better developer Hey notJust Developers, Exciting news in the world of React Native Animation: The Skia team recently published React Native Skia version 1.0, a significant milestone achieved just 3 weeks ago. In this first-ever stable release, they’ve unveiled 5 super exciting features and enhancements. Rich Text Layouts using the New Paragraph API New Animation Hooks The Atlas API for rendering multiple...

about 1 month ago • 9 min read

notJust.dev Newsletter 🚀 Stay up-to-date with the latest technologies and become a better developer Hey notJust Developers, Last week, I rebuilt the nice Apple Wallet Card animation in React Native using React Native Reanimated and React Native Gesture Handler 🧑💻 In this issue, I want to break down the animation and show what’s possible. I hope this will give you some ideas of interesting animations you can build in your apps. This issue is sponsored by App.js Join us at the 4th edition of...

about 1 month ago • 4 min read

notJust.dev Newsletter 🚀 Stay up-to-date with the latest technologies and become a better developer Hey notJust Developers, A lot of exciting things are happing in the React Native world. But today, I want to focus on 3 things that caught my attention in the last weeks: How React Strict DOM is reinventing cross-platform development The retirement of App Center and CodePush, and what are the alternatives How does the new EU Digital Services Act affect mobile developers Sponsored by IBM StepZen...

about 2 months ago • 3 min read
Share this post