Skip to main content

Google Play Offers

πŸ“˜

This guide assumes you have already configured your products in 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 Promo Codes will be treated as regular purchases

Due to limitations in Google's Play Billing Library 5, we are currently unable to detect when promo codes are redeemed to purchase a subscription.

All purchases will be reflected in RevenueCat at full-price.

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 Codesβœ…βŒIn-appNew subscribers
One-time Codesβœ…βœ…In-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​

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. \nBoth 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.**

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 availability documentation 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.

πŸ“˜

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 ➑️