The subscription industry is booming. Since 2016, Google has been incentivizing subscriptions, introducing subscription-only measures like halving Google Play sales cut when the user is subscribed for a year or longer. Today, this bet seems victorious: according to a recent study by AppAnnie, apps with subscriptions account for 96% of consumer spend in top non-gaming apps.
In this article, we are going the full distance in introducing subscriptions for an Android app. Along the way, we will examine every tool Google has to offer while also coming up with caveats that official guidelines left uncovered. Let’s assume that you have already paid for your Google Play merchant account and have an app, or draft for an app, available in your Google Play Console.
To create a subscription, you will need to start with your app page in Play Console, redirecting you to "All Apps". Select your app, go to section Monetize –> Subscriptions, and click on Create subscription button on the right.
Google will immediately ask you to provide a Product ID, which it uses to uniquely identify this particular subscription product. Every product available for purchase on Android has its Product ID. In this particular case, it will be an ID for your subscription. These IDs are not public (unlike Subscription Title), so don’t spend too much time here: we suggest you use an ID that’s easy to identify by you, and contains details about the product. However, remember that you can’t modify this and you can’t reuse a product ID inside the same app.
Product ID can contain numbers, lowercase letters, underscores, and periods. You can’t name a Product ID starting with ‘android.test’, and you can’t change as well as reuse a Product ID once the product has been created.
All the rest is to be filled in your local language. If you want to use different localizations, click on ‘Manage translations’ and fill in data for each locale. These are the following fields, all of which will be shown on the system dialog screen at the moment of purchase:
This policy by Google seems quite reasonable. It would be unfair if a user one day receives an email “Dear monthly subscriber, we’ve decided you will be charged annually starting next month, please be ready or cancel''.
Simultaneously, if developers want to update their pricing, existing subscribers will be notified of the price change by email and through a notification on Google Play 7 days after the price change occurs. Subscribers will then have 30 days to agree to the price change; otherwise, their subscription will be cancelled on their next renewal date.
We didn’t manage to find any mention by Google where the user might see these benefits, so we did our own investigation. Benefits are shown as the last resort when a user tries to cancel a subscription, on the very last system transactional page before the cancellation. Interestingly, neither benefits nor even app description is displayed when a user tries to purchase your plan – there is a title only.
Google offers a range of instruments to enhance and tailor your marketing. You may choose not to use them, but we advise you to, as most of them are necessary for a pleasant user experience.
Free trial lets your users try out a subscription before buying it. Free trials run for a period of time that you set, and then they automatically convert to a full subscription using the subscription’s time period and price. By default, users can only receive one free trial across all available subscriptions on your app, but this can be changed in the Console settings.
You must let users know:
You can create one free trial per subscription product. Free trials are always $0. Trial periods must be 3 days or longer; you can change the trial period at any time, but only new subscribers will use the updated trial period. Users can only get a free trial if they haven’t previously purchased the subscription it applies to. For more information and examples, see Free Trials & Introductory Offers in the Developer Policy Center.
To start a free trial, a user must complete the standard process for purchasing a subscription on Google Play. They aren’t charged at first, and they’re notified by email that the subscription includes a free trial period. Google Play records a transaction of $0.00, and the subscription is marked as purchased for the trial period or until it is cancelled.
Now comes the tricky part: Google claims that the user is charged the day after the trial period ends, which is not entirely correct. Based on our experience, the user receives a transaction notification from his bank the day before the trial ends. Basically, Google allows the user to cancel and get an automatic refund, with the subscription also being cancelled the next day. If the user manages to cancel during the last day of the trial, the money will return without any additional user actions.
We don’t really know whether Google charges users in advance or just pre-authorizes the necessary sum. Either way, this is usually confusing for your trial users as banks often don’t differentiate between these operations, resulting in angry letters to your customer support to get the refunds.
When the trial ends, a user’s payment method is charged for the specified subscription amount (price can be either full, discounted, or an introductory offer), which recurs using the subscription’s set time period. The payment status may display as pending for up to 24 hours, even if no grace period is set.
With introductory pricing, you can specify an initial price that applies to a set number of days, weeks, months, or billing periods. For example, you can offer a subscription for $1 per month for the first three months. Or, you can provide an introductory price of $1 for 10 days, followed by a regular monthly price. At the end of the introductory period, users are charged the full subscription price.
Also, two points to keep in mind. First, if you're offering a free trial and introductory price, your users are charged the introductory price at the end of the trial. Second, a user can only receive an introductory price for a specific subscription product (SKU) at one time.
For more information and examples, see Free Trials & Introductory Offers in the Developer Policy Center.
You have two options to add introductory price: as a single payment, or a recurring payment.
Having chosen ‘single payment’, you can set up an introductory period of n days/weeks/months (within limits specified above) for a specific price regardless of your subscription’s original billing period. ‘Recurring payment’ is tied to the original billing period. You can only choose the number of introductory periods and introductory price itself; for example, 3 months for a monthly subscription, and a monthly price for these 3 months.
Grace period allows your subscribers to update their payment method if a recurring payment is declined. This can be useful if your subscribers have an expired credit card, subscribed using a prepaid card, or cancelled a card without updating their payment information. Using grace period is usually considered more humane towards your users, and there’s no reason to turn it off.
At the start of the grace period, your subscribers will receive an email notifying them of a declined payment. They'll have time to update their payment method without interrupting their subscription. Once your subscribers update their payment method to a valid payment form, their next subscription billing date stays the same. If your subscriber's payment method is still declined by the end of the grace period, their subscription is cancelled, and they lose access to their subscription content.
Grace period could last for 3, 7, 14, 30 days, or none. If your subscription is ‘every 4 weeks’, the maximum grace period is 14 days; for ‘weekly’ subscription the maximum is 7 days.
For new subscription products, the following grace periods are set by default:
Google offers the option to restore an expired subscription not through the app itself, but through the Play Market. If “Enabled for all” (which is the default value), users can resubscribe to the same SKU for up to a year after expiration by clicking Resubscribe in the Google Play subscription center, which generates a new subscription and purchase token.
When you click ‘Manage subscription settings’ button on the ‘Subscriptions’ page, you will see the following menu:
The default value is ‘enabled’.
You can prevent voluntary churn by enabling users to pause their subscription. When you enable the pause feature, users can choose to pause their subscription for a period of time between one week and three months, depending on the recurring period. Once enabled, the pause option surfaces both in the subscription center and in the cancellation flow.
We've extensively covered the problem of churn in our blog, so consider checking it out.
Note that annual subscriptions cannot be paused, and pause limits of one week and three months are subject to change at any time. The subscription pause takes effect only after the current billing period ends. While the subscription is paused, the user doesn't have access to the subscription.
At the end of the pause period, the subscription resumes, and Google attempts to renew the subscription. Once the resume is successful, the subscription will become active again. If the resume fails due to a payment issue, the user enters the account hold state. Users can also choose to manually resume a subscription at any time during the pause period. When a user resumes manually, the billing date changes to the manual resume date.
Free trial limit
You have two options - ‘One per subscription’ or ‘One across all subscriptions’.
Overall, every field, except product ID and billing period, can be edited at any time. Billing period can be edited before you push the ‘Activate’ button. Once activated, the subscription product itself can’t be deleted.
To make your subscription visible to your testers, you need to activate it first. “Activate” button will become available once you fill in all the necessary fields and save changes, meaning your new clients can purchase it from your app. Testers can work with subscriptions without paying if you add them to License testing list by going to your app page –> Settings –> License testing.
You can choose to make certain content or services in your app available to users at a regular rate for a particular period. Users will be charged your chosen rate at your selected frequency until they decide to cancel.
For example, a user who buys a one-year subscription on Jan 1 for $10 will have access to the subscription until December 31 and will be charged $10 on the following renewal date.
After you change the price of an existing subscription, here’s how it affects new users and existing subscribers:
Of course, price increases may cause an increase in churn if subscribers do not accept the price change. We advise you to contact subscribers to inform them of the price increase in advance (Google recommends within a week) and give them a convincing justification. Customers will pay more if you give them a reason to do so
If you change the price multiple times before the user's next renewal date, the user only has to respond to the most recent price change. Existing subscribers receiving a price decrease will be notified and receive a lower price on their next renewal date.
If you change a subscription’s price twice in a short period of time, your subscribers will need to agree to the first price change, and then agree on the second price change for your intended price to take effect.
If you want to offer one price to existing subscribers and a different price to new users, you can create a new subscription with the price you want to offer to new users. This way, your existing subscribers can continue renewing their subscriptions without having to agree to a price change.
And that's it, you've created your subscription! Next, we will be covering how to handle it.