Understanding subscriptions

In May 2022, we introduced changes in the way subscription products are defined and managed in Play Console. If you have existing subscriptions and want to know how these changes affect them, see Recent changes to subscriptions in Play Console.

Using Google Play's billing system, you can offer in-app products that charge users for content or services on a recurring basis, known as subscriptions. Subscriptions can include items like a collection of apps, games, or other content for a recurring fee within your app on Google Play.

The Google Play subscriptions system provides flexibility in the ways you create, manage, and sell subscriptions. Using Play Console or the Subscription Publishing API, you can configure a single subscription with multiple base plans, each with multiple offers. Subscription offers can have various pricing models and eligibility options. You can create offers across the subscription lifecycle using a wide variety of auto-renewing and prepaid plans. You can also create an in-app product, which charges users on a one-time basis.

This article describes subscription functionality. To understand how to create and manage subscriptions in Play Console, go to Create and manage subscriptions. To understand how to implement subscriptions in your Android app and backend, visit the Android Developers site.

Important: In addition to the information in this page, you should refer to Google Play's Developer Program Policies, including the Subscriptions policy.

Overview of subscriptions

This section introduces subscription concepts, objects, and functionality.

The three subscription object types are as follows:

  • Subscription: A subscription object defines a set of benefits that users can access during a stated time period.
  • Base plan: A base plan defines a subscription's billing period, renewal type (auto-renewing or prepaid), and price. A single subscription can have multiple base plans.
  • Offer: Offers define a discount available to eligible users. A single base plan can have multiple offers.

The image below shows how subscription object types are structured:

Subscription

A subscription is a set of benefits that users can access during a stated time period. You can have multiple subscriptions within the same app, either to represent entirely different benefits (for example, a streaming video app could have separate news and sports subscriptions), or different tiers of a single set of benefits (for example, a cloud storage app could have 100 GB, 1 TB, and 10 TB subscriptions).

Users gain access (or entitlement) to a subscription by purchasing a base plan or offer, either in your app or on Google Play.

Base plan

Subscriptions contain one or more base plans. A base plan specifies a unique set of attributes for a given billing period and renewal type. You can specify whether a subscription renews automatically (auto-renewing) or is non-renewing (prepaid plan).

A subscription can have multiple base plans. As an example, for a single "Premium Membership" subscription, you could create the following base plans:

  • A monthly, auto-renewing base plan.
  • A monthly, prepaid base plan.
  • An annual, auto-renewing base plan.

Note: For each subscription, you can create a combined total of up to 250 base plans and offers, with a maximum of 50 active at the same time. The remainder must be in draft or inactive states.

Auto-renewing

Users can purchase an auto-renewing base plan to obtain subscription entitlement for a specified billing period, with automatic charges and entitlement extensions at the end of each billing period. An auto-renewing base plan provides uninterrupted subscription entitlement until canceled. Subscriptions can be canceled by the user, by the developer, or by Google Play's billing system.

Prepaid

Users can purchase a prepaid base plan to obtain subscription entitlement for the specified billing period that does not automatically renew. Users can subsequently top up to extend the plan's end date and maintain uninterrupted access to subscription content.

When topping up, users can purchase any prepaid base plan available for the same subscription to top-up, including durations different from the original purchase. For example, a user with a $12.99 prepaid one-month plan can purchase a $59.99 prepaid top-up that extends the subscription by one year.

In addition to top-ups, users can also switch between prepaid and auto-renewing subscription plans as desired. Users can make these purchases either through your app or through the Google Play Store's subscriptions center.

Installments

Note: At this time, developers can only offer this base plan type to users in the following countries: Brazil, France, Italy, and Spain.

Users can purchase an installments base plan to obtain subscription entitlement for a specified billing period, paid out in monthly installments. Installments subscribers pay a fixed monthly amount for the duration of the subscription period. This can provide a convenient alternative for users who may prefer to spread out the cost of a subscription over time.

You specify the monthly payment amount and the commitment period when creating an installments base plan. For example, if you wanted to offer a 12-month subscription to your fitness app normally priced at $99.99, you could implement an installments base plan with a monthly payment amount of $8.33 for a commitment period of 12 months.

All installment subscriptions are paid in monthly intervals; users and developers cannot adjust the frequency or timing of payments. Developer payouts will happen as users make their monthly payments. Developers are not paid upfront when the user signs up for the subscription.

Base plan attributes

The table below lists and explains the fields you'll define when setting up your base plan in Play Console:

Field Description
Billing period

The duration of the subscription entitlement.

Renewal type

Whether a subscription renews automatically, is prepaid, or is paid in installments (available to users in select countries/regions).

Regional availability

A base plan contains a list of regional configurations that define where the plan is available along with the price for each region. You can control availability and pricing individually for each country or region, and configure whether your base plan or offer should be made available to any new locations which Google Play may support in the future.

Grace period If a renewal payment is declined, Google will ask the user to fix the payment issue and periodically retry the renewal charge. By default, this recovery period consists of a grace period, followed by an account hold period. You can specify the length of the grace period, during which the user retains subscription entitlement.
Account hold After any grace period has ended with the payment issue unresolved, the subscription can enter an account hold period. You can specify the length of account hold, during which the user should not have subscription entitlement. If the account hold period ends with the payment issue unresolved, the subscription is automatically expired.
Base plan and offer changes

If a user currently has this subscription and switches to this base plan or any of its offers, this determines when the user is charged. This setting doesn’t apply if a subscriber switches to a different subscription.

Resubscribe

If active, users can repurchase an expired auto-renewing subscription in the Play Store.

Tags

A tag is an optional label of up to 20 characters that you can use to mark or group base plans and offers and identify them in the API. Tags can be used to determine which offer to show when the user is eligible for more than one. You can add up to 20 tags. Users cannot see tags.

Offer

Eligible users can purchase an offer to obtain access to a subscription at a discounted price. While any user can purchase a base plan, offers are only available to users who meet the eligibility criteria you define. Offers can provide the user with free trials and/or introductory pricing through one or more offer phases

For each subscription, you can create up to 250 total base plans and offers, with a maximum of 50 active at the same time. The remainder must be in draft or inactive states.

Notes:

  • You can only create offers for auto-renewing base plans.
  • For each subscription, you can create a combined total of up to 250 base plans and offers, with a maximum of 50 active at the same time. The remainder must be in draft or inactive states.

Offer eligibility 

You can provide offers to users based on their subscription status in your app. You do this by specifying eligibility requirements. There are three supported use cases:

Use case Criteria
New customer acquisition

The user has never had entitlement to this subscription, or the customer has never had entitlement to any subscription in this app.

Upgrade

The user currently has a specified subscription and billing period in this app. 

As an example, you can define an offer that provides an introductory price for a "Gold" subscription tier to users who are currently subscribed to a "Silver" tier.

Developer determined

You decide the business logic and determine eligibility in your app. Examples include second-chance free trials, or win-back offers for lapsed subscribers.

Since the logic resides in your app, developer determined offers cannot be sold outside of your app.

Offer phases

Offers contain one or more offer phases. Each phase defines a free or introductory price period. For example, an offer may have a 7-day free trial phase, followed by an introductory phase of $2 for one month. After the discounted offer phases complete, subscriptions auto-renew using the subscription’s base plan pricing.

Offer attributes

The table below lists and explains the additional fields you'll define when setting up your offer in Play Console:

Field Description

Regional availability

Offers default to the same regional availability as their base plan. You can instead choose a subset of those regions.

Tags

A tag is an optional label of up to 20 characters that you can use to mark or group base plans and offers and identify them in the API. Tags can be used to determine which offer to show when the user is eligible for more than one. Offers return both their own tags, as well as their base plan's tags. You can add up to 20 tags. Users cannot see tags.

Tip: We recommend using tags to identify the offers created with developer-determined eligibility to help differentiate between them when showing the collection of offers available to the user.

Offer and base plan availability

Over time, you can create and modify many subscriptions, base plans, and offers. While some might become obsolete, historical data can be useful for analytics and reporting purposes. Likewise, you might want to create alternatives for experimentation or switch from one offer to another depending on seasons or other factors. The new subscription system supports these use cases with subscription object states. To ensure information is always available for reporting and analysis purposes, you can't delete subscriptions, base plans, and offers, or reuse their IDs.

Common use cases for base plans and offers

This section provides configuration examples of common base plans and offers. Click on a section below to expand it and view an example.

Changing base plan and offer prices

You can change the price of any base plan or offer. The new price applies immediately for any new purchases, including prepaid plan top-up purchases.

If you change the price of an auto-renewing base plan, any users who were paying the previous price are placed into a new legacy price cohort. Users in a legacy price cohort continue paying their current price until they change subscription plans or until you decide to move them to the current price. Each time you change the price, a new legacy price cohort is created.

Ending legacy pricing

You can decide to end a legacy price cohort, moving those users to the current base plan price. However, note the following:

  • Ending a legacy price cohort only affects the base plan price; it's not possible to change the price of any offer phase after purchase.
  • It's also not possible to move a legacy cohort to any price, only to the current base plan price.
  • Ending a legacy price cohort also ends any previous cohorts for the same base plan.

Note: For an installments base plan, if a developer wants to change the price (or if a user wants to cancel), the change takes effect at the end of a commitment period.

Decreasing prices

If the new price is lower, the resulting price decrease is automatic and does not require user approval. Users are notified and charged the lower price at their next renewal date.

Increasing prices

If the new price is higher, the resulting price increase is either opt-in or opt-out.

Opt-in price increases

With opt-in price increases, the user must agree to the price increase before it takes effect. If they do not, their subscription is automatically canceled before the first charge at the higher price. Users will have at least a 30-day notification period to opt-in, which may result in their next charge remaining at the current price.

Tip: Opt-in price increases may cause an increase in churn if subscribers do not agree to the price change. We recommend contacting affected subscribers beforehand to remind them of the value they are receiving.

Opt-out price increases

In certain cases, you can increase the price with advance notification to users, but without requiring them to take any additional action. This is described as an opt-out price increase.

Users can cancel their subscription if desired, otherwise they’re charged the new price on their next renewal following a notification period. This period is a minimum of either 30 days or 60 days, depending on the country/region. The notification period may result in additional renewals at the current price.

Opt-out price increases must meet all of the following criteria:

  • Opt-out price increases are only available in certain countries/regions, and only to developers in good standing on Google Play. To learn more, see supported countries/regions and their minimum advance notification periods.

Opt-out price increases are also limited in frequency and amount. These criteria are enforced in the Console UI:

  • Each subscription base plan can only have a single opt-out price increase per country/region in the last 365 days.
  • The maximum price increase amount in all countries/regions is the greater of:
    • 50% of the price the user is currently paying; or
    • 17 USD cents per day (converted to local currency as needed)

You are responsible for ensuring that an opt-out price increase meets the following criteria. When starting each opt-out price increase, you must certify in Play Console that:

  • Your app’s terms of service must reserve your right to increase the price of subscriptions via advanced notice and provide clear and valid reasons for such increases.
  • At least 30 days before the price increase goes into effect, you will show each affected user a prominent, in-app notice that includes, at minimum: the name of the user’s subscription, the current price and the new price, the date the new price automatically goes into effect, and information on how to cancel.

Important: This notice must be displayed on all device types where the app is available, including mobile, TV platforms, and streaming devices. The sole exception is watch devices, for which the notice is recommended but not required.

If a price increase does not meet all of the above criteria, you cannot perform an opt-out increase. Instead, you can proceed with opt-in increases for the selected cohorts, or leave these cohorts at their current price.

Overlapping price increases

Once started, migrations cannot be stopped. However, if you're migrating a legacy cohort with a price increase, and then start another migration for the same user, the first migration is effectively halted. It will not affect users who haven't resolved the first price increase (either by accepting an opt-in increase, or by having their opt-opt increase notification period end). For those users, only the newer price increase applies.

Test price changes

You can use the Play Billing Lab app and license testers to test subscription price changes without affecting other active subscribers.

See the testing guide on the Android Developers site to learn more about testing price changes.

Declined payments, grace periods, and account hold

If a renewal charge is declined, Google will prompt the user to fix the payment issue and periodically retry the renewal charge. By default, this recovery period consists of a grace period, followed by an account hold period. You can specify the length of the grace period, during which the user retains subscription entitlement.

After any grace period has ended with the payment issue unresolved, the subscription can enter an account hold period. You can specify the length of account hold, during which the user should not have subscription entitlement. If the account hold period ends with the payment issue unresolved, the subscription is automatically expired.

By default, all auto-renewing base plans have account hold enabled. You can adjust the account hold length or disable it from the Google Play Console. The account hold and grace period must total 30 days or more.

Specifying period lengths less than the default values may reduce the number of subscriptions recovered from payment declines.

Enabling subscription pauses

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 instead of canceling, depending on the recurring period. Once enabled, the pause option surfaces both in the subscriptions center and in the cancellation flow. Note that annual subscriptions and free trials cannot be paused.

To enable users to pause their subscription:

  1. Open Play Console and go to the Monetization setup page (Monetize with Play > Monetization setup).
  2. In the "Subscription settings" section, change "Pause" to Enabled.
  3. Click Save changes.

A 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. If the resume is successful, the subscription becomes active again. 

Learn more about subscription pauses and pause implementation requirements on the Android Developers site.

Subscription cancellation requirement

To comply with upcoming changes to Google Play's Subscriptions policy, your app must include an easy-to-use, online method for subscribers to cancel. In your app’s account settings (or equivalent section), you can meet this requirement by including the following:

  • a link to Google Play’s Subscription Center (if your app uses Google Play’s billing system); and/or
  • direct access to your cancellation process.

The requirement is described in full in the Subscription management & cancellation section of the Subscriptions policy.

Was this helpful?

How can we improve it?
7763514621492487877
true
Search Help Center
true
true
true
true
true
92637
Search
Clear search
Close search
Main menu
false
false
false