【Google】リアルタイムデベロッパー通知(RTDN)
下記で Google のアプリ内課金について紹介しました。

Google Play には、リアルタイムデベロッパー通知(Real-time developer notifications: RTDN)が用意されていて、定期購入の更新やキャンセル、商品購入などのイベント発生時に、開発者のサーバーにリアルタイムで通知を送信してくれます。
通知には、イベントの種類や購入トークン、商品IDなどの情報が含まれており、開発者はこの情報を利用して、アプリ内の購入状況を管理できます。
ここでは、Google Play の課金システムにおける RTDN について紹介していきます。
RTDNの概要
RTDN は、定期購入の更新、キャンセル、商品購入など、様々なイベントが発生した際に、開発者のサーバーに通知を送信します。
通知は Google の Cloud Pub/Sub を介して配信され、JSON 形式のデータが含まれています。
開発者はこのデータを利用して、サーバー側の購入情報を更新したり、ユーザーへのサービス提供を調整したりできます。
通知データの構造
RTDN の通知データは base64 でエンコードされており、デコードすると DeveloperNotification
オブジェクトが得られます。
このオブジェクトには、以下のフィールドが含まれています。
項目 | 内容 |
---|---|
version | 通知のバージョン |
packageName | アプリのパッケージ名 |
eventTimeMillis | イベント発生日時(ミリ秒) |
subscriptionNotification | 定期購入に関する通知の場合に含まれるオブジェクト |
oneTimeProductNotification | 一回限りの商品購入に関する通知の場合に含まれるオブジェクト |
voidedPurchaseNotification | 無効化された購入に関する通知の場合に含まれるオブジェクト |
testNotification | テスト通知の場合に含まれるオブジェクト |
これらのフィールドのうち、以下の項目は相互排他的で、いずれか 1 つだけが存在します。
- subscriptionNotification
- oneTimeProductNotification
- voidedPurchaseNotification
- testNotification
SubscriptionNotification
定期購入に関する通知で、以下のフィールドを含みます。
項目 | 内容 |
---|---|
version | 通知のバージョン |
notificationType | 通知の種類 |
purchaseToken | 購入トークン |
subscriptionId | 定期購入のID(商品ID) |
2022 年に subscriptionId は通知から除外されるという説明がドキュメントに追加されましたが、3 年以上経過した今も、この項目は通知に含まれます。
OneTimeProductNotification
一回限りの商品購入に関する通知で、以下のフィールドを含みます。
項目 | 内容 |
---|---|
version | 通知のバージョン |
notificationType | 通知の種類 |
purchaseToken | 購入トークン |
sku | 商品ID |
VoidedPurchaseNotification
無効化された購入に関する通知で、以下のフィールドを含みます。
項目 | 内容 |
---|---|
purchaseToken | 購入トークン |
orderId | 注文ID |
productType | 商品タイプ(定期購入or1回限り) |
refundType | 返金タイプ |
TestNotification
テスト通知で、以下のフィールドを含みます。
項目 | 内容 |
---|---|
version | 通知のバージョン |
RTDNの活用方法
RTDN を利用することで、サーバー側の購入情報をリアルタイムで更新し、ユーザーに適切なサービスを提供できます。
例えば、定期購入の更新通知を受け取ったら、サーバー側でユーザーの有効期限を延長する処理を実行できます。
また、購入の無効化通知を受け取ったら、ユーザーへのアクセス制限などの対応を行うことができます。
RTDNの注意点
RTDN は購入状態の変更を通知するだけで、購入の詳細情報は提供しません。
そのため、通知を受け取った後に、Google Play Developer API を使用して購入の詳細情報を取得し、サーバー側の情報を更新する必要があります。
まとめ
Google の RTDN について紹介してきました。
Google の Cloud Pub/Sub を利用する必要があるので手間ですが、特にサブスクリプション運用には欠かせません。
なお、通知を Pub/Sub に送信するかどうかの設定は、Google Play Console 側で行います。