Panduan referensi Notifikasi developer real time

Topik ini mencantumkan dan menjelaskan jenis Notifikasi developer real-time yang dapat Anda terima dari Google Play.

Encoding

Setiap publikasi yang dibuat pada topik Cloud Pub/Sub berisi kolom data tunggal yang dienkode dengan base64.

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

Setelah Anda mendekode kolom data yang dienkode dengan base64, DeveloperNotification akan berisi kolom berikut:

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

Kolom-kolom ini dijelaskan dalam tabel berikut.

Nama properti Nilai Deskripsi
version string Versi notifikasi ini. Awalnya, versi notifikasi ini adalah "1.0". Versi ini berbeda dengan kolom versi lainnya.
packageName string Nama paket aplikasi yang terkait dengan notifikasi ini (misalnya, `com.some.thing`).
eventTimeMillis long Stempel waktu saat peristiwa terjadi, dalam milidetik sejak Epoch.
subscriptionNotification SubscriptionNotification Jika kolom ini ada, berarti notifikasi ini terkait dengan langganan, dan kolom ini berisi informasi tambahan yang terkait dengan langganan. Perhatikan bahwa kolom ini tidak bisa ada pada saat yang sama dengan testNotification dan oneTimeProductNotification.
OneTimeProductNotification OneTimeProductNotification Jika kolom ini ada, berarti notifikasi ini terkait dengan pembelian satu kali, dan kolom ini berisi informasi tambahan yang terkait dengan pembelian. Perhatikan bahwa kolom ini tidak bisa ada pada saat yang sama dengan testNotification dan subscriptionProductNotification.
testNotification TestNotification Jika kolom ini ada, berarti notifikasi ini terkait dengan publikasi pengujian. Notifikasi ini hanya dikirim melalui Konsol Google Play. Perhatikan bahwa kolom ini tidak bisa ada pada saat yang sama dengan subscriptionNotification dan oneTimeProductNotification.

SubscriptionNotification

SubscriptionNotification berisi kolom berikut:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
Nama properti Nilai Deskripsi
version string Versi notifikasi ini. Awalnya, versi notifikasi ini adalah "1.0". Versi ini berbeda dengan kolom versi lainnya.
notificationType int notificationType untuk langganan dapat berisi nilai berikut:
  • (1) SUBSCRIPTION_RECOVERED - Langganan dipulihkan dari penangguhan akun.
  • (2) SUBSCRIPTION_RENEWED - Langganan aktif diperpanjang.
  • (3) SUBSCRIPTION_CANCELED - Langganan dibatalkan, baik secara sukarela maupun tidak. Untuk pembatalan sukarela, notifikasi dikirim jika pengguna melakukan pembatalan.
  • (4) SUBSCRIPTION_PURCHASED - Langganan baru telah dibeli.
  • (5) SUBSCRIPTION_ON_HOLD - Langganan memasuki penangguhan akun (jika diaktifkan).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD - Langganan memasuki masa tenggang (jika diaktifkan).
  • (7) SUBSCRIPTION_RESTARTED - Pengguna memulihkan langganannya dari Play > Akun > Langganan. Langganan telah dibatalkan tetapi masa berlakunya belum habis saat pengguna memulihkannya. Untuk informasi selengkapnya, lihat Pemulihan.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED - Perubahan harga langganan berhasil dikonfirmasi oleh pengguna.
  • (9) SUBSCRIPTION_DEFERRED - Waktu pengulangan langganan diperpanjang.
  • (10) SUBSCRIPTION_PAUSED - Langganan dijeda.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - Jadwal jeda langganan berubah.
  • (12) SUBSCRIPTION_REVOKED - Langganan dicabut dari pengguna sebelum habis masa berlakunya.
  • (13) SUBSCRIPTION_EXPIRED - Langganan habis masa berlakunya.
purchaseToken string Token yang diberikan ke perangkat pengguna saat langganan dibeli.
subscriptionId string ID produk langganan yang dibeli (misalnya "monthly001").

Contoh

Berikut adalah contoh notifikasi untuk pembelian langganan baru:

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

OneTimeProductNotification

OneTimeProductNotification berisi kolom berikut:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
Nama Properti Nilai Deskripsi
version string Versi notifikasi ini. Awalnya, versi notifikasi ini adalah "1.0". Versi ini berbeda dengan kolom versi lainnya.
notificationType int Jenis notifikasi. Dapat berisi nilai-nilai berikut:
  • (1) ONE_TIME_PRODUCT_PURCHASED - Produk sekali beli berhasil dibeli oleh pengguna.
  • (2) ONE_TIME_PRODUCT_CANCELED - Pembelian produk sekali beli yang tertunda telah dibatalkan oleh pengguna.
purchaseToken string Token yang diberikan ke perangkat pengguna saat pembelian dilakukan.
sku string ID produk sekali beli yang dibeli (misalnya, "sword_001").

Contoh

Berikut ini contoh notifikasi untuk pembelian satu kali yang baru:

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

TestNotification

TestNotification berisi kolom berikut:

{
  "version": string
}
Nama properti Nilai Deskripsi
version string Versi notifikasi ini. Awalnya, versi notifikasi ini adalah "1.0". Versi ini berbeda dengan kolom versi lainnya.

Contoh

Berikut adalah contoh notifikasi pengujian:

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