Pengingat: Anda harus mendukung penangguhan dan pemulihan akun di aplikasi Anda paling lambat 1 November 2020. Penjedaan langganan dan berlangganan lagi juga akan diaktifkan secara default, kecuali Anda secara eksplisit memilih tidak ikut. Pelajari lebih lanjut.

Panduan referensi Notifikasi developer real time

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

Enkode

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 uji publikasi. 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 mengaktifkan kembali langganannya dari Play > Akun > Langganan (mewajibkan keikutsertaan untuk pemulihan langganan).
  • (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 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":"my.sku"
  }
}

OneTimePurchaseNotification

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",
  "oneTimePurchaseNotification":
  {
    "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"
  }
}