从 RevenueCat 迁移

整个迁移计划共分 5 个步骤,平均耗时约 2 小时。90% 的迁移工作可在一个工作日内完成。

  1. 了解核心差异;创建并准备 Adapty 账户 (5 分钟)
  2. 为您的平台安装 Adapty SDK(iOSAndroidReact NativeFlutterKotlin MultiplatformUnity),替换 RevenueCat SDK (1 小时)
  3. 为 Adapty 设置 Apple App Store 服务器通知,并(可选)设置原始事件转发 (5 分钟)
  4. 测试并发布您的应用更新 (30 分钟)
  5. (可选)向 RevenueCat 客服申请 CSV 格式的历史数据 (5 分钟)
  6. (可选)通过 Adapty 客服导入历史数据 (30 分钟)

您的订阅用户将自动迁移

所有曾经激活过订阅的用户,只要打开集成了 Adapty SDK 的新版应用,就会立即迁移到 Adapty。订阅状态验证和高级功能访问权限将自动恢复。

在发布集成了 Adapty SDK 的新版应用之前,请务必查看我们的发布清单

了解核心差异;创建并准备 Adapty 账户

Adapty 与 RevenueCat 的 SDK 设计思路相似,最大的区别在于网络使用方式和响应速度:Adapty SDK 专为按需快速获取信息而设计,当你发起请求时,能以最快速度返回结果。例如,在请求付费墙时,你会先获取远程配置,用于预构建用户引导或付费墙界面,然后再通过专门的请求获取产品信息。

命名方式略有不同:

RevenueCatAdapty
Package产品
Offering付费墙
Paywall付费墙编辑工具
Entitlement访问等级

Adapty 有一个版位的概念。它是应用内用户可以发起购买的逻辑位置。大多数情况下,你会有一到两个版位:

  • 用户引导(因为 80% 的购买都发生在这里);
  • 通用版位(在用户完成引导后,在设置页面或应用内展示)。
2406d97-image.webp

安装 Adapty SDK 并替换 RevenueCat SDK

为你的平台安装 Adapty SDK(iOSAndroidReact NativeFlutterKotlin MultiplatformUnity),并集成到你的应用中。

你需要在应用端替换几个 SDK 方法。下面介绍最常用的函数及其对应的 Adapty SDK 替换方式。

SDK 激活

Purchases.configure 替换为 Adapty.activate

获取付费墙(产品组合)

Purchases.shared.getOfferings 替换为 Adapty.getPaywall

在 Adapty 中,你始终通过版位 ID 来请求付费墙。实际上,每次最多只会获取 1-2 个付费墙,这样设计是有意为之,目的是加快 SDK 速度并减少网络请求。

获取用户(客户用户画像)

Purchases.shared.getCustomerInfo 替换为 Adapty.getProfile

获取产品

在 RevenueCat 中,你使用以下结构:Purchases.shared.getOfferings,然后 self.offering?.availablePackages

在 Adapty 中,你首先请求一个付费墙(见上文)以立即访问 Adapty 的远程配置,然后通过 Adapty.getPaywallProducts 获取产品。

进行购买

Purchases.shared.purchase 替换为 Adapty.makePurchase

检查访问等级(权益)

先获取用户画像(请先阅读上文),然后将

customerInfo?.entitlements["premium"]?.isActive == true

替换为

profile.accessLevels["premium"]?.isActive == true

恢复购买

Purchases.shared.restorePurchases 替换为 Adapty.restorePurchases

检查用户是否已登录

Purchases.shared.isAnonymous 替换为 if profile.customerUserId == nil

登录用户

Purchases.shared.logIn 替换为 Adapty.identify

退出用户登录

Purchases.shared.logOut 替换为 Adapty.logout

将 App Store 服务器端通知切换到 Adapty

具体操作方法请参阅此处

测试并发布新版本应用

如果你看到这里,说明你已经完成了:

  • 配置 Adapty 看板
  • 安装 Adapty SDK
  • 用 Adapty 函数替换了原有 SDK 逻辑
  • 将 App Store 服务端通知切换至 Adapty,并可选择开启原始事件转发至 RevenueCat
  • 沙盒购买测试
  • 发布新版本应用

完成以上步骤后,在沙盒环境中进行一次测试购买,然后发布应用即可。

请参阅发布检查清单

使用我们的清单对现有集成进行最终检查,或添加归因分析集成等其他功能。

(可选)以 CSV 格式导出 RevenueCat 历史数据

不要急于导入历史数据

建议在集成 SDK 并发版后,至少等待一周再进行历史数据导入。在此期间,我们将通过 SDK 获取所有购买价格信息,从而使导入的数据更加准确。

请按照 RevenueCat 官方文档 中的说明,以 CSV 格式从 RevenueCat 导出您的历史数据。

(可选)向 RevenueCat 支持团队索取 Google Purchase Tokens

如果你需要导入 Google Play 交易记录,请通过 RevenueCat 的支持页面联系其支持团队,索取包含 Google Purchase Tokens 的 CSV 文件。Google Purchase Token 是 Google Play 为每笔交易提供的唯一标识符,对于在 Adapty 中准确追踪和验证购买记录至关重要。该信息不包含在标准导出文件中。该文件包含以下三列:

  • user_id
  • google_purchase_token
  • google_product_id

联系我们以导入历史数据

请通过网站聊天工具或发送邮件至 support@adapty.io 联系我们,并附上您的 CSV 文件。

  1. 将您从 RevenueCat 导出的 CSV 文件直接发送给我们的支持团队。
  2. 如果需要导入 Google Play 交易记录,请同时附上从 RevenueCat 支持团队获取的包含 Google Purchase Token 的 CSV 文件。
  3. 请告知我们应使用哪个用户 ID 作为 Customer User ID(Adapty 的主要用户标识符):rc_original_app_user_idrc_last_seen_app_user_id_alias

我们的支持团队将为您把交易记录导入 Adapty。每笔交易将导入以下数据:

参数描述
user_id客户用户 ID,即用户在 Adapty 和您系统中的主要标识符。
apple_original_transaction_id对于订阅链,这是原始交易的购买日期,通过 store_original_transaction_id 关联。
google_product_idGoogle Play 商店中的产品 ID。
google_purchase_tokenGoogle Play 为每笔交易提供的唯一标识符,用于验证。
country用户所在国家/地区。
created_at用户创建的日期和时间。
subscription_expiration_date订阅到期的日期和时间。
email终端用户的电子邮件。
phone_number终端用户的手机号码。
idfa广告主标识符(IDFA),由 Apple 分配给用户设备。
idfv供应商标识符(IDFV),由同一开发者分配给其所有应用,并在该设备上的这些应用间共享。
advertising_id由 Android 操作系统提供的唯一标识符,广告主可用于广告追踪。
attribution_channel营销渠道名称。
attribution_campaign营销活动名称。
attribution_ad_group归因广告组。
attribution_ad_set归因广告集。
attribution_creative归因创意关键词。

此外,以下集成的集成标识符也将被导入:Amplitude、Mixpanel、AppsFlyer、Adjust 和 FacebookAds。

常见问题

我已成功安装 Adapty SDK 并发布了包含它的新版本。那些没有更新到包含 Adapty SDK 版本的老订阅用户会怎样?

大多数用户会在夜间充电时让手机自动更新所有应用,因此这通常不是问题。确实可能还有少量付费订阅用户没有升级,但他们仍然可以访问高级内容。你不需要为此担心,也无需强制他们更新。

我需要尽快从 RevenueCat 导出历史数据吗?还是说不导出会丢失数据?

不需要那么着急,先发布集成了 Adapty SDK 的版本,之后再向我们提供历史数据即可。我们会还原用户的付款记录,并填充用户画像数据图表

我使用 MMP(AppsFlyer、Adjust 等)和分析工具(Mixpanel、Amplitude 等)。如何确保一切正常运行?

您首先需要通过我们的 SDK 将您希望我们发送数据的第三方服务 ID 传递给我们。请阅读归因集成分析集成的相关指南。对于历史数据和老用户,请确保您从 RevenueCat 导出的数据中将这些 ID 传递给我们。