Dengan Reply to Reviews API dari Developer Google Play, Anda dapat melihat masukan pengguna untuk aplikasi Anda dan membalas masukan ini. Anda dapat menggunakan API ini untuk berinteraksi langsung dengan pengguna di toolkit dukungan pelanggan lama, seperti sistem CRM.
Dengan Reply to Reviews API, Anda dapat mengakses masukan untuk aplikasi Anda pada versi produksi saja. Jika Anda ingin melihat masukan terkait versi alfa atau beta aplikasi, gunakan Konsol Google Play. Selain itu, perlu diperhatikan bahwa API ini hanya menampilkan ulasan yang menyertakan komentar. Jika pengguna memberi rating aplikasi tetapi tidak memberikan komentar, masukannya tidak akan dapat diakses melalui API ini
Mendapatkan Akses
Untuk menggunakan Reply to Reviews API, Anda perlu memberikan otorisasi menggunakan klien OAuth atau akun layanan. Jika Anda menggunakan akun layanan, aktifkan izin "Balas ulasan" dalam akun ini. Untuk informasi selengkapnya terkait cara mendapatkan akses yang diberi otorisasi untuk API ini, lihat Menyiapkan Klien Akses API.
Mengambil Ulasan
Saat menggunakan Reply to Reviews API, Anda dapat mengambil daftar semua ulasan terbaru aplikasi, atau Anda dapat melihat ulasan satu per satu.
Mengambil kumpulan ulasan
Gunakan metode GET
untuk meminta daftar ulasan aplikasi. Dalam permintaan Anda,
sertakan nama paket yang sepenuhnya memenuhi syarat untuk aplikasi—seperti
com.google.android.apps.maps
—dan token otorisasi yang Anda terima saat
mendapatkan akses ke API.
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token
Responsnya adalah string JSON yang berisi daftar ulasan aplikasi. Hasil pertama dalam daftar menunjukkan komentar pengguna yang baru saja dibuat atau diubah.
Dalam contoh berikut, ulasan pertama menunjukkan metadata yang muncul di semua hasil, dan ulasan kedua menunjukkan metadata yang hanya muncul di beberapa hasil:
{ "reviews": [ { "reviewId": "12345678", "authorName": "Jane Bloggs", "comments": [ { "userComment": { "text": "This is the best app ever!", "lastModified": { "seconds": "1443676826", "nanos": 713000000 }, "starRating": 5 } } ] }, { "reviewId": "11223344", "authorName": "John Doe", "comments": [ { "userComment": { "text": "I love using this app!", "lastModified": { "seconds": "141582134", "nanos": 213000000 }, "starRating": 5, "reviewerLanguage": "en", "device": "trltecan", "androidOsVersion": 21, "appVersionCode": 12345, "appVersionName": "1.2.3", "thumbsUpCount": 10, "thumbsDownCount": 3, "deviceMetadata": { "productName": "E5333 (Xperia™ C4 Dual)", "manufacturer": "Sony", "deviceClass": "phone", "screenWidthPx": 1080, "screenHeightPx": 1920, "nativePlatform": "armeabi-v7a,armeabi,arm64-v8a", "screenDensityDpi": 480, "glEsVersion": 196608, "cpuModel": "MT6752", "cpuMake": "Mediatek", "ramMb": 2048 } } }, { "developerComment": { "text": "That's great to hear!", "lastModified": { "seconds": "1423101467", "nanos": 813000000 } } } ] } ], "tokenPagination": { "nextPageToken": "12334566" } }
Setiap hasil menyertakan metadata berikut:
- reviewId
- Secara unik mengidentifikasi ulasan ini. Ini juga menunjukkan ulasan pengguna tertentu, karena pengguna hanya dapat menulis satu ulasan untuk aplikasi tertentu.
- authorName
Nama pengguna yang menulis ulasan.
Catatan: Dalam kasus yang jarang terjadi,
authorName
mungkin tidak muncul dalam hasil tertentu.- comments
Daftar yang menyertakan masukan pengguna terkait aplikasi. Jika ulasan ini menyertakan judul, maka judul ini serta teks isi ulasan akan muncul dalam elemen
text
, dan karakter tab akan memisahkan judul dan teks isi. ElemenlastModified
menunjukkan waktu saat pengguna terakhir mengirimkan ulasan.Jika Anda telah merespons ulasan ini, masukan Anda akan muncul sebagai elemen kedua dalam daftar komentar.
- starRating
Evaluasi pengguna terhadap aplikasi Anda dalam skala 1 sampai 5. Skor 5 menunjukkan bahwa pengguna merasa sangat puas dengan aplikasi Anda.
Secara default, 10 ulasan akan muncul di setiap halaman. Anda dapat menampilkan hingga 100 ulasan per halaman dengan menyetel parameter maxResults
dalam permintaan.
Jika daftar ulasan berlanjut ke halaman lain, API akan menyertakan elemen tokenPagination
dalam respons. Saat meminta halaman berikutnya dari ulasan, sertakan elemen token
. Setel nilai elemen ini ke nilai nextPageToken
, yang muncul dalam respons awal.
Catatan: Anda dapat mengambil ulasan yang dibuat atau diubah pengguna dalam satu minggu terakhir saja. Jika Anda ingin mengambil semua ulasan aplikasi sejak yang pertama, Anda dapat mendownload ulasan sebagai file CSV menggunakan Konsol Google Play.
Contoh permintaan GET
berikut menampilkan halaman ulasan berikutnya. Permintaan ini menganggap bahwa halaman ulasan saat ini (sebagaimana yang ditampilkan dalam respons permintaan sebelumnya) berisi nilai nextPageToken
"12334566"
. Permintaan juga menunjukkan bahwa halaman berikutnya akan menampilkan hingga 50 ulasan.
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&token=12334566&maxResults=50
Mengambil ulasan satu per satu
Anda juga dapat menggunakan metode GET
untuk mengambil ulasan satu per satu. Anda memberikan URL yang sama dengan yang digunakan untuk mengambil kumpulan ulasan, tetapi menyertakan review_id
yang terkait dengan ulasan yang ingin dilihat:
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/ review_id?access_token=your_auth_token
Respons yang terkait adalah string JSON yang berisi konten dan metadata untuk satu ulasan:
{ "reviewId": "87654321", "authorName": "Joan Smith", "comments": [ { "userComment": { "text": "This app is awesome!", "lastModified": { "seconds": "1452114723", "nanos": 913000000 }, "starRating": 5 } } ] }
Menerjemahkan Teks Ulasan
Teks ulasan dapat diterjemahkan secara otomatis sebelum ditampilkan dari API ulasan. Saat mengambil daftar ulasan atau satu ulasan, tambahkan parameter translationLanguage
ke kueri. Contoh:
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&translationLanguage=en
Parameter translationLanguage
dapat menentukan bahasa dengan atau tanpa negara. Misalnya, "en" dan "en_GB" adalah contoh yang valid.
Jika Anda menentukan bahasa terjemahan yang berbeda dari teks asli, sistem akan menampilkan teks terjemahan dalam properti text
dan teks asli dalam properti originalText
. Berikut contohnya:
{ "reviewId": "12345678", "authorName": "Jane Bloggs", "comments": [ { "userComment": { "text": "This is the best app ever!", "lastModified": { "seconds": "1443676826", "nanos": 713000000 }, "starRating": 5, "originalText": "Dies ist die beste App überhaupt!" } } ] }
Membalas Ulasan
Anda juga dapat berinteraksi dengan pengguna aplikasi dengan membalas ulasan mereka. Setelah Anda mengirimkan balasan, pengguna akan menerima notifikasi, yang menunjukkan bahwa Anda telah merespons masukannya.
Sebaiknya jangan menggunakan balasan otomatis untuk ulasan, meski Anda berencana untuk memperbarui balasan tersebut secara manual pada lain waktu. Selain itu, meskipun Anda dapat membalas sebuah ulasan sebanyak yang Anda inginkan, pengguna hanya akan menerima notifikasi setelah Anda pertama kali membalas ulasan yang dibuat atau diubah. Tabel berikut menunjukkan cara pengguna diberi notifikasi selama interaksi Anda dengannya:
Interaksi Developer-Pengguna | Notifikasi Dikirim ke Pengguna? |
---|---|
Pengguna menulis ulasan; developer mengirimkan balasan | Ya |
Developer memperbarui balasan untuk ulasan awal | Tidak |
Pengguna memperbarui ulasan; developer memperbarui balasan | Ya |
Catatan: Karena balasan ke ulasan ditampilkan untuk publik di halaman app store, jangan menyertakan informasi sensitif terkait pengguna saat Anda menulis balasan ini.
Untuk mengirimkan balasan ke ulasan pengguna, gunakan metode POST
. Dalam permintaan Anda, indikasikan bahwa Content-Type
adalah application/json
, dan sertakan dokumen JSON yang berisi balasan Anda:
POST https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/ review_id:reply?access_token=your_access_token Content-Type: application/json { "replyText": "Thanks for your feedback!" }
Catatan: replyText
yang Anda sertakan dengan permintaan POST
dapat berisi maksimal 350 karakter. Gunakan teks biasa dalam balasan Anda; tag HTML yang tersusun dengan baik akan dihapus dan tidak dihitung dalam jumlah karakter balasan. Namun, konten yang Anda letakkan di tag HTML yang tersusun dengan baik akan tetap ada.
Jika permintaan Anda berhasil, Anda akan menerima string JSON berikut sebagai respons.
Elemen lastEdited
menunjukkan waktu saat API mencatat balasan Anda untuk ulasan pengguna.
{ "result": { "replyText": "Thanks for your feedback!", "lastEdited": { "seconds": "1453978803", "nanos": 796000000 } } }
Namun, jika permintaan POST
Anda tidak valid, respons akan menampilkan salah satu kode error berikut:
400 Bad Reply Request
replyText
terlalu panjang atau tidak ada.404 Not Found
- Ulasan dengan
review_id
yang ditentukan tidak ada.
Kuota
Agar juga dapat digunakan oleh developer lain, Reply to Reviews API menerapkan sejumlah kuota. Kuota ini diterapkan secara terpisah per aplikasi:
Permintaan
GET
(untuk mengambil daftar ulasan dan satu ulasan) – 200 per jamPermintaan
POST
(untuk membalas ulasan) – 2000 per hari
Jika aplikasi Anda perlu mengambil atau membalas ulasan dalam jumlah yang lebih besar dari yang diizinkan kuota ini, kirim permintaan untuk meningkatkan kuota aplikasi.