发送给第三方集成的事件

Apple 和 Google 通过 App Store Server Notifications实时开发者通知 (RTDN) 直接将订阅事件发送到服务器。因此,移动应用无法实时可靠地将事件发送到分析系统。例如,如果用户订阅后从未重新打开应用,开发者在没有服务器的情况下将无法收到任何订阅状态更新。

Adapty 通过收集订阅数据并将其转化为可读事件来弥补这一不足。这些集成事件以 JSON 格式发送。虽然所有事件共享相同的结构,但其字段会根据事件类型、商店及具体配置而有所不同。您可以在相应的集成页面上找到每个事件中包含的确切字段。

要了解如何判断事件是否已成功处理或是否出现了问题,请查看事件状态页面。

事件类型

大多数事件会在已启用的情况下创建并发送到所有已配置的集成。但是,Access level updated 事件仅在Webhook 集成已配置且该事件已启用时才会触发。该事件将显示在事件动态中,也会发送到 Webhook,但不会与其他集成共享。

如果未配置 Webhook 集成或未启用此事件类型,Access level updated 事件将不会被创建,也不会出现在事件动态中。

事件名称描述
subscription_started当用户激活不含试用期的付费订阅时触发,即立即计费。
subscription_renewed当订阅续期并向用户收费时发生。此事件从第二次计费开始触发,无论是试用订阅还是非试用订阅。
subscription_renewal_cancelled用户已关闭订阅自动续期。用户在付费订阅期结束前仍可访问高级功能。
subscription_renewal_reactivated当用户重新激活订阅自动续期时触发。
subscription_expired当订阅取消后完全结束时触发。例如,若用户在 12 月 12 日取消订阅,但订阅在 12 月 31 日前仍处于活跃状态,则该事件在 12 月 31 日订阅到期时记录。
subscription_paused当用户激活订阅暂停时发生(仅限 Android)。
subscription_deferred当订阅购买被延迟时触发,允许用户在延迟付款的同时继续访问高级功能。此功能通过 Google Play Developer API 提供,可用于免费试用或为面临经济困难的用户提供便利。
non_subscription_purchase任何非订阅购买,例如永久授权或消耗型商品(如游戏内金币)。
trial_started当用户激活试用订阅时触发。
trial_converted当试用期结束并向用户收费(首次购买)时发生。例如,若用户的试用期至 1 月 14 日,但在 1 月 7 日被收费,则该事件在 1 月 7 日记录。
trial_renewal_cancelled用户在试用期间关闭了订阅自动续期。用户在试用期结束前仍可访问高级功能,但不会被收费或开始订阅。
trial_renewal_reactivated当用户在试用期间重新激活订阅自动续期时发生。
trial_expired当试用期结束且未转化为订阅时触发。
entered_grace_period当付款尝试失败且用户进入宽限期(如已启用)时发生。用户在此期间仍保留高级访问权限。
billing_issue_detected当计费尝试过程中发生计费问题时触发(例如,银行卡余额不足)。
subscription_refunded当订阅被退款时触发(例如,由 Apple Support 处理)。
non_subscription_purchase_refunded当非订阅购买被退款时触发。
access_level_updated当用户的访问等级更新时发生。

上述事件完整涵盖了用户在购买方面的状态。下面来看几个示例。

示例 1

用户于 4 月 1 日激活了一个包含 7 天试用期的月度订阅。第 4 天,他取消了订阅。

在这种情况下,将发送以下事件:

  1. 4 月 1 日发送 trial_started
  2. 4 月 4 日发送 trial_renewal_cancelled
  3. 4 月 7 日发送 trial_expired

示例 2

用户于 4 月 1 日激活了一个包含 7 天试用期的月度订阅。第 10 天,他取消了订阅。

在这种情况下,将发送以下事件:

  1. 4 月 1 日发送 trial_started
  2. 4 月 7 日发送 trial_converted
  3. 4 月 10 日发送 subscription_renewal_cancelled
  4. 5 月 1 日发送 subscription_expired

有关每种场景下触发哪些事件的详细说明,请查看事件流程