Amplitude
Amplitude 是一款功能强大的移动分析服务。借助 Adapty,你可以轻松地将事件发送到 Amplitude,了解用户行为,并做出更明智的决策。
Adapty 提供完整的数据集,让你可以在一个地方追踪来自各应用商店的订阅事件,并将其发送到你的 Amplitude 账户。这样你就能在 Amplitude 中将用户行为与其付款历史相匹配,从而为产品决策提供依据。
如何设置 Amplitude 集成
在 Adapty 中,你可以为来自 Apple 或 Stripe 沙盒环境或 Google 测试账户的生产事件和测试事件分别设置独立的流程。
- 对于生产事件,请在 Adapty 中输入 Amplitude 看板中的 Production API 密钥,每个平台(iOS、Android 和 Stripe)使用各自独立的 API 密钥。
- 对于测试事件,请按需填写 Sandbox 字段。
设置 Amplitude 集成的步骤:
- 在 Adapty 看板中打开 Integrations -> Amplitude。
-
打开 Amplitude integration 开关以启用该集成。
-
填写集成字段:
字段 说明 Amplitude iOS/ Android/ Stripe API key 将 iOS/ Android/ Stripe 对应的 Amplitude API Key 填入 Adapty。可在 Amplitude 的 Project settings 中找到。如需帮助,请查阅 Amplitude 文档。建议先使用 Sandbox 密钥进行测试,测试通过后再切换为 Production 密钥。
-
可选设置,用于进一步自定义:
参数 说明 How the revenue data should be sent 选择发送含税含佣金的总收入,还是扣除税费和佣金后的净收入。详情请参阅商店佣金与税费。 Exclude historical events 选择是否排除 Adapty SDK 安装前的事件,以防止数据重复。例如,如果用户在 1 月 10 日订阅,但在 3 月 6 日才安装 Adapty SDK,则 Adapty 仅会发送 3 月 6 日起的事件。 Send User Attributes 选择此选项以发送用户特定属性,例如语言偏好。 Always populate user_id Adapty 会自动将 device_id作为amplitudeDeviceId发送。对于user_id,此设置定义以下行为:- 开启:若
amplitudeUserId或customer_user_id不可用,则发送 Adapty 的profile_id。 - 关闭:若两个 ID 均不可用,则
user_id留空。
- 开启:若
-
选择你希望接收的事件,并映射其名称。
-
点击 Save 保存更改。
点击 Save 后,Adapty 将开始向 Amplitude 发送事件。
除事件外,Adapty 还会将订阅状态和订阅产品 ID 发送至 Amplitude 用户属性。
事件与标签
在凭据下方,有三组事件可供你从 Adapty 发送至 Amplitude,直接开启所需事件即可。完整的 Adapty 事件列表请参阅此处。
我们建议使用 Adapty 提供的默认事件名称。当然,你也可以根据需要修改事件名称。Adapty 将通过服务器到服务器的集成方式向 Amplitude 发送订阅事件,让你可以在 Amplitude 看板中查看所有订阅事件。
SDK 配置
使用 setIntegrationIdentifier() 方法设置 amplitude_device_id 参数,这是设置集成的必要步骤。
如果你有用户注册流程,也可以同时传入 amplitude_user_id。
如果您使用第三方用户 ID 作为 Customer User ID,请不要在 activate() 时传入——第三方 SDK 可能尚未生成该 ID。请先不带 CUID 调用 activate(),然后调用 setIntegrationIdentifier(),最后再使用 CUID 调用 identify()。
Amplitude 事件结构
Adapty 通过 HTTP API v2 向 Amplitude 发送事件,每个事件的结构如下:
{
"api_key": "your_amplitude_api_key",
"events": [
{
"partner_id": "adapty",
"event_type": "subscription_renewed",
"time": 1709294400000,
"insert_id": "123e4567-e89b-12d3-a456-426614174000",
"user_id": "user_12345",
"device_id": "device_12345",
"platform": "iOS",
"os_name": "iOS",
"productId": "yearly.premium.6999",
"revenue": 9.99,
"event_properties": {
"vendor_product_id": "yearly.premium.6999",
"original_transaction_id": "GPA.3383...",
"currency": "USD",
"environment": "Production",
"store": "app_store"
},
"user_properties": {
"subscription_state": "subscribed",
"subscription_product": "yearly.premium.6999"
}
}
]
}
各字段说明:
| 参数 | 类型 | 说明 |
|---|---|---|
api_key | String | 你的 Amplitude API 密钥。 |
events | Array | 事件对象列表(Adapty 每次发送一条)。 |
events[].partner_id | String | 固定为 “adapty”。 |
events[].event_type | String | 事件名称(从 Adapty 事件映射而来)。 |
events[].time | Long | 事件时间戳,单位为毫秒。 |
events[].insert_id | String | 唯一事件 ID(UUID)。 |
events[].user_id | String | Amplitude 用户 ID 或客户用户 ID。 |
events[].device_id | String | Amplitude 设备 ID。 |
events[].platform | String | 平台(如 “iOS”、“Android”)。 |
events[].os_name | String | 操作系统名称。 |
events[].productId | String | 应用商店中的产品 ID。 |
events[].revenue | Float | 收入金额。 |
events[].event_properties | Object | 详细事件属性(包含所有可用的事件字段)。 |
events[].user_properties | Object | 用户属性,如订阅状态。 |