サードパーティ連携に送信するイベント
Apple と Google は、App Store Server Notifications と Real-time Developer Notifications (RTDN) を通じてサブスクリプションイベントをサーバーに直接送信します。そのため、モバイルアプリがリアルタイムにアナリティクスシステムへイベントを送信することは難しい場合があります。たとえば、ユーザーがサブスクリプションを開始してもアプリを再度開かなかった場合、サーバーがなければ開発者はサブスクリプションのステータス更新を受け取れません。
Adapty はこのギャップを埋めるため、サブスクリプションデータを収集して人間が読みやすいイベントに変換します。これらの連携イベントは JSON 形式で送信されます。すべてのイベントは同じ構造を持ちますが、イベントの種類・ストア・設定内容によってフィールドが異なります。各イベントに含まれる正確なフィールドは、それぞれの連携ページで確認できます。
イベントが正常に処理されたかどうか、あるいは問題が発生したかどうかを判断する方法については、イベントステータスページをご覧ください。
イベントの種類
ほとんどのイベントは、有効化されているすべての連携に作成・送信されます。ただし、Access level updated イベントは、webhook 連携が設定されていてこのイベントが有効になっている場合にのみ発火します。このイベントは Event Feed に表示され、webhook にも送信されますが、他の連携には共有されません。
webhook 連携が設定されていない場合、またはこのイベントタイプが有効になっていない場合、Access level updated イベントは作成されず、Event Feed にも表示されません。
| イベント名 | 説明 |
|---|---|
| subscription_started | トライアル期間なしで有料サブスクリプションを開始したとき(つまり即座に課金されたとき)にトリガーされます。 |
| 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_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日目に解約した。
この場合、以下のイベントが送信されます:
trial_started:4月1日trial_renewal_cancelled:4月4日trial_expired:4月7日
例 2
ユーザーが4月1日に7日間のトライアル付き月次サブスクリプションを開始し、10日目に解約した。
この場合、以下のイベントが送信されます:
trial_started:4月1日trial_converted:4月7日subscription_renewal_cancelled:4月10日subscription_expired:5月1日
各シナリオでどのイベントが発火するかの詳細については、イベントフローをご確認ください。