From 449b5d7cbbfaa5f055661b84f7568c27a569fec1 Mon Sep 17 00:00:00 2001 From: Cody Kerns Date: Mon, 13 Jan 2025 12:48:55 -0500 Subject: [PATCH 1/4] clarify offerings doc --- docs/offerings/offerings.md | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/docs/offerings/offerings.md b/docs/offerings/offerings.md index 1a93cd0d..947fbc19 100644 --- a/docs/offerings/offerings.md +++ b/docs/offerings/offerings.md @@ -8,13 +8,25 @@ Offerings are the selection of [products](/offerings/products-overview) that are -Offerings allow you to choose which combination of products are shown to a user on your paywall or upsell screen. For example your default Offering may contain a monthly and annual subscription, but you might want to experiment with Offerings with a different combination of subscription durations, trial lengths, prices, etc. +## How Offerings Work + +Offerings are a way to group products together to display to users. You can think of them as a "paywall" that contains a set of products. + +Offerings are created and configured in the RevenueCat dashboard. When using [RevenueCat Paywalls](/tools/paywalls), you'll configure a single paywall that is paired to a single Offering. + +### Packages Within each Offering, there must be one or more **Packages**. Packages are simply a group of equivalent products across iOS, Android, and web. If your app is available on multiple platforms, then a Package would contain all of the equivalent product identifiers from each platform. ![](/images/c4f0b08-Screen_Shot_2020-07-01_at_6.35.06_PM_bebc522b7112c8d3fe6a4549256ba588.png "Screen Shot 2020-07-01 at 6.35.06 PM.png") -### Creating an Offering +### Default Offering + +RevenueCat Offerings include a **default**, or "current" Offering. This is the Offering that will be returned in the Purchases SDK as a customer's `current` Offering when using the `getOfferings` method if no other conditions apply to them. + +For example, your default Offering may contain a monthly and annual subscription, but you might want to experiment with Offerings with a different combination of subscription durations, trial lengths, prices, etc. + +## Creating an Offering To create an Offering, navigate to the Offerings tab to your project settings in the RevenueCat dashboard, and click **+ New** to get started. @@ -65,6 +77,20 @@ Removing a package from an Offering **does not** remove the products from Revenu ![](/images/dff40c4-Screen_Shot_2022-12-05_at_12.12.05_PM_8a4763f6533fdd43a377809bc374da70.png "Screen Shot 2022-12-05 at 12.12.05 PM.png") +## Paywalls + +Offerings can be paired with a [paywall](/tools/paywalls) that is configured in the RevenueCat dashboard. RevenueCat Paywalls are an easy way to display a set of products to a user, and can be configured remotely. + +You can read more about how to create and configure paywalls in our [Paywalls](/tools/paywalls) guide. + +## Fetching Offerings + +Offerings are fetched through the SDK via the `getOfferings` method. These are pre-fetched in most cases on app launch, so the completion block to get offerings won't need to make a network request in most cases. + +For more information on how to fetch Offerings, see our [Displaying Products](/getting-started/displaying-products) guide. + +To fetch a user's Offering configuration via the REST API, see our [API Reference](/api-v1). + ## Next steps Once you've created an Offering, you can design a paywall to display to your users. From 3d0b24e29f03c078c39c338876450625ad18afa0 Mon Sep 17 00:00:00 2001 From: Cody Kerns Date: Mon, 13 Jan 2025 13:15:04 -0500 Subject: [PATCH 2/4] fix default --- docs/offerings/offerings.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/docs/offerings/offerings.md b/docs/offerings/offerings.md index 947fbc19..a8318fca 100644 --- a/docs/offerings/offerings.md +++ b/docs/offerings/offerings.md @@ -22,9 +22,9 @@ Within each Offering, there must be one or more **Packages**. Packages are simp ### Default Offering -RevenueCat Offerings include a **default**, or "current" Offering. This is the Offering that will be returned in the Purchases SDK as a customer's `current` Offering when using the `getOfferings` method if no other conditions apply to them. +The RevenueCat dashboard allows you to choose which Offering should be the Default Offering for customers in your Project. This Default Offering will be returned in the Purchases SDK as a customer's `current` Offering when using the `getOfferings` method if no other conditions apply to them. -For example, your default Offering may contain a monthly and annual subscription, but you might want to experiment with Offerings with a different combination of subscription durations, trial lengths, prices, etc. +If you build your paywall to reference the `current` Offering, instead of hardcoding an identifier value, you can change this Offering from the dashboard to dynamically display different Offerings at any time, either by modifying your Project's Default Offering or by utilizing features like [Targeting](https://www.revenuecat.com/docs/tools/targeting) and [Experiments](https://www.revenuecat.com/docs/tools/targeting). We strongly recommend utilizing the `current` Offering feature. See [Displaying Products](/getting-started/displaying-products) for more info. ## Creating an Offering @@ -34,11 +34,6 @@ You'll be prompted to enter an **Identifier** and **Description** for your offer ![Screenshot](/images/7508f4b-Screenshot_2023-12-05_at_10.17.25_PM_4a7403e5b880248ab9c00c129c89edd6.png) -**Default Offering** -The RevenueCat dashboard allows you to choose which Offering should be the Default Offering for customers in your Project. This Default Offering will be returned in the Purchases SDK as a customer's `current` Offering when using the `getOfferings` method if no other conditions apply to them. - -If you build your paywall to reference the `current` Offering, instead of hardcoding an identifier value, you can change this Offering from the dashboard to dynamically display different Offerings at any time, either by modifying your Project's Default Offering or by utilizing features like [Targeting](https://www.revenuecat.com/docs/tools/targeting) and [Experiments](https://www.revenuecat.com/docs/tools/targeting). We strongly recommend utilizing the `current` Offering feature. See [Displaying Products](/getting-started/displaying-products) for more info. - ### Adding Packages Each Offering you create should contain at least one Package that holds cross-platform products. From 867e7612bb9c5e9a7486713e355f8bf6b5f0a936 Mon Sep 17 00:00:00 2001 From: Cody Kerns Date: Mon, 13 Jan 2025 13:16:04 -0500 Subject: [PATCH 3/4] api link --- docs/offerings/offerings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/offerings/offerings.md b/docs/offerings/offerings.md index a8318fca..39f4d372 100644 --- a/docs/offerings/offerings.md +++ b/docs/offerings/offerings.md @@ -84,7 +84,7 @@ Offerings are fetched through the SDK via the `getOfferings` method. These are p For more information on how to fetch Offerings, see our [Displaying Products](/getting-started/displaying-products) guide. -To fetch a user's Offering configuration via the REST API, see our [API Reference](/api-v1). +To fetch a user's Offering configuration via the REST API, see our [API Reference](/api-v1#tag/offerings/operation/get-offerings). ## Next steps From 82f1131e073a0a41aaf55924b1414a0d61059383 Mon Sep 17 00:00:00 2001 From: Cody Kerns Date: Wed, 15 Jan 2025 09:52:46 -0500 Subject: [PATCH 4/4] broken link --- docs/offerings/products-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/offerings/products-overview.md b/docs/offerings/products-overview.md index 7b7fc568..747a20a6 100644 --- a/docs/offerings/products-overview.md +++ b/docs/offerings/products-overview.md @@ -68,4 +68,4 @@ Product display names must be unique within an app. It's a good practice to incl If you've added your products in the dashboard, it's time to create an Entitlement. - +