发送给第三方集成的事件

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

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

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

事件类型

大多数事件会在创建后发送到所有已配置的集成(前提是相应集成已启用)。但 Access level updated 事件仅在配置了 webhook 集成 且该事件已启用时才会触发。该事件会显示在 Event Feed 中,并发送到 webhook,但不会共享给其他集成。

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

事件名称描述
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 客服处理)。
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

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