リアルタイム通知(RTN)について
リアルタイム通知(RTN)は、アプリ内課金(IAP)に関する包括的なデータをリアルタイムで提供するサーバー間プッシュ通知です。この情報を使用して、ユーザーのIAPアイテムに関連する購入ステータスの変更をモニタリングできます。
リアルタイム通知(RTN)の概要
Amazonでは、ユーザーによるIAPアイテムの購入ステータスをレシートによって開発者に通知します。レシートには、現在の注文ステータスと、開発者が定義したIAPアイテムの詳細が含まれています。
RTNを使用しない場合は、「プルモデル」に従って最新のレシートステータスを取得します。プルモデルでは、開発者が定期的にレシート検証サービス(RVS)を呼び出して、Amazonのサービスに更新情報を照会する必要があります。一方、RTNは「プッシュモデル」を使用します。プッシュモデルでは、Amazonによってリアルタイムのサーバープッシュ通知が提供されます。AmazonのRTNサーバーは、ユーザーの購入に関する情報が格納された通知を、開発者のバックエンドサーバーに送信します。その後、この情報をRVSによって検証できます。
リアルタイム通知(RTN)は、レシート検証サービス(RVS)に追加する形で使用できます。次の図は、RVSとRTNのプロセスがどのようにやり取りするかを示しています。

図に示されているプロセスを以下に説明します。
手順1~5: これは通常のRVSのフローです。
- ユーザーがIAPを開始します。
- アプリがアプリサーバーに購入レシートを転送します。
- アプリサーバーがRVSサーバーにレシート検証リクエストを送信します。
- レシートが有効であることをRVSサーバーが確認します。
- コンテンツがユーザーに配信されます。
詳細については、レシート検証サービスの概要を参照してください。
手順6: RTNが、ユーザーのIAPに関する通知メッセージをアプリサーバーに送信します。
手順7: アプリサーバーが、レシートの検証リクエストをRVSサーバーに送信し、レシートに関するすべての情報を取得します。
手順8: RVSサーバーが、レシートの有効性を確認し、レシートに関連付けられた情報を返します。
RTNのフロー(手順6~8)を開始するために、RVSのフロー(手順1~5)が完了している必要はありません。各フローは並行して実行できます。
前提条件
RTNを使用する前に、環境がRTNレスポンスを受信するように構成されていることを確認してください。RTNは開発者にメッセージをプッシュするため、Amazonからメッセージを送信できる、一般に公開されたセキュアな宛先が必要です。次の要件を満たすバックエンドサーバーを用意する必要があります。
- RTNレスポンスを受信するHTTPSエンドポイントを公開する。
- Amazonから送信されたHTTPS POSTリクエストを処理する。
- 各メッセージに対して
200レスポンスコードを返して確認する。 - 信頼された証明書プロバイダーから発行された有効なSSL証明書を使用する。
サーバーがこれらの要件を満たしていることを確認したら、開発者コンソールでエンドポイントを登録し、確認トークンフローを完了します。詳細については、リアルタイム通知(RTN)を使用する方法を参照してください。
RTNのライブアプリテスト
アプリをリリースする前に、ライブアプリテスト(LAT)を使用して、エンドポイントがRTNを正しく受信して処理することを確認してください。LATを使用すると、ライブユーザーに影響を与えることなく、制御されたテスト環境で実際のIAPトランザクションを実行できます。
LATを通じてIAPを行うと、AmazonのサーバーはbetaProductTransaction=trueという属性を含むRTNペイロードを返します。この属性を使用してテスト通知と本番通知を区別することで、それぞれをサーバーで適切に処理できます。
RTNメッセージの詳細
RTNは、JSONメッセージを通じてHTTPSエンドポイントに配信されます。各通知には、以下に示すJSONペイロードが含まれています。詳細については、Amazon Simple Notification Service(SNS)デベロッパーガイドを参照してください。
RTNのMessage属性には、次のフィールドを含むJSONがエスケープされて格納されています。
| フィールド | データ型 | 説明 | レスポンスの例 |
|---|---|---|---|
receiptId
|
文字列 | 購入の一意の識別子。文字列の最大長は200文字で、英数字と句読点を使用できます。 | kyplB1fdRX1m6/GNAVW0l6jv9Nl1V/GemSopKBHM84w=
|
relatedReceipts
|
マップ | 送信された通知に関連付けられた追加のレシート。 | cancelledReceiptId(SUBSCRIPTION_MODIFIED_IMMEDIATE通知の場合は、その前にキャンセルされたレシートの一意の識別子)
|
appUserId
|
文字列 | Amazonアプリストアで公開したアプリを使用する個々のAmazonユーザーを表す識別子。文字列の最大長は128文字で、英数字と句読点を使用できます。 | wE1EG1gsEZI9q9UnI5YoZ2OxeoVKPdR5bvPMqyKQq5Y=:1:11
|
notificationType
|
文字列 | 通知タイプ。 | 詳細と例については、次のセクションのサポートされている通知の表を参照してください。 |
appPackageName
|
文字列 | アプリを識別するアプリパッケージ名。 | com.myapp.sample.android
|
timestamp
|
長整数 | エポック時間。 | 1402008634018 |
betaProductTransaction
|
ブール型 | トランザクションの対象がライブアプリテスト商品かどうかを示します。 | true/false
|
サポートされている通知タイプ
RTNメッセージには、各タイプのIAP(定期購入型アイテム、非消費型アイテム、消費型アイテム)に関する情報が含まれています。
通知タイプは、Amazonによって随時追加または変更される場合があります。新しい通知タイプが追加された際は、開発者向けにお知らせします。通常、Amazonでは、該当しない通知タイプはすべて無視することを推奨しています。
次の表は、現在使用されている通知タイプをまとめたものです。
| 通知タイプ | 説明 |
|---|---|
CONSUMABLE_CANCELLED |
消費型アイテムが自発的または意図せずにキャンセルされました。 |
CONSUMABLE_PURCHASED |
消費型アイテムが購入されました。 |
ENTITLEMENT_CANCELLED |
非消費型アイテムが自発的または意図せずにキャンセルされました。 |
ENTITLEMENT_PURCHASED |
非消費型アイテムが購入されました。 |
SUBSCRIPTION_AUTO_RENEWAL_OFF |
定期購入の自動更新機能がオフになりました。 |
SUBSCRIPTION_AUTO_RENEWAL_ON |
定期購入の自動更新機能がオンになりました。 |
SUBSCRIPTION_CANCELLED |
定期購入型アイテムが自発的または意図せずにキャンセルされました。 |
SUBSCRIPTION_CONVERTED_FREE_TRIAL_TO_PAID |
アクティブな無料トライアルの定期購入型アイテムが有料の定期購入型アイテムに変換されました。 |
SUBSCRIPTION_EXPIRED |
定期購入型アイテムの期限が切れました。 |
SUBSCRIPTION_IN_GRACE_PERIOD |
定期購入型アイテムの猶予期間が開始されました(有効の場合)。 |
SUBSCRIPTION_OUT_OF_GRACE_PERIOD |
以前猶予期間にあった定期購入型アイテムの支払いに関する問題/エラーをユーザーが修正しました。 |
SUBSCRIPTION_MODIFIED_DEFERRED |
定期購入プランが比例配分の「繰延」モードで変更されました。定期購入プランは、次の更新日に変更される予定です。現在のプランは更新日まで有効です。 |
SUBSCRIPTION_MODIFIED_IMMEDIATE |
定期購入プランが比例配分の「即時」モードで変更されました。既存のプランは日割り計算による払い戻しでキャンセルされ、新しいプランがすぐに有効になります。通知には、キャンセルされたレシートIDが含まれます。 |
SUBSCRIPTION_PURCHASED |
定期購入型アイテムが購入されました。 |
SUBSCRIPTION_RENEWED |
アクティブな定期購入型アイテムが更新されました。 |
SUBSCRIPTION_SCHEDULED_TO_END |
自動更新機能がオフになったため、定期購入の終了が予定されています。ユーザーの定期購入が1か月ごとの場合は、終了予定日の10日前に送信されます。ユーザーの定期購入が半年または1年ごとの場合は、終了予定日の30日前に送信されます。 |
RTNに関するよくある質問(FAQ)
以下は、RTNに関するよくある質問(FAQ)です。
- Q1:RTNメッセージの形式を教えてください。
- RTNは、指定されたHTTPSエンドポイントにJSONメッセージで配信されます。詳細については、RTNメッセージの詳細を参照してください。
- Q2:通知は発行されたとおりの順序で配信されますか?
-
Amazon SNSサービスは、発行者からのメッセージを発行順に配信します。ただし、ネットワークの問題により、HTTPSエンドポイントでメッセージが順序どおりにならない可能性があります。ペイロードのタイムスタンプ属性を確認して、順序どおりになっていないメッセージがないか確認することをお勧めします。
- Q3:どのような配信メカニズムがサポートされていますか?
-
Amazonでは、通知の配信方法としてHTTPSエンドポイントのみをサポートしています。エンドポイントの登録方法と確認方法の詳細については、リアルタイム通知(RTN)を使用する方法を参照してください。
- Q4:通知トラフィックの発信範囲はどのようになっていますか?
-
AWSは、トラフィックの発信元となるAmazon IPアドレスのリストを提供します。AWSは、IPアドレス空間が変更されるたびにサブスクライバーに通知するメカニズムを提供しています。現在のIPアドレス範囲のリストについては、AWS IPアドレスの範囲のドキュメントを参照してください。
- Q5:テストトランザクションでHTTPSエンドポイントをテストする方法を教えてください。
-
HTTPSエンドポイントは、ライブアプリテスト(LAT)を使用してテスト可能です。詳細については、前述の「RTNのライブアプリテスト」を参照してください。
- Q6:すべての通知メッセージについてRVS APIを呼び出す必要がありますか?
-
はい。レシート検証サービス(RVS)APIを呼び出して、レシートに関する最新情報を取得することをお勧めします。
- Q7:通知メッセージにはどのようなSLAが関連付けられていますか?
-
RTNサービスでは、レイテンシに関する公式のSLAは提供されません。ただし、ほとんどの通知は、イベント発生から数秒以内に発行される必要があります。
- Q8:AmazonのIPアドレスの許可リストを作成できますか?
-
はい。ただし、これは任意です。開発者がAmazonのIPアドレスを許可すると、Amazonは開発者のサーバーと通信できるようになります。このリストの変更を定期的に確認してください。
Last updated: 2026年10月8日

