SuperAPI AI 工具集

rc-catalog-management

编程与开发

查看项目

更新于 10-15 18:09

技能介绍

用途

该技能用于管理 Android 产品目录,涉及两个操作界面:Google Play Console(产品的来源)和 RevenueCat 仪表盘(权益、Offering、Package、定向)。技能明确指出,不应从应用或后端调用 Google Play Developer 的 monetization.subscriptions 或 monetization.onetimeproducts 端点。

两个界面的职责

  • Google Play Console:拥有底层产品、基础方案、优惠、价格。例如 premium_monthly、基础方案 p1m、介绍优惠。
  • RevenueCat 仪表盘:拥有权益(Entitlements)、Offering、Package、定向(Targeting)。例如 pro 权益、default offering、$rc_monthly package。

Play Console 持有可计费的 SKU。RevenueCat 决定哪个 SKU 以哪个权益键展示给哪个用户。

无需应用更新即可变更的内容

当应用调用 awaitOfferings() 时,它会获取 RevenueCat 仪表盘上配置的内容。Offering 编辑、Package 替换和定向规则会在下次应用启动时生效,无需发布二进制版本。

何时使用 REST API

如果需要从后端自动化目录编辑(例如跨环境批量创建 Offering),可使用 RevenueCat REST API 管理产品、权益和 Offering。仍然不直接与 Google 通信。Play Console 仍是产品的来源。

规划

在做出变更前,需要决定:

  • 这是新产品,还是现有产品的重新打包?
    • 新产品:从 Play Console 开始。
    • 重新打包(新 Offering、新定向、新权益映射):留在 RevenueCat。
  • 产品解锁哪个权益?如果没有匹配的权益,先创建一个。
  • 使用哪个 Offering 和 Package 标识符?确定 Package 标识符(例如 $rc_monthly、$rc_annual),以便 paywall 代码继续工作。
  • 是否需要更改定向?如果不同用户应看到不同 Offering,规划 placement 名称和定向规则(操作系统版本、国家、自定义属性)。

执行:新增订阅产品的端到端流程

步骤 1:在 Play Console 添加产品

  1. 打开 Play Console -> 你的应用 -> Monetize -> Products -> Subscriptions。
  2. 点击 Create subscription。
  3. 设置产品 ID(例如 premium_monthly)、名称和描述。
  4. 添加基础方案(计费周期、续订类型、价格)。
  5. 可选添加优惠(介绍定价、免费试用)。
  6. 激活订阅。
  7. 等待几分钟让 Play 传播产品。

步骤 2:导入 RevenueCat 并关联权益

  1. 打开 RevenueCat 仪表盘 -> 你的项目 -> Products。
  2. 点击 Import 从 Play Console 同步。新产品会出现在列表中。
  3. 打开产品并关联到现有权益,或创建新权益。

权益示例:pro。每个解锁 pro 功能的产品都关联到 pro。

客户端代码按权益键检查:

val isPro = customerInfo.entitlements["pro"]?.isActive == true

步骤 3:将产品作为 Package 接入 Offering

  1. 在仪表盘中打开 Offerings。
  2. 选择要编辑的 Offering,或创建新的(例如 default)。
  3. 添加 Package。选择与 paywall 匹配的 Package 标识符:
    • $rc_monthly 表示月度
    • $rc_annual 表示年度
    • 或自定义标识符
  4. 将 Play Console 产品关联到 Package。
  5. 保存。如果应作为默认,将 Offering 标记为 Current。

客户端代码保持不变:

val offerings = Purchases.sharedInstance.awaitOfferings()
val monthly = offerings.current?.monthly

步骤 4(可选):定向

如果不同用户应看到不同 Offering,使用 placements。

  1. 在仪表盘中打开 Targeting -> Placements。
  2. 创建 placement(例如 paywall_upsell)。
  3. 添加规则(操作系统版本、国家、自定义属性),将用户映射到特定 Offering。

客户端代码:

val offering = offerings.getCurrentOfferingForPlacement("paywall_upsell")
    ?: offerings.current

之后更改定向规则无需应用更新。

验证

在关闭任务前检查变更是否生效:

  • 产品在 Play 中存在:Play Console -> Subscriptions 显示产品为 Active。
  • 产品已导入 RC:仪表盘 -> Products 列出产品。
  • 权益映射:仪表盘 -> Entitlements 显示产品在正确的权益下。
  • Offering 接线:仪表盘 -> Offerings 显示产品关联到预期的 Package。
  • 运行时获取:启动应用,调用 awaitOfferings(),确认 Package 解析。
  • 权益解锁:完成测试购买,确认 customerInfo.entitlements["pro"].isActive 为 true。

如果 awaitOfferings() 对预期 Package 返回 null,最常见原因是:Offering 未标记为 Current、产品未关联到 Package、或 Play 尚未完成产品传播。

常见错误

  • 从后端调用 monetization.subscriptions。应使用 RevenueCat。
  • 在导入产品之前创建 Offering。先导入,再接线。
  • 在 paywall UI 中硬编码产品 ID。使用 Package 标识符,以便无需应用发布即可替换产品。
  • 忘记将 Offering 标记为 Current。调用 offerings.current 的客户端会看到旧 Offering,直到翻转此标记。

限制

资料未提供该技能的具体平台限制、收费信息、价格或效果数据。