Google Play Offers

Setting up your offers in Google Play Console

👍

This guide assumes you already have your products set up in the Google Play Console.

Subscription offers

Google allows adding multiple offers to each base plan. Each offer can have up to two discounted pricing phases.

To create an offer, navigate to the subscription product in Google Play, click "Add offer", and then select the base plan that the offer should apply for.


On the following page, you can set up a unique offer ID, eligibility criteria, tags, and pricing phases. Tags can be used to identify offers in the RevenueCat SDK.

Eligibility criteria

Google Play has three eligibility criteria:

New customer acquisition: For offers with this eligibility criterion, Google Play will determine whether or not a customer is eligible to receive the offer. You can choose whether this should check for customers who have never had this particular subscription to your app or customers who have never had any subscription to your app. If Google Play determines that a customer is not eligible for the offer, it will not show up in the subscriptionOptions of the StoreProduct in the SDK at all.

Upgrade: This eligibility criterion is the inverse of the previous one. Customers are only eligible if they currently have another subscription of your product, and you can configure in detail what products this offer applies to. Again, in the case that Google Play determines that a customer is not eligible for the offer, it will not show up in the subscriptionOptions of the StoreProduct in the SDK at all.

Developer determined: Offers with this eligibility criterion will always show up in the subscriptionOptions of the StoreProduct in the SDK and you are responsible for determining whether or not to apply the offer to a customer or not. If you are relying on the RevenueCat SDK automatically applying free trials and introductory periods and you do not want a developer determined offer to be automatically selected, apply the tag rc-ignore-offer to the offer.

Pricing phases

Each offer can have up to two pricing phases, and each pricing phase can be a free trial period, a discount on the recurring payment, or a single fixed payment providing access for a specified period of time.

For more details, see Google's documentation.

Promo codes

Google Promotions or Promo Codes to give app developers the ability to create codes that are redeemable for one-time products or trials to subscriptions.

Types of Promo Codes

One-time codes are unique and auto-generated by the Google Play console. They are limited to a single-use.

Custom codes are codes created by the developer. They are redeemable as many times as the developer allows.

Offer TypeConverts to subscriptionsIn-App ProductsRedemption LocationApplies To
Custom CodesIn-appNew subscribers
One-time CodesIn-app or Google Play StoreNew Users,
Existing Users,
Lapsed Users

🚧

Limitations of Promo Codes with Subscriptions

Promo codes are limited to offering a free trial of a subscription.
Using a promo code in addition to an already free trial of a subscription will result in the promo code over-riding the length of the free trial regardless of whichever is greater.

Ex. If a subscription has been configured to start with a 3-day free trial and a user applies a promo code that gives a 10-day free trial, the promo code trial length will override the 3-day free trial.

🚧

Promo Codes only applicable to backwards compatible base plans

Promo codes only allow subscribing to a backwards compatible base plan. If you want customers to get free access to non backwards compatible base plans, you should implement custom logic with developer determined subscription offers instead.

Creating Promo Codes

Navigate to Promo Codes Tab

To create promo codes for your app, go to Google Play’s Console ‘All applications' page and select your app from the list.

In the sidebar select Promo Codes.

Creating a Promotion


After selecting Create promo code, you will provide several pieces of metadata to provide to create your promotion:

Configuration Key ( See figure below)MetadataDescription
1Promotion NameA name to identify the promotion. This is not shown to the users.
2Start date/timeWhen the promotion begins. This date must be in the future. This can not be updated once live.
3End date/timeWhen codes can no longer be redeemed.
4Promotion typeSelect from Paid app, In-app product or Subscription.
Both In-app product and Subscription require selecting from a drop-down menu to link an existing product. This can not be updated once saved.
5Code typeSelect One-time or Custom code. Custom codes are not available if selecting a Paid or an In-app product.
6Number of CodesThe number of codes available on the promotion. This can not be updated once saved.
813

Sample configuration of a 10-day free trial for a current Annual membership.

After selecting Save your promotion will be created! 🎉

Accessing One-time Codes

Google automatically generates one-time codes. A link titled, "Download codes" provides access to the automatically generated codes.

Live Promotions

Promo codes become active once the status reads Live.

📘

Promo Code Limits and Availability

Promo codes are limited by Google, on a per quarter basis. The amount of promo codes that Google limits varies by promo code type (one-time versus custom promo codes). Any unused codes will expire at the end of the quarter. Any codes that have been redeemed in the Google Play Store, but not redeemed in the app will stay active until the promotion ends.

For additional learning, review the promo code limits and availabilitydocumentation in Google's Play Console Help.

Redeeming Promo Codes

Promo code redemption can occur in-app or in the Google play store. All code redemptions are handled by Google and don’t require additional UI to be built.

In-App Redemption

In-app redemption applies to One-time and Custom codes.

To redeem a code, a user initiates the purchase at the paywall. At the Google Play purchase screen, a selectable down arrow next to the form of payment allows the user to select Redeem code. After selecting Redeem code and entering the code into the prompted field, then selecting the Redeem button applies the entered code.

Google Play Store Redemption

Google play redemption applies only to One-time codes.

To redeem a code in the Google Play Store, the user can manually enter the code in the Google Play Store by clicking the Play Store left navigation menu and selecting Redeem Code.
The code will then be applied when the user selects the subscription or In-App product they want to purchase.

For additional learning, review User redemption flow documentation located in Google's developer documentation.

📘

Pro Tip ☝️

If you want to save your users the hassle of manually entering their one-time code in the Google Play Store, you can send them a deep link with the promo code already attached:
https://play.google.com/redeem?code=promo_code

Considerations

  • In the RevenueCat dashboard, when a promo code is used for a subscription, it will show up as the user is starting on a trial for the length your promotion has specified.
  • For In-app purchases, you will see your user has made a purchase, however, the reflected price will be $0.
  • The purchase will come back from Google with the "purchaseType": 1, which, according to the API docs means that it was completed with a promo code.
  • As of now, purchases with a promo code that come directly from Google don’t carry an orderId.
  • In general there is likely to be some info missing if the code is redeemed directly in the play store as a limitation from the information that we gather from Google.

Next Steps

With Promo Codes created make sure you're setup for making purchases