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β
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 Type | Converts to subscriptions | In-App Products | Redemption Location | Applies To |
---|---|---|---|---|
Custom Codes | β | β | In-app | New subscribers |
One-time Codes | β | β | In-app or Google Play Store | New Users, Existing Users, Lapsed Users |
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 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) | Metadata | Description |
---|---|---|
1 | Promotion Name | A name to identify the promotion. This is not shown to the users. |
2 | Start date/time | When the promotion begins. This date must be in the future. This can not be updated once live. |
3 | End date/time | When codes can no longer be redeemed. |
4 | Promotion type | Select 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.** |
5 | Code type | Select One-time or Custom code. Custom codes are not available if selecting a Paid or an In-app product. |
6 | Number of Codes | The number of codes available on the promotion.** This can not be updated once saved.** |
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 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 β‘οΈ