Best practices for your subscriptions and in-app products under the current circumstances
The Google Play team highlights features that help you adjust in-app product and subscription offerings as your business changes
Many of you have asked us for ways to support your users and your businesses during these challenging times. While everyone has been affected in some way, two groups of developers are facing an especially large challenge:
- Developers who provide a public service with their content or services, and
- Developers whose businesses have been adversely affected.
Some of you are currently serving people by offering important content or services at a reduced price, such as medical, health tracking, online learning, meditation, and wellbeing apps. Others have reached out to us to make your entertainment or educational materials available at lower prices to make social distancing easier.
At the same time, some of your businesses’ value propositions to users have been affected, such as sports leagues, event- and ticket-based businesses, and meetup apps.
If your app falls into one of these categories, we have put together some recommendations to help you determine the best way to adjust your in-app product and subscription features. We hope this information will help you make changes as needed.
How you adjust your pricing model will depend on the type of app you offer.
Jump to a section:
Recommended best practices
Best practices for apps providing content or services
If you are looking to lower the price of your services, there are several options you can consider, depending on the type of product and the target user:
- For your existing subscribers, you can issue a partial or total refund for the period that they have been receiving reduced services, or defer billing until you can restart your full offering.
- If you sell one-time purchases in your app, you could create a promotion or modify its price temporarily.
- For new subscribers, you could offer a promotion, free trial, or introductory price. This will let users get a new subscription at the price point you want to offer right now and allow you to re-adjust renewal prices when it’s right for you and your users.
- For paid apps, you can configure a sale for up to 8 days.
Best practices for apps whose businesses have been affected
You may not be able to provide some of the usual digital goods you sell through your app at the moment. We recommend you consider pricing adjustments to acknowledge the situation and to earn goodwill with your customers.
- For subscriptions, you can choose to defer billing until full services are restored. For longer-term subscriptions, you can issue a partial refund equivalent to the period of time your service may be affected.
- Another option you can offer your users is the ability to pause their subscriptions. If you decide to do this, you can try winning them back later with upgrade offers, deferred billing, or partial refunds.
- For one-time purchases or paid apps whose value has been affected, consider issuing partial or total refunds.
- We’ve also seen some developers pivot from their usual subscriptions model to offer new types of content as a one-time purchase. For example, some developers who normally offer access to live events are now offering access to interviews and other recorded content.
If these options don’t work or are insufficient for your use case, let us know how we can help.
Features and implementation
Let’s take a closer look at some of the advanced billing features we mentioned above.
With the Google Play Developer API, you can use Purchases.subscriptions:defer to advance the next billing date for a subscriber. The user will retain full access to the content but will not be charged during the deferral period. The subscription renewal date will be updated to reflect the new date.
Deferred billing allows you to give users free access as part of a bundle or a special offer, such as giving free access to web content to users who subscribe to a print magazine. It can also be used to give free access to customers as a gesture of goodwill. Billing can be deferred by as little as one day and as long as one year per call to the API. You can call the API again before the new billing date arrives to defer billing further. When you choose this action, we recommend notifying the user by email or within the app to let them know that their billing date has changed. This works the same for free trials as it does for current subscriptions.
You can adjust the pricing of your app subscriptions and one-time purchases in the Google Play Console. You can also modify your in-app products via the Google Play Developer API. Current price requirements are documented in the Help Center.
Default price changes are not generally intended to be used as a promotional tool, as they apply to new subscribers and existing ones up for renewal. There are introductory prices, free trials, or promotions available for that purpose. But in the current situation, price changes may be warranted as a temporary solution to offer a special price to all of your subscribers. Regardless, you might be able to leverage promotional features to help you engage your users as well. Here is a summary of capabilities and uses:
Free trials allow you to drive more conversions by offering prospective customers free access to a paid subscription for a set number of days before the user is charged the full subscription price or an introductory price. Many developers are offering their users extended free trials during this time of uncertainty. Offering a free trial could also help you re-engage users that churned.
Introductory pricing allows you to drive more conversions by offering a discounted subscription price to prospective customers for a set number of days or billing periods before the user is charged the full subscription price. This can also be used as a re-engagement tool.
By default, both free trials and introductory pricing can be used once per subscriber, per app, but you can soften this limitation in the Play Console to once per subscription.
For in-app purchases and paid apps, you can apply up to 500 promotional codes per quarter, per app. There are up to 10,000 subscription codes available per app. Promotional code use requires in-app integration.
Full and partial refunds
Using the Play Console website or app, you can view your app’s orders, issue refunds, and manage subscription cancellations for items your users have purchased. Partial refunds can be issued from the Play Console website on a user-by-user basis. Full refunds can be issued from the Play Console app, the Play Console website, or programmatically via the Google Play Developer API, calling Purchases.subscriptions:refund.
If enabled, users can choose to “pause” their subscription from the Google Play subscription center or during the subscription cancel flow. The pause takes effect after the current billing period ends. Billing resumes when the pause period ends, or if the user manually resumes the subscription.
To enable subscription pauses, you will need to:
- Implement account hold
- Activate pause in the Play Console
- Recognize pause states
- Update user communication to reference subscription pauses if they receive in-app or email messaging for declined payment
You can activate subscription pauses without setting up Real-Time Developer Notifications (RTDN), but it will make it difficult to maintain your back-end in sync when a user pauses or restores their subscription (e.g., for cross-platform entitlement changes). Provide easy access to the subscriptions center on the Play Store app for your paused users by deep-linking from your app.
Real Time Developer Notifications (RTDN)
RTDN is a feature that sends your server an instant notification when the subscriber entitlement state changes (e.g., subscription purchased, subscription cancelled, subscription on hold). You can also use these notifications to trigger you to contact the subscriber with appropriate messaging. For example, you may react to a subscriber cancellation by sending a win-back message like, “We are experiencing some difficulties providing our service at the moment. We would love to see you back, so here’s 50% off the normal subscription price.”
You should use RTDN to keep an accurate record of all subscription events, including positive events like purchases or renewed subscriptions. Real-time tracking can help you improve your revenue reporting because you can track individual subscriber details that are not available in the Google Play Console, such as free trial registrations.
Account restore with deep linking
Some users may cancel their subscriptions through Google Play as a reaction to this crisis. Using the Google Play Developer API, you may also cancel subscriptions on your end by calling Purchases.subscriptions:cancel as part of your response to customer service requests. Note: This API is usually used when users request a refund from the My Orders page. For more information, see Refund the cost of a subscription.
When a user cancels a subscription, they retain access to the content until the end of the current billing cycle. When the billing cycle ends, access is revoked.
As a developer, you must provide easy access to the subscription management page on the Play Store app from your app via deep link so your users are always in control of their subscription status, including restoring (see sample code here).
We hope these features give you the options you need to help your users and your business during this time. We strive to build a platform that allows you to have the best relationship with your users and to respond to unexpected situations the way you would like. If your app is affected by a situation related to COVID-19 not detailed here, we would like to help if we can. Leave a comment below or contact us.
What do you think?
Do you have additional thoughts on approaches to subscriptions and in-app products in light of the current context? Let us know in the comments below or tweet using #AskPlayDev and we’ll reply from @GooglePlayDev, where we regularly share news and tips on how to be successful on Google Play.