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 the Google Play billing system (such as when a grace period ends and the user has not resolved their payment issue).
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 1 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.
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, or is prepaid. |
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 |
When auto-renewing charges fail, users enter a grace period where they retain access to subscription benefits while they’re asked to fix their payment issue. You can specify the length of the grace period for this base plan. |
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 you enable users to resubscribe, they can restore access to a canceled subscription that hasn't expired yet from the Play subscription center. When a user restores access, they'll confirm the next payment date and you will receive a notification. |
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.
Free trialsA free trial pricing phase provides a specified number of days, weeks, or months at no charge. Free trial phases can range from 3 days to 3 years.
Introductory pricing phases provide the user with a discounted price for a fixed duration. Introductory pricing phases must be the same or less than the base plan price. They can be absolute or relative to the base plan price. Relative prices can make future price changes simpler. Prices can be specified as follows:
- An absolute amount, such as $5
- A fixed discount, such as $5 off the base price
- A percentage discount, such as a 50% discount off the base price
All prices are subject to Google Play minimum and maximum pricing in the region the price is available. Go to Supported locations for distribution to Google Play users to learn more.
Note: The relative nature of an introductory price is not currently shown in the purchase cart. For example, there is no strikethrough display of the base plan price.
Introductory price phases can include one or more payments:
- Single payment: A pricing phase that charges the user once for a specific number of days, weeks, or months.
- Multiple payments: A pricing phase that provides a discount for between 1 and 52 recurrences of the base plan’s billing period.
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.
Subscription statusSubscription objects can have the following states:
- Draft: The subscription is being defined and is not yet active. When a subscription is in the draft state, any base plans or offers that are created are also in Draft state.
- Active: The subscription exists and supports existing purchases. If there are any active base plans, the subscription also allows new purchases.
Offers and base plans can have the following states:
- Draft: The base plan or offer is being defined and is not yet active.
- Inactive: The base plan or offer exists, but is not available for new purchases. Existing subscriptions continue until canceled. You can toggle offers between active and inactive as needed.
- Active: The base plan or offer exists and supports both existing and new purchases.
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.
Monthly plan available to any userThe following example defines a basic subscription with a single monthly base plan for all users in the specified regions. There aren’t any offers at this point.
Subscription info:
- Title: "All access"
- User benefits:
- "Unlimited access to all channels"
- "Ad-free"
Base plan info:
- Billing period: Monthly
- Renewal type: Auto-renewing
- Region availability:
- US
- Canada
- Türkiye
- Price per region:
- US: $9.99
- Canada: CA$10.99
- Türkiye: 155 TRY
- Grace period: 7 days
The following offer builds on the previous example (Monthly plan available to any user), adding a free trial for new subscribers by defining the following offer in Play Console. Note the offer is limited to a subset of base plan regions–it doesn’t include Türkiye.
Offer info:
- Eligibility criteria: New customer acquisition
- Never had any subscription in this app
- Region availability: (note that Türkiye is not included)
- US
- Canada
- Pricing phase 1:
- Type: Free trial
- Duration: 7 days (then goes to base plan)
Here's how this would work for the user:
- New subscribers (in the US and Canada only) will receive a 7-day free trial.
- After the trial is over, the subscriber will auto-renew onto the standard base plan price.
- Any users who have previously purchased any of this app's subscriptions are ineligible for the offer, so they can only purchase the base plan.
The following example builds on the base plan in the previous example (Monthly plan available to any user), adding an offer with two pricing phases:
Offer info:
- Eligibility criteria: New customer acquisition
- Never had any subscription in this app
- Region availability: (note that Türkiye is not included)
- US
- Canada
- Pricing phase 1:
- Type: Free trial
- Duration: 7 days
- Pricing phase 2:
- Type: Single payment
- Duration: 1 month
- Price override: Fixed amount
- Price per region:
- U.S.: $1.99
- Canada: CA$1.99
Here's how this would work for the user:
- New subscribers (in the U.S. and Canada only) will receive a 7 day free trial, followed by 1 month for $1.99/CA$1.99.
- After the trial is over, the subscriber will auto-renew onto the standard base plan price.
- Any users who have previously purchased any of this app's subscriptions are ineligible for the offer, so they can only purchase the base plan.
Google Play offers support for common eligibility use cases, such as new customer acquisition. Your app can also evaluate against your own eligibility criteria, either in addition to or instead of Play-determined eligibility. This means that you can build additional logic on top of Play-evaluated eligibility criteria and decide which offers you want to prioritize and surface to users. For example, you can limit an offer to past subscribers who have previously canceled with the aim of winning them back.
The following example builds on the base plan in the previous example (Monthly plan available to any user), adding a developer-determined offer for 3 months half-price:
Offer info:
- Eligibility criteria:
- Developer determined
- Region availability:
- US
- Canada
- Pricing phase 1:
- Type: Recurring payment
- Billing periods: 3
- Price override: Percentage discount
- Discount percentage per region:
- US: 50%
- Canada: 50%
- Tag: WINBACK-50-OFF
Here's how this would work for the user:
- Users (in the U.S. and Canada only) presented with this offer using in-app logic will receive 50% off their price for 3 months (that is, $4.99/CA$4.99).
- After the offer is over, the subscriber will auto-renew onto the standard base plan price
Note: Any offers available for purchase outside of the app, including featured subscriptions, cannot have developer-determined criteria.
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.
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.
If there are any users with existing auto-renewing subscriptions, their price does not change. Instead, the user enters into a legacy price cohort, where they keep their existing price until they change subscription plans or until you decide to move them to the current price.
Users on prepaid plans always pay the current price for top-ups and additional purchases.
Ending legacy pricing
For auto-renewing base plans, you can decide to end a legacy price cohort and move 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 the legacy cohort to any price, only to the current base plan price.
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 typically opt-in – 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.
Opt-out price increases
For eligible price increases, you can increase the price with advance notification to users, but without requiring them to take any action – this is 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 either 30 days or 60 days, depending on the country/region. This may result in additional renewals at the current price.
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.
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.
Here are some other important things to note about opt-out price increases:
- Each subscription base plan can only have a single opt-out price increase 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).
- 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.
- If you want to increase prices in a country/region that doesn’t allow for opt-out increases, more frequently than allowed, or beyond the maximum amount, you can perform an opt-in increase or leave existing subscribers at their current price.
Overlapping price increases
If you've ended one legacy cohort with a price increase, and then change the price again, any users who haven't resolved the first price increase (either by accepting an opt-in increase, or by having their notification period end) no longer have to respond. The first increase is canceled, and only the subsequent price change applies.
Declined payments, grace periods, and account hold
At the start of a grace period, your subscribers 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 form of payment, their next subscription billing date stays the same.
If your subscribers' payment method is still declined by the end of the grace period, their subscription will be put on hold and they lose access to their subscription content for 30 days while we try payment again. The account hold feature is mandatory and applies to all subscriptions within your app.
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:
- Open Play Console and go to the Monetization setup page (Monetize > Monetization setup).
- In the "Subscription settings" section, change "Pause" to Enabled.
- 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.