将历史数据导入 Adapty

安装 Adapty SDK 并发布应用后,你可以在 Profiles 部分查看用户和订阅者。但如果你有旧系统需要迁移到 Adapty,或者只是想在 Adapty 中查看现有数据,该怎么办?

数据导入并非必须

一旦用户打开集成了 Adapty SDK 的应用,Adapty 会自动为历史用户授予访问等级并恢复其购买事件。在这种情况下,无需导入历史数据。不过,如果你有大量历史交易记录,导入数据可以确保分析数据的准确性,但对于迁移而言通常并非必须。

将数据导入 Adapty 的步骤如下:

  1. 将交易记录导出为 CSV 文件(iOS、Android 和 Stripe 需分别提供独立文件)。详细格式要求请参阅下方的导入文件格式说明
  2. 如果任意文件超过 1 GB,请准备一个约 100 行的数据样本。
  3. 将所有文件上传至 Google Drive(可以压缩,但需保持独立文件)。
  4. 对于 iOS 交易记录,即使使用的是 StoreKit 1,也请确保 App settings 中的 In-app purchase API 部分已填写 Issuer IDKey IDPrivate key(.P8 文件)。详细操作说明请参阅提供 Issuer ID 和 Key ID上传 In-App Purchase Key 文件
  5. 通过电子邮件或 Adapty 看板内的在线客服将链接分享给我们的团队。

放心,导入历史数据不会产生重复记录,即使数据与 Adapty 中已有条目存在重叠。

Android 已知限制

  1. 只会恢复有效订阅,已过期的交易记录不会被恢复。
  2. 只会恢复订阅中最近一次续订记录,完整的购买链不会被恢复。
  3. 如果产品价格在购买后发生了变化,将使用当前价格,可能导致定价不准确。

如果你有大量 Android 交易记录,在开始导入前可能需要申请提高 Google Play Developer API 配额,以避免超出默认 API 限制。

导入文件格式

如果你正在从 RevenueCat 迁移,可以直接发送 RevenueCat 导出文件,无需转换。导出说明请参阅 RevenueCat 文档

请按照以下规则准备数据文件:

  • 文件格式为 .CSV。
  • Android、iOS 和 Stripe 导入需使用独立文件。
  • 每个导入文件包含所有必填列
  • 导入文件中的列需有标题行。
  • 列标题须与下表 Column name 列中的内容完全一致,请仔细检查是否有拼写错误。
  • 不需要的列可以不出现在文件中,不要为没有数据的字段添加空列。
  • 导入文件不应包含表中未提及的额外列,如有请删除。
  • 值之间用逗号分隔。
  • 值不需要用引号括起来。
  • 如果一个用户有多个 apple_original_transaction_id,请为每个 apple_original_transaction_id 单独添加一行,否则可能无法恢复消耗型商品的购买记录。

iOS 和 Android 的示例文件请参考:iOSAndroid

可用的导入文件列

列名是否必填说明
user_id必填你的用户 ID
apple_original_transaction_idiOS 必填

原始交易 ID(OTID,了解更多),用于 StoreKit 2 导入机制。由于一个用户可能有多个 OTID,只需提供至少一个即可成功导入。

注意: 此导入需要在 Adapty 看板中配置 In-app purchase API 凭据。操作说明请参阅此处

google_product_idGoogle 必填Google Play Store 中的产品 ID。
google_purchase_tokenGoogle 必填唯一标识符,代表用户及其购买的应用内产品 ID
google_is_subscriptionGoogle 必填可选值为 1 | 0
stripe_tokenStripe 必填代表唯一购买记录的 Stripe 对象 token,可以是 Stripe 订阅的 token(sub_...)或 Payment Intent 的 token(pi_...)。
subscription_expiration_date可选订阅到期日期,即下次扣费日期,包含时区的日期时间格式(2020-12-31T23:59:59-06:00)
created_at可选用户画像创建的日期时间(2019-12-31 23:59:59-06:00)
birthday可选用户生日,格式为 2000-12-31
email可选用户的电子邮件地址
gender可选用户性别
phone_number可选用户的电话号码
country可选格式为 ISO 3166-1 alpha-2
first_name可选用户名字
last_name可选用户姓氏
last_seen可选包含时区的日期时间(2020-12-31T23:59:59-06:00)
idfa可选广告标识符(IDFA)是 Apple 为用户设备随机分配的设备标识符,仅适用于 iOS 应用
idfv可选供应商标识符(IDFV)是分配给同一开发者旗下所有应用的唯一代码,仅适用于 iOS 应用
advertising_id可选广告 ID 是由 Android 操作系统分配的唯一代码,广告商可用其唯一标识用户设备
amplitude_user_id可选Amplitude 中的用户 ID
amplitude_device_id可选Amplitude 中的设备 ID
mixpanel_user_id可选Mixpanel 中的用户 ID
appmetrica_profile_id可选AppMetrica 中的用户画像 ID
appmetrica_device_id可选AppMetrica 中的设备 ID
appsflyer_id可选AppsFlyer 的唯一标识符
adjust_device_id可选Adjust 中的设备 ID
facebook_anonymous_id可选Facebook 为匿名与你的应用或网站互动(即未登录 Facebook)的用户生成的唯一标识符
branch_id可选Branch 的唯一标识符
attribution_source可选归因来源集成,例如 appsflyer
attribution_status可选organic
attribution_channel可选带来该交易的归因渠道
attribution_campaign可选带来该交易的归因活动
attribution_ad_group可选带来该交易的归因广告组
attribution_ad_set可选带来该交易的归因广告集
attribution_creative可选广告或营销活动中用于追踪效果的具体视觉或文字素材,用于衡量其在推动点击、转化或安装等目标行为方面的效果
custom_attributes可选以 JSON 字典的键值格式定义最多 30 个自定义属性:
  • key:(字符串)自定义属性名称
  • value:(字符串、整数、浮点数或布尔值)自定义属性值。

格式:"{'string_value': 'some_value', 'float_value': 123.0, 'int_value': 456}"

注意格式中双引号和单引号的使用,布尔值和整数将被转换为浮点数。

必填字段

每个平台有两组必填字段:user_id 以及用于识别对应平台购买记录的数据。各平台的必填字段请参见下表。

平台必填字段
iOS

user_id

apple_original_transaction_id

Android

user_id

google_product_id

google_purchase_token

google_is_subscription

Stripe

user_id

stripe_token

缺少这些字段,Adapty 将无法获取交易记录。

为了获得准确的同期群分析,请填写 created_at。若未提供,我们将以首次购买日期作为安装日期。

将数据导入 Adapty

请通过 [email protected]Adapty 看板 内的在线客服联系我们并分享导入文件。