Streaming is available in most browsers,
and in the Developer app.
-
Improve your subscriber retention with App Store features
Learn how to minimize churn and win back subscribers on the App Store. Explore App Store data, review different types of subscriber churn, discover tools you can use to enhance your retention efforts, and learn implementation best practices.
Resources
-
Download
Bryan: Hello and welcome.
Today we're going to discuss how you can improve your app's subscription retention strategy using the App Store features.
I'm Bryan and I'm part of the App Store Monetization team.
And I'll be joined by Hemant, a developer advocate on our App Store Commerce team.
We'll start by sharing key insights to help you think about managing your approach to subscriber retention.
We'll then walk through the features the App Store provides to help you improve your subscriber retention and provide some sample strategies you can consider to elevate them.
I'll then hand it over to Hemant to discuss engineering considerations.
So, let's get started.
For over 15 years, the App Store has been a safe and trusted place for people to discover and download apps.
You can use in-app purchases to support a variety of business models on the App Store.
Customers trust that purchases made through the App Store are held to high privacy standards, and are encrypted and protected to keep their personal information safe.
Auto-renewable subscriptions have proven to be a popular way for developers to grow their business on the App Store, as evidenced by the continued growth in new subscription starts each year.
Since auto-renewable subscriptions are a recurring revenue model, they have a unique customer life cycle that require monitoring and tracking at all stages.
A customer must first discover your app, either organically on the App Store or through your own marketing channels, before downloading it to their device.
Once in your app, you need to acquire paid subscribers by informing customers of your subscription and communicating the value of the service.
And once they become paying customers, you need to ensure they're consistently engaging with the service and provided with ongoing value.
While these stages are important for scaling your business, we've observed the most successful subscriptions to have thoughtful strategies in place to make sure they're retaining customers longer.
The classic way to think about this is by imagining your subscription service as a leaky water bucket that's been punctured with holes.
If you spent all of your time and resources filling up your bucket or acquiring new subscribers, you would slowly lose water, or subscribers, over time.
However, you can help remedy and address this by focusing your efforts to plug some of these holes to effectively help retain more of your subscribers.
And one of the big benefits of retaining customers longer is that it increases your revenue.
When a customer acquired on the App Store stays subscribed to your app for more than one year, your proceeds increase from 70 to 85 percent in year two.
One of the main metrics you can monitor to understand your subscriber retention is your churn rate.
Churn occurs when a customer's subscription comes to an end and does not auto-renew.
This can occur for a variety of reasons, which fall into two categories.
Voluntary, which is when a customer chooses to cancel their subscription themselves.
And involuntary, which occurs when a customer doesn't intend for their subscription to end.
Customers may voluntarily churn from your subscription for a variety of reasons.
For example, if your service isn't consistently adding new content or features, or if it's intended for shorter-term use.
It can also occur if a customer is no longer able to justify the financial commitment.
Involuntary churn primarily occurs when a customer experiences a billing issue, such as when their credit card expires and their billing details haven't been updated.
There are a number of factors that can contribute to an app's voluntary churn rate, such as where a subscriber is located.
For example, we can see that compared to the United States, churn rates tend to be higher in mainland China, where the concept of an auto-renewing payment is less common.
Similarly, churn can vary depending on an app's category.
Let's take a look at the differences between a few sample categories.
On the lower side of the spectrum, health and fitness apps tend to have lower median churn rates because customers oftentimes commit to services for longer periods of time to help achieve their goals.
And music apps come with a deep library of content that customers can consistently find value and engage with.
On the other hand, some categories might see slightly higher median churn, like entertainment, which customers oftentimes churn from when their favorite shows have ended.
And lifestyle apps, which is a category primarily made up of dating apps that are designed to no longer be needed once a romantic goal is met.
However, involuntary churn is not necessarily correlated to factors like region and category, as it's not linked to customer behavior.
Here you can see the involuntary churn rates from some of our top worldwide apps.
As we'll discuss in a moment, the App Store does a number of things on your behalf to help combat involuntary churn and keep these numbers low.
Keep in mind that these data benchmarks are directional and include a wide range of apps.
Each subscription is unique, and metrics for your specific app may vary.
So now you might be wondering how to quantify the impact of improving your retention.
Let's look at an example to visualize.
This app starts out the year with a cohort of 10,000 subscribers.
If they observe an 85 percent retention rate for the cohort every month through the end of the year, they'll end the year with 1,673 subscribers.
This equates to a loss of nearly 83 percent of these subscribers.
If they improve their retention rate to 90 percent each month, they'd end the year with 3,487 subscribers.
And if they improved it to 95 percent each month, they would end the year with 5,688 subscribers.
This means they would end the year with triple the subscribers they would have had at an 85 percent retention rate.
While this visual is meant to serve as a helpful directional representation, do note that it does not account for every variable in the subscriber life cycle.
Apple provides you with a number of tools to help you track and grow your business on the App Store.
Within App Store Connect, you can use Sales & Trends to view data related to your subscriber retention rate.
You can also download your subscription report to track information about your total paid subscribers and the subscription events report to help understand aggregated subscriber updates.
And App Analytics provides you with retention benchmarks.
This can help you understand how your specific app performs against a cohort of similar apps in usage retention, which can help you directionally understand how much time your customers spend engaging in your app.
Now that we've discussed the importance of retention, let's talk about some of the features the App Store offers to help you minimize churn and support retention.
The App Store has a number of features to help you retain your subscribers for longer.
Billing retry and billing problem message are two tools that are automatically initiated for all subscriptions and don't require any additional implementation work.
And billing grace period and subscription offers are tools you can choose to adopt to help amplify your subscriber retention strategy.
Let's start with an overview of the features the App Store does on your behalf.
Billing retry is a feature that Apple automatically provides to help you to recover failed renewals and prevent involuntary churn.
In the event of a payment failure, a customer is automatically entered into the billing retry state, where they have 60 days to recover their subscription.
During this window, Apple attempts to collect payment from the customer through a number of communication methods, such as the App Store push notification shown here.
If the customer is recovered within 60 days, their subscription resumes and they continue to accrue their days of paid service, which can help you increase your proceeds to 85 percent.
Here's a visual to help explain this further using a customer on a monthly subscription.
Let's say at the end of the term, their credit card information on file has expired.
Without a valid payment method, their renewal fails and they automatically enter the billing retry state for up to 60 days.
It then takes the customer 10 days to update credit card information.
And after they've done so, their subscription is successfully recovered and a new billing date is established on the date of recovery, which is what all subsequent renewal dates will be based on.
During the 60-day billing retry window, Apple attempts to notify customers of their billing issue through email, push notification, and an App Store banner.
If a customer selects any of these methods, they will be automatically taken to their device settings to update their payment details.
And Apple has developed a methodology to effectively use these channels to notify customers of the billing issue at multiple points throughout the entirety of the 60-day window.
As you can see here, customers are notified by email and push notification at multiple points throughout the window, while the App Store banner goes live at the start of the period.
The billing problem message takes the functionality of billing retry a step further by providing customers in the billing retry state a low-friction solution to update their payment instrument details within the app that also prevents involuntary churn.
If a customer tries to use your service after entering the billing retry state, they will automatically be notified of the billing error and be prompted to update their payment details.
This both alerts the user of the issue and provides a simple way to resolve it without needing to leave your app and navigate to Settings.
Now that we've covered what Apple does to help you keep subscribers, let's discuss features you can implement to help elevate your retention strategy.
Billing grace period helps you prevent lost revenue while improving your involuntary churn rate.
This feature builds on the functionality of billing retry, allowing customers who have encountered a billing issue to retain access to their subscription while the App Store tries to remediate the issue with them.
This means that rather than immediately losing access to your service, customers can still access it while Apple attempts to recover the subscription on your behalf.
This can be helpful for you since customers that resubscribe during the grace period retain their original renewal date, meaning you won't accrue any unpaid days of service.
Best of all, billing grace period can easily be implemented within App Store Connect, which Hemant will walk you through in a moment.
Billing grace period is also configurable to help fit the needs of your business.
You can apply the grace period to all of your active subscription plans, or choose to exclude customers in a free trial so that it only applies to those on a paid plan.
You can also choose to set the grace period to be 3, 16, or 28 days long.
Keep in mind that the more time you give a customer to resolve their billing issue, the higher your chances will be of reestablishing a subscription during the grace period.
In fact, when looking at successful subscription recoveries over time, we see that 40 percent of customers correct their billing information within three days of the billing issue being recognized.
The number of billing recoveries jumps to 75 percent within 16 days and up to 90 percent within 28 days of the billing issue being recognized.
Let's use another visual to explain how this feature works.
As with our previous example, the customer's credit card information has expired, causing the renewal to fail.
With billing grace period, the developer has now carved out the first 28 days of the billing retry period to reengage customers without impacting billings.
During this time, customers will still be able to access their subscription.
It then takes the customer 14 days to update their credit card information.
After they've done so, their subscription is reestablished, and they will remain on the existing billing cycle so you won't lose any days of paid service.
We've seen developers successfully use billing grace period to recover and save subscription plans.
And in the past year, we successfully recovered nearly 80 million involuntarily churned subscriptions for developers who have enabled the billing grace period feature.
Finally, subscription offers can be an effective way to retain customers for longer and improve your voluntary churn rate by surfacing free content or enticing discounts to your app.
App Store has two distinct offer features to help retain your customers for longer.
Promotional offers is a feature that allows you to give custom cohorts of existing or previous subscribers a free or discounted subscription for a specific duration distributed inside of your app.
And offer codes equip you with additional flexibility for merchandising offers both inside and outside of your app.
There are a few key scenarios to consider in order to create relevant subscription offers that entice customers to stay subscribed to your service for longer.
You can use offers to save low-engaging customers from canceling their subscription.
And you can also use offers to try and reengage customers that have already turned off auto-renewal for your service.
Some of these customers might still have remaining days of service to enjoy your subscription, while others might have fully churned from the subscription already.
Let's now discuss some strategies to help engage customers in each of these three scenarios.
You may have active customers who still have auto-renew enabled, but are at risk of canceling their subscription due to low engagement in the product.
This is a critical opportunity to save customers from turning off auto-renew and churning from your service.
You can use these offers as opportunities to communicate the value of your service, or point customers to new features and capabilities that they may not be aware of.
You can provide them with a free period or offer to upgrade or downgrade them to a different product that may be more suitable for their desired usage.
It's most effective to distribute these offers outside of your app, such as in emails or push notifications, to improve your chances of the customer seeing them.
Here's an example from the hypothetical app Ocean Journal.
They've sent an email to a low-engaged customer with an offer to enjoy the next month of service for free.
They've contextualized the message with an announcement of a new subscription feature that allows customers to access content offline.
If a customer has already turned off auto-renew but still has access to your subscription, you can surface offers to attempt to prevent them from fully churning and losing service.
Many customers find themselves in this scenario, as they tend to cancel their plans in advance of their renewal date.
In fact, over 90 percent of customers cancel plans with at least two days of service remaining, and many continue to return to the app while throughout the remainder of the term.
You can leverage this window to provide offers for discounted service that motivate customers to continue subscribing while showcasing the value of your subscription.
Consider distributing these offers in your app to reach the customers who are still utilizing aspects of your subscription.
Here's another example from Ocean Journal.
They're presenting an offer for 50 percent off of a customer's next month of service in the home screen of their app.
In the message, they've highlighted the customer's progress towards their monthly surfing goal, and clearly communicated the subscription's impact in helping them achieve it.
In the event that a customer fully churns from your subscription and loses access to your service, you can use subscription offers to try and win them back.
However, it's important to determine the optimal time after a customer churns to begin providing discounts for your specific app.
Keep in mind that providing discounts as soon as your customer's subscription ends may lead to unintended behavior, as users may cancel their plans in order to receive discounts.
Once you begin distributing these offers, consider giving deeper discounts as the amount of time churned continues to grow.
And since these customers are likely no longer using your app, the most effective method to distribute these offers are through emails and push notifications.
Here's how this might look if Ocean Journal surfaced preexisting customers with an offer.
They're using push notifications to distribute an offer for 50 percent off the next three months of service.
If the customer dismisses it, they can consider sending another offer in the future.
But they should avoid sending the customer too many offers to prevent the behavior from feeling spammy.
So billing retry, billing problem message, billing grace period, and subscription offers are some of the ways the App Store helps retain your customers for longer.
Now that we know what these features are and how to use them, Hemant will discuss how to successfully engineer them.
Hemant: Thank you, Bryan.
In this section, we'll discuss the best practices you'll need to consider when implementing App Store features to prevent churn and retain subscribers for your app.
Before the subscription renewal, the App Store checks for any billing issues that might delay or prevent the subscription from being automatically renewed.
These checks include ensuring a customer has an active and valid payment method on file to process the subscription renewal.
In case they do not, the App Store proactively notifies the customer to update the payment method on file before the subscription renewal.
To deter fraud, the App Store conducts fraud and risk checks on the customer profile and payment method on file.
And lastly, when applicable, the customers are also notified about upcoming subscription renewal.
In addition to all these checks, App Store provides a set of features to prevent churn and retain subscribers, which Bryan covered earlier.
Let's begin by taking a look at the best practices you need to consider when implementing these features, starting with features such as billing retry and billing problem message.
These features are a platform benefit and are enabled for you by default to prevent involuntary churn.
A subscription automatically enters a billing retry period for 60 days when it fails to renew due to payment issue.
During this period, Apple attempts to recover a subscription.
And depending upon the scenarios, the subscription status may change.
Let's cover scenarios that you need to account for when a subscription is in a billing retry period.
Here, we have a customer whose subscription failed to renew due to payment issue and is in a billing retry period.
To identify a subscription in billing retry and to stop providing service, you can use the StoreKit renewal state property inBillingRetryPeriod.
This allows you to identify subscription status and determine access to service without a need for a server.
However, to receive updated subscription status in real time you can choose to enable App Store server notifications.
Once enabled, you'll receive a notification type DID_FAIL_TO_RENEW when a customer enters billing retry.
Now, a subscription in billing retry can be recovered anytime over the period of 60 days.
And once recovered, you need to start providing service to the customer.
So in this scenario, consider the customer has updated their payment method on file, which renewed their subscription.
Once a subscription is recovered, the renewal state will be updated to subscribed.
And you'll receive notification DID_RENEW with subtype BILLING_RECOVERY indicating a successful renewal.
Since the subscription is recovered in the billing retry period, you'll have a new subscription expiration date.
Now, for a scenario when the App Store reaches the billing retry limit and is unable to recover the subscription, the subscription expires and the renewal state will be updated to EXPIRED.
And you'll receive App Store server notification EXPIRED with subtype BILLING_RETRY.
In addition, some of the best practices you need to consider for subscription in billing retry include: is to not merchandise a customer if they are already in billing retry since the App Store is in process of recovering the subscription.
This is also important if you provide service cross platform.
As Bryan mentioned earlier, if the customer is recovered within 60 days, they continue to accrue their days of paid service, which can help you increase your proceeds to 85 percent.
It's important to know that the customer can opt out of billing retry by cancelling the subscription.
In this case, App Store stops the billing retry attempts.
A subscription can also enter a billing retry when you remove an auto-renewal product from sale.
This subscription is not recovered unless the auto-renewal product is cleared for sale again within 60 days.
You can use the StoreKit property expirationReason and expirationIntent on a server to identify subscriptions in this state.
And to summarize, you can validate your app and server implementation using App Store sandbox for a subscription in the billing retry state.
To further accelerate the subscription recovery, App Store sends a billing problem message to customers in app to help them resolve the issue.
You can choose to defer the billing problem message for a customer if you do not want to interrupt their specific app experience.
To do so, you can use StoreKit Message API, property .reason and value .billingIssue.
For more information, see WWDC23 sessions "What's New in StoreKit 2 and StoreKit Testing in Xcode" and "Explore testing in-app purchases." Now, let's discuss the feature you as a developer can adopt to handle the impact of involuntary and voluntary churn.
We'll start by looking into the billing grace period.
To enable grace period configuration for your app, navigate to your App Subscription section in App Store Connect.
This will open up a dialog which will allow you to configure a billing grace period for your app.
You can then select from available grace period duration.
You can also select the eligibility for the billing grace period and select the environment.
You can choose to enable it first in the sandbox or choose to enable it in both sandbox and production.
Your selected configuration will be visible in App Store Connect once you confirm.
Once enabled, a billing grace period begins when subscription fails to renew.
Here are all the billing retry scenarios that we previously discussed.
When you enable the billing grace period, you need to account for additional scenarios in the subscription life cycle.
Now, let's illustrate the scenario for the customer after enabling the billing grace period.
Here, since the grace period is enabled, the customer will retain full access to your app's paid content while Apple attempts to recover the subscription.
To identify a subscription in a billing grace period and to continue providing service, the renewal state will be updated to inGracePeriod and you'll receive notification type DID_FAIL_TO_RENEW along with subtype GRACE_PERIOD.
A customer can recover in the billing grace period with no interruption to your paid days of service and the subscription expiration date remains the same.
Once the customer recovers, the renewal state will be updated to subscribed, and you'll receive notification DID_RENEW with subtype BILLING_RECOVERY.
A customer may not recover in the billing grace period, after which you can stop providing them the service as the customer enters in billing retry.
And the renewal state will be updated to inBillingRetryPeriod and you'll receive notification GRACE_PERIOD_EXPIRED.
Similarly, these additional use cases can also be validated in the App Store sandbox for both your app and server, when you enable a billing grace period.
Lastly, now let's discuss subscription offers.
We'll take a look at these two scenarios.
And I'm going to cover things you need to consider when implementing a relevant subscription offer into your app and server.
In this first scenario, we try to reengage a customer who has turned off auto-renewal, but still has remaining days of service to enjoy your app.
Here we are using promotional offers as our tool to create subscription offers for the cohort of existing subscribers.
To identify subscription in this cohort, you can use StoreKit "RenewalStateProperty = subscribed" and renewal info property "willAutoRenew = false." On the server side, you can use Subscription Status API properties "status = 1" and "autoRenewStatus = 0." In addition, if you have App Store Server Notification enabled, you'll receive notification type DID_CHANGE_RENEWAL_STATUS and subtype AUTO_RENEW_DISABLED in real time when the customer turns off the subscription renewal.
Now, some of the best practices you need to consider when implementing a promotional offer is to merchandise the offer details to the customer using the promotionalOffers property of StoreKit, instead of hardcoding or fetching it from your server.
For promotional offers, it's important to send a signature at the time of purchase, for example, right before merchandising offer.
This will help you to ensure that you have a recent time stamp and are using up-to-date offer configuration.
To streamline the process and to help you generate signature, we have introduced App Store Server Library, which provides you with a framework to securely generate signature on your server.
In addition, it helps you easily adopt App Store Server API and notifications.
To identify promotional offer redemption, you can use JWSTransaction, which will contain offerType value = 2 and the offerIdentifier.
The offerIdentifier will contain the value which you have configured in App Store Connect when setting up the promotional offer.
You'll receive the notification type OFFER_REDEEMED in real time when the customer redeems an offer along with all applicable subtypes.
For more information on promotional offer best practices, watch the WWDC sessions "Meet App Store Server Library" and "Subscription offers best practices." Now, for a scenario when a customer is churned and may not be actively using your app.
To identify subscribers in this cohort, you can use StoreKit: RenewalState property = expired and renewal info property: willAutoRenew = false.
On the server side, you can use Subscription Status API properties "status = 2" and "autoRenewStatus = 0." On App Store Server Notification, you'll receive notification type EXPIRED and subtype VOLUNTARY when the subscription expires.
For this scenario, we are using offer code as a tool to win back the customer for two reasons.
First, it will help you merchandise and provide offers to customers within your app or outside the app.
Second, you can embed the offer code deep link in push notification or emails to begin the offer redemption flow and win back the customer.
For more information on offer code implementation and best practices, watch our Tech Talks "Subscription Offer Codes" and "Optimize subscription for success: acquisition." Now, the App Store provides you with all the helpful transaction information on the device and server that enables you to entitle customers accurately and provide service.
Expanding on that, we introduce new properties in transaction information to help you know your App Store product and offer configuration, which includes properties such as price, currency, and offerDiscountType.
You can leverage these properties to understand your offer redemption details.
You can also leverage the recentSubscriptionStartDate property to calculate the total period the customer was subscribed to a subscription.
This will help you get an idea about customer loyalty and make the decision to provide subscription offer.
Let's take an example.
A customer purchased a monthly subscription on January 25 and continuously renewed over a monthly period.
However, on December 5, the customer decided to disable the subscription renewal, which may result in the subscription getting churned on December 25.
We'll consider this period as a safe period.
During the period, you can make a proactive decision to present a subscription offer to the customer based on their length of the subscribed period.
If the customer chooses to accept the offer, they will renew on December 25.
To summarize, Apple initiated features like billing retry and billing problem message -- and in addition, adopting features like billing grace period and subscription offers -- will help you prevent churn and retain subscribers for your app.
For more information on getting started with subscriptions or details about our subscription tools, you can find auto-enable subscription documentation on developer.apple.com.
This documentation contains all resources and applicable links for your reference in one place.
-
-
Looking for something specific? Enter a topic above and jump straight to the good stuff.
An error occurred when submitting your query. Please check your Internet connection and try again.