RevenueCat 帮助您跟踪跨平台的应用内购买和订阅生命周期。通过 OneSignal,您可以使用这些数据根据用户的订阅状态发送个性化消息。
此集成会自动使用用户的最新订阅信息更新 OneSignal 中的用户标签。
主要优势
通过 RevenueCat-OneSignal 集成,您可以:
- 向免费试用或刚刚订阅的用户发送入门消息。
- 通过调查或折扣重新吸引流失的用户。
- 为购买、计费问题或续费发送事务消息。
通过在 OneSignal 中提供准确的订阅数据,您的活动将更加智能和有效。
将 OneSignal 连接到 RevenueCat
- 在您的 RevenueCat 仪表板中,导航至您的项目设置并从集成菜单中选择“OneSignal”。
- 添加您的 OneSignal 应用 ID 和 OneSignal API 密钥。更多信息请参阅密钥和 ID。
- 输入 RevenueCat 应使用的标签名称,或选择默认标签名称。
将 OneSignal ID 传递给 RevenueCat
RevenueCat 使用 OneSignal 用户 ID(OneSignal ID)根据用户的 RevenueCat 用户详细信息在 OneSignal 中更新用户标签。
在 OneSignal 中设置外部 ID 对于稳定的标识符是必需的。如果在会话中途更改,OneSignal ID 也可能会发生变化,从而中断 RevenueCat 连接。
要将 OneSignal ID 传递给 RevenueCat,您应该:
在 OneSignal 中设置外部 ID
在 OneSignal 中将外部 ID 设置为您的主要用户 ID。这可以通过 SDK login 方法完成。 获取 OneSignal ID
我们推荐使用用户状态观察者方法来获取 OneSignal ID,但我们也提供 getter 方法:
- User state observers:
- Getter methods:
将 OneSignal ID 传递给 RevenueCat
将 OneSignal ID 传递给 RevenueCat。
- RevenueCat 属性:
$onesignalUserId
- RevenueCat 帮助方法:
setOneSignalUserID()(推荐)
将 RevenueCat 事件发送到 OneSignal
将 OneSignal ID 映射到 RevenueCat 的用户将自动更新其标签。
Testing the integration
进行沙箱购买
模拟新用户安装您的应用程序,并通过您的应用流程完成沙箱购买。确保在 RevenueCat 中设置了 OneSignal ID。
检查是否收集了所需的设备数据
在 RevenueCat 中,导航至刚刚进行购买的测试用户的客户视图。确保所有必需的数据都作为用户属性列出。
检查 OneSignal 事件是否成功传递
仍在客户视图中时,点击客户历史中的测试购买事件,并确保 OneSignal 集成事件存在并已成功投递。
检查 OneSignal 标签是否已更新
在 OneSignal 中,导航至 Audience > Users 并搜索 OneSignal ID。您应该能看到由 RevenueCat 更新的标签。
集成完成!您现在应该能看到 OneSignal 中的标签会随着用户进行购买或更新其订阅状态而自动更新。
RevenueCat 事件标签
对于 RevenueCat 中的每个自动续订订阅事件,以下标签将在 OneSignal 中的用户上添加或更新。通过在 RevenueCat 仪表板中留空标签,您可以选择不为特定标签发送任何值。
| 标签 | 描述 |
|---|
app_user_id | 触发事件的 RevenueCat 应用用户 ID |
period_type | 购买或续订的最新期间类型。可以是:TRIAL(免费试用)、INTRO(介绍定价)、NORMAL(标准订阅) |
purchased_at | 最新订阅购买或续订的纪元时间(以秒为单位) |
expiration_at | 最新订阅到期日期的纪元时间(以秒为单位) |
store | APP_STORE、PLAY_STORE 或 STRIPE 之一 |
environment | SANDBOX 或 PRODUCTION 之一 |
last_event_type | 来自用户的最新事件类型。可以是:INITIAL_PURCHASE、TRIAL_STARTED、TRIAL_CONVERTED、TRIAL_CANCELLED、RENEWAL、CANCELLATION |
product_id | 用户已购买或续订的最新订阅产品标识符 |
entitlement_ids | 用户解锁的 RevenueCat 权限标识符的逗号分隔字符串 |
active_subscription | 在任何购买/续订事件上,此值将设置为 true,在 EXPIRATION 上设置为 false |
subscription_status | 请参阅下面的订阅状态属性 |
grace_period_expiration_at | 如果发生计费问题,我们将发送宽限期到期日期。 |
- 仅限自动续订订阅
- RevenueCat 仅响应自动续订订阅事件在 OneSignal 中更新数据标签。
RevenueCat 事件示例
提供的 JSON 示例显示了基于 RevenueCat 事件发送到 OneSignal 的标签。
事件保存为 last_event_type 标签。
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1600016247,
"expiration_at": 1602608247,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "initial_purchase",
"last_event_at": 1600016250,
"product_id": "monthly_sub",
"entitlement_ids": "Pro"
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "TRIAL",
"purchased_at": 1600031584,
"expiration_at": 1600290784,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "trial_started",
"last_event_at": 1600031586,
"product_id": "three_month_sub_trial",
"entitlement_ids": "Pro"
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1602136340,
"expiration_at": 1602741140,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "trial_converted",
"last_event_at": 1602114850,
"product_id": "weekly_sub_trial",
"entitlement_ids": null
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "TRIAL",
"purchased_at": 1602051920,
"expiration_at": 1602311120,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "trial_cancelled",
"last_event_at": 1602129368,
"product_id": "weekly_sub_trial",
"entitlement_ids": null
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1602125078,
"expiration_at": 1604807078,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "renewal",
"last_event_at": 1602122793,
"product_id": "monthly_sub",
"entitlement_ids": "Pro"
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1602086660,
"expiration_at": 1602691460,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "cancellation",
"last_event_at": 1602118600,
"product_id": "weekly_sub",
"entitlement_ids": null
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "TRIAL",
"purchased_at": 1663445025,
"expiration_at": 1664049825,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "uncancellation",
"last_event_at": 1663969096,
"product_id": "annual_sub",
"entitlement_ids": "Premium"
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"purchased_at": 1602086660,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "non_renewing_purchase",
"last_event_at": 1602118600,
"product_id": "one_time_purchase_product",
"entitlement_ids": null
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1602086660,
"expiration_at": 1602691460,
"store": "PLAY_STORE",
"environment": "PRODUCTION",
"last_event_type": "subscription_paused",
"last_event_at": 1602118600,
"product_id": "weekly_sub",
"auto_resume_at": 1602119600,
"entitlement_ids": null
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"period_type": "NORMAL",
"purchased_at": 1652374230,
"expiration_at": 1652979030,
"last_event_type": "expiration",
"last_event_at": 1652988735
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "TRIAL",
"purchased_at": 1652383957,
"expiration_at": 1654371157,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "billing_issue",
"last_event_at": 1652988776,
"product_id": "annual_sub",
"entitlement_ids": "Premium"
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1602086660,
"expiration_at": 1602691460,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "product_change",
"last_event_at": 1602118600,
"product_id": "weekly_sub",
"new_product_id": "monthly_sub",
"entitlement_ids": null
}
}
subscription_status tag
每当 RevenueCat 向 OneSignal 发送事件时,subscription_status 标签会使用以下值之一添加或更新任何适用的更改:
| 状态 | 描述 |
|---|
| active | 客户拥有活跃的付费订阅,该订阅将在下一个续订日期续订。 |
| intro | 客户通过付费介绍优惠拥有活跃的付费订阅。 |
| cancelled | 客户拥有付费订阅,该订阅将在下一个续订日期到期。 |
| grace_period | 客户拥有付费订阅,该订阅在续订失败后进入了宽限期。 |
| trial | 客户处于试用期,试用期结束时将转为付费。 |
| cancelled_trial | 客户处于试用期,试用期结束时将到期。 |
| grace_period_trial | 客户原本处于试用期,现在在续订失败后进入了宽限期。 |
| expired | 客户的订阅已到期。 |
| promotional | 客户通过 RevenueCat 拥有某项权限的访问权 |
| expired_promotional | 客户之前通过 RevenueCat 授予权限拥有某项权限的访问权,现已到期。 |
| paused | 客户拥有已暂停的付费订阅,订阅将在未来某个日期恢复。 |
对于拥有多个活跃订阅的客户,此属性将仅表示发生最近事件的订阅状态。
常见问题
如何知道集成是否正常工作?
在 OneSignal 中,导航至 Audience > Users 并搜索 OneSignal ID。您应该能看到由 RevenueCat 更新的标签。
您还可以转到 Audience > Segments 并创建一个细分,用于筛选您通过 RevenueCat 设置的标签。
我可以设置多少个标签?
OneSignal 中可以设置的标签数量没有限制,但对于每个用户在特定时间可以拥有的标签数量有限制。
更多信息请参阅我们的价格页面。