サードパーティ統合に送信するイベント

AppleとGoogleは、App Store サーバー通知とリアルタイムデベロッパー通知を通じて、サブスクリプションイベントをAdaptyサーバーに直接報告します。これにより、ユーザーがコンバート、更新、または解約したことを把握できます。

これらのイベントを転送するには、Adapty でデスティネーションを設定します。サードパーティプラットフォーム(MMP、アナリティクス、メッセージングツール)はそれぞれ専用のインテグレーションページがあります。自社のバックエンドへはウェブフックでイベントを受け取れます。

すべてのイベントは共通の構造を持ちますが、フィールドはイベントタイプ、ストア、設定によって異なります。ウェブフックイベントタイプとフィールドではウェブフックのペイロードを説明しており、各インテグレーション記事ではそのデスティネーションが受け取るフォーマットを説明しています。イベントステータスでは配信ステータスの見方を説明しています。

例

ほとんどのイベントは、最初の課金から有効期限切れまでのユーザーの購入に沿って発生します。

ユーザーがトライアル中にキャンセルする場合

ユーザーが4月1日に7日間のトライアル付き月額サブスクリプションを有効化し、4日目にサブスクリプションを解除した場合。

この場合、以下のイベントが送信されます:

  1. 4月1日に trial_started
  2. 4月4日に trial_renewal_cancelled
  3. 4月7日に trial_expired

ユーザーがコンバージョン後にキャンセルした場合

ユーザーは4月1日に7日間のトライアル付き月次サブスクリプションを有効化し、10日目に解約しました。

この場合、以下のイベントが送信されます:

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

各シナリオでどのイベントが発生するかの詳細については、イベントフローをご覧ください。

イベントリスト

各インテグレーションが受け取るイベントを制御できます。ほとんどのイベントはすべてのインテグレーションで利用できますが、以下の3つは例外です。

  • Access level updated は、webhook インテグレーションが設定されており、かつイベントが有効になっている場合にのみトリガーされます。Event Feed に表示され、webhook に送信されますが、他のインテグレーションには届きません。webhook インテグレーションが設定されていない場合、またはイベントタイプが有効になっていない場合、Adapty はイベントを作成せず、Event Feed にも表示されません。
  • Trial still active と Subscription still active は合成イベントであり、一部のインテグレーションのみが受信します。

以下の表は、Adapty がサードパーティのインテグレーションに送信できるすべてのイベントを一覧にしたものです:

イベント名説明
subscription_startedトライアル期間なしで有料サブスクリプションを有効にしたとき(つまり即時請求が発生したとき)にトリガーされます。
subscription_activesubscription_started イベントの後、サブスクリプションがまだアクティブであることを確認します。サブスクリプション開始からこの確認までの日数を設定する必要があります。ユーザーがグレース期間に入っている場合も含め、サブスクリプションがアクティブであればイベントが届きます。その時点でサブスクリプションが終了していた場合、または自動更新をオフにしていた場合は何も届かず、Adapty は再確認を行いません。このイベントはトライアルなしで購入されたサブスクリプションにのみ続きます。トライアルからの移行時は trial_converted が送信されますが、その場合はこの確認はトリガーされません。
subscription_renewedサブスクリプションが更新され、ユーザーに請求が発生したときに発生します。このイベントはトライアルあり・なしに関わらず、2回目以降の請求から記録されます。
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_activetrial_started イベントの後、トライアルがまだアクティブであることを確認します。トライアル開始からこの確認までの日数を設定する必要があります。トライアルがまだ続いていればイベントが届きます。その時点でトライアルが終了・移行していた場合、または自動更新をオフにしていた場合は何も届かず、Adapty は再確認を行いません。
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ユーザーのアクセスレベルが更新されたときに発生します。

合成イベント

ほとんどのイベントは、購入・更新・解約などの変化をトリガーにして発火します。Trial still active と Subscription still active イベントはその逆です。タイマーを設定しておくと、タイマーが切れたタイミングで Adapty がトライアルまたはサブスクリプションのステータスを確認します。トライアルやサブスクリプションが終了していなかった場合、Adapty が対応するイベントを発火します。

これらの合成イベントは、Adjust、Amplitude、AppMetrica、AppsFlyer、Branch、Facebook Analytics、Firebase、Mixpanel、OneSignal、PostHog、Singular、SplitMetrics、および Webhook で利用できます。手動で有効にする必要があります。

ユーザーがタイマーの期限が切れる前に自動更新をオフにした場合、Adapty は送信をスキップします。アクセスが支払い済み期間の終わりまで続いているにもかかわらず、そのユーザーを離脱済みとしてカウントします。

このイベントをオフにすると、Adapty は新しいタイマーの開始を停止します。すでに実行中のタイマーは期限が切れると送信されるため、設定した遅延時間の分だけ、送信先がイベントを受け取り続ける場合があります。

Note

Adapty Attributionは、MetaおよびTikTokキャンペーン向けに同様の機能を提供しています:Qualified trialsは、トライアルイベントを1〜24時間保留します。trial_activeは1時間〜90日間待機します。どちらも、ユーザーが自動更新をオフにした場合はイベントの送信をスキップします。これらは異なる場所で設定するものであり、互いに影響しません。

トライアルが進行中の場合

  • インテグレーション: AppsFlyer
  • イベント: トライアルがアクティブ
  • 遅延: 3日
  • トライアル開始: 4月1日
  • トライアル終了: 4月7日

AppsFlyer が受信するイベント:

  1. 4月1日に trial_started
  2. 4月4日に trial_active
  3. 4月7日に trial_converted

次の点に注意してください:

  • トライアルがコンバートされているため、subscription_active イベントは受信されません。
  • 遅延を7日に設定した場合、trial_active はまったく届きません。その時点では、ユーザーはすでにコンバートしているためです。

サブスクリプションが継続中の場合

  • インテグレーション: Webhook
  • イベント: サブスクリプションがアクティブ
  • 遅延: 7日間
  • サブスクリプション開始日: 4月1日(トライアルなし)
  • 更新日: 5月1日

Webhookが受け取るイベント:

  1. 4月1日に subscription_started
  2. 4月8日に subscription_active
  3. 5月1日に subscription_renewed
  • サブスクリプションはトライアルなしで開始する必要があります。トライアルから変換された場合は trial_converted が送信され、タイマーはスタートしません。
  • ユーザーが4月3日に自動更新をオフにした場合、アクセス期限が5月1日まであるにもかかわらず、subscription_active は届きません。
  • 5月の更新では2回目のタイマーはスタートしません。subscription_active は1つのサブスクリプションにつき1回だけ受信します。