注: 2023 年 8 月 2 日以降、すべての新規アプリでは Billing Library バージョン 5 以降を使用する必要があります。また既存のアプリのアップデートについては、2023 年 11 月 1 日より Billing Library バージョン 5 以降の使用が必須となります。詳細

リアルタイム デベロッパー通知のリファレンス ガイド

このトピックでは、Google Play から受信できるリアルタイム デベロッパー通知のタイプについて説明します。

エンコード

Cloud Pub/Sub トピックに対して行われた各パブリッシュには、base64 でエンコードされたデータ フィールドが 1 つ含まれます。

{
  "message": {
    "attributes": {
      "key": "value"
    },
    "data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

base64 でエンコードされたデータ フィールドをデコードすると、DeveloperNotification に以下のフィールドがあります。

{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "testNotification": TestNotification
}

各フィールドについては、下の表をご覧ください。

プロパティ名 説明
version 文字列 この通知のバージョン。最初は「1.0」に設定されます。このバージョンは他のバージョン フィールドとは異なります。
packageName 文字列 この通知に関連するアプリのパッケージ名(例: com.some.thing)。
eventTimeMillis long イベント発生時のタイムスタンプ(エポックからのミリ秒数)。
subscriptionNotification SubscriptionNotification このフィールドが存在する場合、この通知は定期購入に関連しており、フィールドには定期購入に関連する追加情報が含まれます。このフィールドは、testNotification、oneTimeProductNotification と相互に排他的です。
oneTimeProductNotification OneTimeProductNotification このフィールドが存在する場合、この通知は 1 回だけの購入に関連しており、フィールドには購入に関する追加情報が含まれます。このフィールドは、testNotification、subscriptionProductNotification と相互に排他的です。
testNotification TestNotification このフィールドが存在する場合、この通知はテスト公開に関連しています。これは Google Play Console でのみ送信されます。このフィールドは、subscriptionNotification、oneTimeProductNotification と相互に排他的です。

SubscriptionNotification

SubscriptionNotification には次のフィールドがあります。

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
プロパティ名 説明
version 文字列 この通知のバージョン。最初は「1.0」に設定されます。このバージョンは他のバージョン フィールドとは異なります。
notificationType int 定期購入の notificationType には、次の値を指定できます。
  • (1)SUBSCRIPTION_RECOVERED - 定期購入がアカウントの一時停止から復帰した。
  • (2)SUBSCRIPTION_RENEWED - アクティブな定期購入が更新された。
  • (3)SUBSCRIPTION_CANCELED - 定期購入が自発的または非自発的にキャンセルされた。自発的なキャンセルの場合、ユーザーがキャンセルしたときに送信されます。
  • (4)SUBSCRIPTION_PURCHASED - 新しい定期購入が購入された。
  • (5)SUBSCRIPTION_ON_HOLD - 定期購入でアカウントが一時停止された(有効な場合)。
  • (6)SUBSCRIPTION_IN_GRACE_PERIOD - 定期購入が猶予期間に入った(有効な場合)。
  • (7)SUBSCRIPTION_RESTARTED - ユーザーが [Play] > [アカウント] > [定期購入] から定期購入を再開した。定期購入は解約されましたが、ユーザーが再開したとき、まだ期限切れになっていませんでした。詳細については、再開をご覧ください。
  • (8)SUBSCRIPTION_PRICE_CHANGE_CONFIRMED - 定期購入の料金変更がユーザーによって確認された。
  • (9)SUBSCRIPTION_DEFERRED - 定期購入の契約期間が延長された。
  • (10)SUBSCRIPTION_PAUSED - 定期購入が一時停止された。
  • (11)SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - 定期購入の一時停止スケジュールが変更された。
  • (12)SUBSCRIPTION_REVOKED - 有効期限前にユーザーが定期購入を取り消した。
  • (13)SUBSCRIPTION_EXPIRED - 定期購入が期限切れになった。
purchaseToken 文字列 定期購入の購入時にユーザーのデバイスに提供されたトークン。
subscriptionId 文字列 購入された定期購入のアイテム ID(例: monthly001)。

新しい定期購入の通知の例を次に示します。

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN",
    "subscriptionId":"monthly001"
  }
}

OneTimeProductNotification

OneTimeProductNotification には次のフィールドがあります。

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
プロパティ名 説明
version 文字列 この通知のバージョン。最初は「1.0」に設定されます。このバージョンは他のバージョン フィールドとは異なります。
notificationType int 通知のタイプ。以下のいずれかの値が設定されます。
  • (1)ONE_TIME_PRODUCT_PURCHASED - ユーザーが 1 回限りのアイテムを購入しました。
  • (2)ONE_TIME_PRODUCT_CANCELED - 保留中の 1 回限りのアイテムの購入がユーザーによってキャンセルされました。
purchaseToken 文字列 購入時にユーザーのデバイスに提供されたトークン。
sku 文字列 購入した 1 回限りのアイテムの ID(例: sword_001)。

新しい 1 回だけの購入の通知の例を次に示します。

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "oneTimeProductNotification":
  {
    "version":"1.0",
    "notificationType":1,
    "purchaseToken":"PURCHASE_TOKEN",
    "sku":"my.sku"
  }
}

TestNotification

TestNotification には次のフィールドがあります。

{
  "version": string
}
プロパティ名 説明
version 文字列 この通知のバージョン。最初は「1.0」に設定されます。このバージョンは他のバージョン フィールドとは異なります。

テスト通知の例を次に示します。

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}