Configuring Products
The RevenueCat dashboard allows you to specify what level of access each product should unlock for your users, which can greatly simplify your in-app code to check for subscription access. The dashboard also allows you to configure which in-app products are shown to your users remotely, so you can control how they're presented without the need to update your app. This is great for experimenting how different product configurations affect key subscription metrics.
There are three levels of product configuration available within RevenueCat:
- Products
- Entitlements
- Offerings
The diagram above illustrates how products from Apple, Google, and Stripe would tie into RevenueCat. The configuration is explained in more detail below.
Productsβ
Products are the individual SKUs that users actually purchase. The stores (Apple, Google, Stripe, and Amazon) process these SKUs and charge the user.
Store Configurationβ
No matter how you choose to use RevenueCat, you'll need to first have products set up in the stores. This is done outside of RevenueCat, and where you set things like price, duration, and free trials. If you've never set up products before or need a refresher (or tips and tricks) check out these guides:
RevenueCat Configurationβ
After your products are set up in the stores, you'll also need to set up a 1-to-1 mapping of the products in RevenueCat as well.
Navigate to the Products tab in the settings for your project in the RevenueCat dashboard. To add a new product, click theΒ + NewΒ button and enter the product identifier exactly as it appears in the store, as well as the store that the product belongs to.
These product identifiers are the link between RevenueCat, and Apple, Google, Stripe, or Amazon.
After clicking "New", you also have the opportunity to directly import products for the following stores: Apple App Store, subscriptions from Google Play Store. Support for importing from other stores will be added in the future.
If you choose to set up subscription products manually for Google Play apps, you will need to add both the subscription ID and the base plan ID, which you can find in Google Play Console as per the following screenshot:
If a user purchases a product that has not been set up in RevenueCat, the purchase will still go through and be tracked in RevenueCat.
To make it easier to identify your products in RevenueCat, you can optionally set a display name for them by:
- Navigating to a product's configuration page
- Clicking Edit
- Entering your desired display name
- Clicking Save
Product display names must be unique within an app. It's a good practice to include the product duration in the display name to avoid name overlaps, for example: 'My Pro Subscription Monthly', 'My Pro Subscription Yearly' etc".
Product display names are currently supported in Charts, and will be supported throughout the Dashboard in the near future.
Entitlementsβ
An entitlement represents a level of access, features, or content that a user is "entitled" to.
Entitlements are used to ensure a user has appropriate access to content based on their purchases, without having to manage all of the product identifiers in your app code.
Most apps only have one entitlement, unlocking all premium features. However, if you had two tiers of content such as Gold and Platinum, you would have 2 entitlements.
A user's entitlements are shared across all apps contained within the same project.
Creating an Entitlementβ
To create a new entitlement, click Entitlements in the left menu of the Project dashboard and click + New. You'll need to enter a unique identifier for your entitlement that you can reference in your app, like "pro".
Most apps only have one entitlement, but create as many as you need. For example a navigation app may have a subscription to "pro" access, and one-time purchases to unlock specific map regions. In this case there would probably be one "pro" entitlement, and additional entitlements for each map region that could be purchased.
Attaching Products to Entitlementsβ
Once entitlements are created, you should attach products to entitlements. This lets RevenueCat know which entitlements to unlock for users after they purchase a specific product.
When viewing an Entitlement, click the Attach button to attach a product. If you've already added your products, you'll be able to select one from the list to attach.
When a product that is attached to an entitlement is purchased, that entitlement becomes active for the duration of the product. Subscription products will unlock entitlements for the subscription duration, and non-consumable and consumable purchases that are attached to an entitlement will unlock that content forever.
If you have non-subscription products, you may or may not want to add them to entitlements depending on your use case. If the product is non-consumable (e.g. lifetime access to "pro" features), you likely want to attach it to an entitlement. However, if it is consumable (e.g. purchase more lives in a game) you likely do not want to add them to an entitlement.
Attaching an entitlement to a product will grant that entitlement to any customers that have previously purchased that product. Likewise, detaching an entitlement from a product will remove it for any customers that have previously purchased that product.
When designing your Entitlement structure, keep in mind that a single product can unlock multiple entitlements, and multiple products may unlock the same entitlement.