revenuecat/ai-toolkit

rc-price-changes

Use this skill when rolling out subscription price changes on Android with RevenueCat.

Voir la source

Mode d’emploi

  1. Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
  2. Consultez le document original pour les outils, identifiants et environnements requis.
  3. Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/revenuecat/ai-toolkit --skill rc-price-changes

Avant de commencer

  • L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
  • Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Document Skill original

Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.

Price Changes

Use this skill when you roll out a new price for an existing subscription product on Android and want RevenueCat to manage the cohort and consent plumbing for you.

Phase 1: Understand

Google Play supports two kinds of price changes for active subscribers:

  • Opt out changes (typically decreases, and increases within Google's opt out threshold). The new price applies automatically at the next renewal. No user action required.
  • Opt in changes (larger increases). Google shows its own in app consent dialog. If the user consents, they continue at the new price. If they decline, the subscription cancels at period end.

RevenueCat processes SUBSCRIPTION_PRICE_CHANGE_UPDATED and related RTDNs on its backend and updates CustomerInfo when a subscriber's cohort or consent state changes. Your app reads entitlements the same way it always does.

For most price change scenarios, there is nothing to implement in your app or backend.

Phase 2: Plan

Decide which path applies before you touch anything.

QuestionOpt outOpt in
Typical triggerDecrease, or small increase within Google's thresholdLarger increase above Google's threshold
User consentNot requiredRequired, prompted by Google Play UI
If user declinesN/ASubscription cancels at period end, CANCELLATION webhook fires
New price appliesAutomatically at next renewalAfter user consents in Play's dialog
RTDN RevenueCat consumesSUBSCRIPTION_PRICE_CHANGE_UPDATEDSUBSCRIPTION_PRICE_CHANGE_UPDATED, then SUBSCRIPTION_CANCELED if declined
App code changeNone requiredNone required
Paywall price sourcepkg.product.price.formatted (new purchases only)pkg.product.price.formatted (new purchases only)

Questions to answer before executing:

  • Is the change a decrease, a small increase, or a larger increase? That determines opt out vs opt in.
  • Do you want to notify existing subscribers in app before the change takes effect? That is optional, driven by a webhook or a Targeting rule, not a requirement.
  • Which legacy cohorts exist today? Existing subscribers keep paying their old price until Google migrates them. This is a Google Play concern, not visible in the SDK.

Phase 3: Execute

Most of the work is in the Play Console and the RevenueCat dashboard. Your app stays the same.

1. Update the price in Play Console

In Google Play Console, open the subscription, select the base plan, and edit the price. Google will prompt you to choose how existing subscribers are treated (opt out vs opt in) based on the magnitude of the change and your region.

2. Let RevenueCat pick up the change

RevenueCat processes the RTDNs from Google automatically. You do not need to toggle anything in the RevenueCat dashboard for the price change itself. Confirm the updated product price appears on the product in the RevenueCat dashboard after Google propagates it.

3. Refresh offerings in the client (optional)

If you want the paywall to show the new price immediately for new purchasers, refresh offerings after the Play Console change propagates. The SDK call is unchanged:

kotlin
val offerings = Purchases.sharedInstance.awaitOfferings()
val pkg = offerings.current?.availablePackages?.firstOrNull() ?: return
val displayPrice = pkg.product.price.formatted

Legacy cohort subscribers continue to pay their old price until Google migrates them. pkg.product.price.formatted is always correct for new purchases.

4. Observe CustomerInfo on consent resolution

For opt in increases, RevenueCat updates CustomerInfo when the consent outcome is known. Read entitlements the usual way.

kotlin
val info = Purchases.sharedInstance.awaitCustomerInfo()
val isPro = info.entitlements["pro"]?.isActive == true

Do not build a consent dialog. Google Play shows it.

5. Handle declines via webhook, if you care

If the user declines the opt in increase, the subscription cancels at period end. RevenueCat fires a CANCELLATION webhook event. Treat it the same way you treat any other cancellation on the server side.

6. Optional: notify affected users

If you want to warn subscribers about an upcoming increase before Google's dialog appears, drive an in app banner from a RevenueCat webhook event or show a specific Offering to the affected cohort with a Targeting rule. This is an enhancement, not part of the price change contract.

References

Tâches connexes

du même dépôt

Autres Skills

Tous les Skills
revenuecat
Communauté

revenuecat-experiment-analysis

Use when the user asks to analyze or understand a RevenueCat experiment or its results.

installations
2
GitHub Stars
74
Mis à jour
19 oct.
revenuecat
Communauté

integrate-revenuecat

End-to-end RevenueCat integration — sets up the dashboard side via the RevenueCat MCP or the rc CLI (project, app, public API key) and installs/configures the Purchases SDK in the app. Use when the user asks to add RevenueCat, hook up RevenueCat, add subscriptions or in-app purchases to an app, integrate Purchases, install the RevenueCat SDK, set up a RevenueCat API key, configure Purchases on launch, or set up a brand new RevenueCat integration on iOS, Android, Kotlin Multiplatform, Flutter, or

installations
2
GitHub Stars
73
Mis à jour
14 oct.
revenuecat
Communauté

rc-cancellations-pauses-winback

Use this skill when surfacing cancellation, pause, and winback state on Android with RevenueCat. Covers reading unsubscribeDetectedAt, billingIssuesDetectedAt, pause state via periodType, managementURL for deep link, and pause resume date lookup via the REST API.

installations
1
GitHub Stars
73
Mis à jour
14 oct.
revenuecat
Communauté

rc-subscriptions

Use this skill when modeling subscriptions through RevenueCat's object model on Android. Covers Offerings, Packages, StoreProduct, SubscriptionOption, PricingPhase, and how they map to Google Play's Subscription, Base Plan, and Offer hierarchy.

installations
1
GitHub Stars
73
Mis à jour
14 oct.