App Store Server Notifications
2021年06月7日ごろから、CONSUMPTION_REQUESTという、notification_typeが新たに届くようになりました。
この通知タイプがどういうものなのか調べてみたので、メモしておきます。
App Store Server Notifications とは
App Storeから、ユーザーの返金申請などを受理した際の通知を、あらかじめ指定したサーバーに通知してくれる機能です。
返金申請以外にも、サブスクリプションの開始や更新、キャンセルもこの通知で検知する事が出来る。
notification_type
AppStoreからくる通知内容に、notification_typeというキーで、通知の種別が来ます。
返金処理がされた時には、REFUNDが通知されるなど。
タイプごとに、通知の意味と詳細が変わって来ます。
通知タイプはこんな感じ。
- CANCEL
- CONSUMPTION_REQUEST
- DID_CHANGE_RENEWAL_PREF
- DID_CHANGE_RENEWAL_STATUS
- DID_FAIL_TO_RENEW
- DID_RECOVER
- DID_RENEW
- INITIAL_BUY
- INTERACTIVE_RENEWAL
- PRICE_INCREASE_CONSENT
- REFUND
- REVOKE
CONSUMPTION_REQUESTタイプとは
ユーザーが返金申請を開始すると、
CONSUMPTION_REQUESTという通知タイプで、アップルから通知されるようになりました。
この通知がアップルから来てから、12時間以内であれば、
後述するConsumptionというAPIリクエストで、別途ユーザーのアプリ内情報をアップルに送信して、提供する事ができるようです。
こちらが提供した情報により、アップル側での返金申請の処理がスムーズに進むそうだ。
ConsumptionRequestを送信する
前述した、CONSUMPTION_REQUESTタイプの通知を受けとってから、
12時間以内に、こちらから情報提供ができます。
提供するには、Consumption というAPIを使って、こちらから情報送信します。
PUT https://api.storekit.itunes.apple.com/inApps/v1/transactions/consumption/{originalTransactionId}
この情報により、アップル側の返金申請をスムーズにする為と、
申請処理の精度を上げるためだと思われる。
提供する情報は下記のとおり、
ユーザーのアプリ内情報をアップルに送信する事になる。
送信する場合は予めユーザーに同意をとっておく必要がありそう。
送信内容には、そのためのフィールド(customerConsented)が用意されている。
提供する情報は以下のとおり
- アカウント作成からの経過日数
- アプリ実施時間
- 累計課金額
- 返金申請された商品の受け取り状況
- 返金申請された商品の消費状況
- ユーザーの活動状況(アクティブ、休眠、凍結、退会など)
- 情報提供に対するユーザーの同意有無
まとめ
ユーザーがアップルに返金申請をしたタイミングでCONSUMPTION_REQUEST通知が送られてくる。
この通知が来たら、ConsumptionAPIを使って、ユーザーのアプリ内情報を提供できる。
通常は48時間ほどで返金申請が受理されて、REFUNDの通知がくるが、
情報提供をした場合には、このアップル側での手続きがスムーズになり、申請処理が短くなるものだと思われる。
また、返金申請の可否判断などの精度も向上するんじゃないかと期待してますが、
実際のところどうなんでしょうか。