Google Play Developer Reply to Reviews API, uygulamanızla ilgili kullanıcı geri bildirimlerini görüntülemenize ve bu geri bildirimi yanıtlamanıza olanak tanır. Bu API'yi, kullanıcılarla doğrudan CRM sistemi gibi mevcut müşteri desteği araç setlerinizde etkileşim kurmak için kullanabilirsiniz.
Reply to Reviews API API'yi kullanarak yalnızca uygulamanızın üretim sürümleriyle ilgili geri bildirimlere erişebilirsiniz. Uygulamanızın alfa veya beta sürümleriyle ilgili geri bildirimler görmek istiyorsanız bunun yerine Google Play Console'u kullanın. Ayrıca, API'nin yalnızca yorum içeren yorumları gösterdiğini unutmayın. Bir kullanıcı uygulamanızı derecelendirirse ancak yorum yapmazsa API'den kullanıcının geri bildirimine erişilemez.
Erişim Kazanma
Reply to Reviews API'yle çalışmak için bir OAuth istemcisi veya hizmet hesabı kullanarak yetkilendirme sağlarsınız. Bir hizmet hesabı kullanıyorsanız bu hesapta "Yorumlara yanıt verme" iznini etkinleştirin. Bu API'ye yetkili erişim oluşturma hakkında daha fazla bilgi için API Erişim İstemcilerini Ayarlama bölümüne bakın.
Yorum Alma
Reply to Reviews API'yi kullanırken uygulamanızla ilgili en son yapılan tüm yorumların listesini alabilir veya tek bir yorumu görebilirsiniz.
Yorum grubu alma
Uygulamanızla ilgili yorum listesi istemek için GET
yöntemini kullanın. İsteğinize uygulamanızın tam nitelikli paket adını (ör. com.google.android.apps.maps
) ve API'ye erişim elde ederken aldığınız yetkilendirme jetonunu ekleyin.
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token
Yanıt, uygulamanızla ilgili yorumların listesini içeren bir JSON dizesidir. Listedeki ilk sonuç, en son oluşturulan veya değiştirilen kullanıcı yorumunu gösterir.
Aşağıdaki örnekte, ilk inceleme tüm sonuçlarda görünen meta verileri, ikinci inceleme ise yalnızca bazı sonuçlarda görünen meta verileri gösterir:
{ "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" } }
Her sonuç aşağıdaki meta verileri içerir:
- reviewId
- Bu yorumu benzersiz bir şekilde tanımlar. Ayrıca, kullanıcılar belirli bir uygulama için yalnızca bir yorum yazabileceğinden, belirli bir kullanıcının yorumunu da belirtir.
- authorName
Yorumu yazan kullanıcının adı.
Not: Nadir durumlarda,
authorName
belirli bir sonuçta görünmeyebilir.- comments
Kullanıcının uygulamayla ilgili geri bildirimlerini içeren bir liste. Bu yorum bir başlık içeriyorsa bu başlık ve yorumun gövde metni
text
öğesinde görünür ve bir sekme karakteri başlık ile gövde metnini ayırır.lastModified
öğesi, kullanıcının yorumunu en son gönderdiği zamanı belirtir.Bu yoruma zaten yanıt verdiyseniz geri bildiriminiz, yorum listesinde ikinci öğe olarak görünür.
- starRating
Kullanıcının uygulamanızı 1-5 ölçeğinde değerlendirmesi. 5 puan, kullanıcının uygulamanızdan son derece memnun olduğunu gösterir.
Varsayılan olarak, her sayfada 10 inceleme gösterilir. İsteğinizde maxResults
parametresini ayarlayarak sayfa başına 100 adede kadar yorum görüntüleyebilirsiniz.
Yorum listesi başka bir sayfada devam ederse API, yanıta bir tokenPagination
öğesi ekler. Sonraki yorum sayfasını isterken token
öğesini ekleyin. Bu öğenin değerini, orijinal yanıtta görünen nextPageToken
değerine ayarlayın.
Not: Yalnızca kullanıcıların son bir hafta içinde oluşturduğu veya değiştirdiği yorumları alabilirsiniz. En başından beri uygulamanızla ilgili tüm yorumları almak istiyorsanız Google Play Console'u kullanarak yorumlarınızı CSV dosyası olarak indirebilirsiniz.
Aşağıdaki GET
isteği örneğinde, sonraki yorum sayfası gösterilmektedir. Bu istek, mevcut yorum sayfasının (önceki talebin yanıtında gösterildiği gibi) "12334566"
değerinde bir nextPageToken
değeri içerdiğini varsayar. İstek, bir sonraki sayfanın en fazla 50 yorum göstermesi gerektiğini de belirtir.
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&token=12334566&maxResults=50
Tek bir yorumu alma
Tek bir yorumu almak için GET
yöntemini de kullanabilirsiniz. Bir yorum grubunu almak için kullanılan URL ile aynı URL'yi sağlarsınız, ancak görmek istediğiniz yoruma karşılık gelen review_id
özelliğini de eklersiniz:
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/ review_id?access_token=your_auth_token
Karşılık gelen yanıt, tek bir yorum için içerik ve meta veri içeren bir JSON dizesidir:
{ "reviewId": "87654321", "authorName": "Joan Smith", "comments": [ { "userComment": { "text": "This app is awesome!", "lastModified": { "seconds": "1452114723", "nanos": 913000000 }, "starRating": 5 } } ] }
Yorum Metnini Çevirme
Yorum metni,reviews API'den döndürülmeden önce otomatik olarak çevrilebilir. Yorum listesi veya tek bir yorum alırken sorguya translationLanguage
parametresi ekleyin. Örneğin:
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&translationLanguage=en
translationLanguage
parametresi, ülke bilgisini içeren veya içermeyen bir dil belirtebilir. Örneğin, hem "en" hem de "en_GB" geçerlidir.
Orijinal metinden farklı bir çeviri dili belirtirseniz sistem, çevrilmiş metni text
özelliğinde ve orijinal metni originalText
özelliğinde döndürür. Aşağıda bir örnek verilmiştir:
{ "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!" } } ] }
Yorumları Yanıtlama
Ayrıca, yorumları yanıtlayarak uygulamanızın kullanıcılarıyla etkileşimde bulunabilirsiniz. Yanıtınızı gönderdikten sonra kullanıcı, geri bildirimine yanıt verdiğinizi belirten bir bildirim alır.
Yorumlara verilen otomatik yanıtların daha sonra manuel olarak güncellenmesi amacıyla kullanılmaması önerilir. Ayrıca, bir yoruma istediğiniz kadar yanıt verebiliyor olsanız da kullanıcı, oluşturulan veya değiştirilen bir yoruma ilk kez yanıt verdikten sonra kullanıcı bir bildirim alır. Aşağıdaki tabloda, kullanıcının kendisiyle etkileşimleriniz sırasında nasıl bilgilendirildiği gösterilmektedir:
Kullanıcı-Geliştirici Etkileşimi | Kullanıcıya Bildirim Gönderilsin mi? |
---|---|
Kullanıcı yorum yazar; geliştirici yanıt gönderir | Evet |
Geliştirici güncellemeleri, orijinal yoruma verilen yanıttır | No |
Kullanıcı güncellemeleri yorumu; geliştirici güncellemeleri yanıtı | Evet |
Not: Yorumlara verdiğiniz yanıtlar uygulama mağazası sayfasında herkese açık olarak göründüğünden, bu yanıtları yazarken kullanıcılar hakkındaki hassas bilgileri eklememeniz önemlidir.
Bir kullanıcı yorumuna yanıt göndermek için POST
yöntemini kullanın. İsteğinizde Content-Type
öğesinin application/json
olduğunu belirtin ve yanıtınızı içeren bir JSON belgesi ekleyin:
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!" }
Not: POST
isteğinize eklediğiniz replyText
en fazla 350 karakter içerebilir. Yanıtınızda düz metin kullanmanız gerekir. Doğru biçimlendirilmiş HTML etiketleri kaldırılır ve yanıtınızın karakter sayısına dahil edilmez. Bununla birlikte, iyi biçimlendirilmiş HTML etiketlerinin içine yerleştirdiğiniz içerik korunur.
İsteğiniz başarılı olursa yanıt olarak aşağıdaki JSON dizesini alırsınız.
lastEdited
öğesi, API'nin kullanıcı yorumuna verdiğiniz yanıtı kaydettiği saati gösterir.
{ "result": { "replyText": "Thanks for your feedback!", "lastEdited": { "seconds": "1453978803", "nanos": 796000000 } } }
Ancak POST
isteğiniz geçersizse yanıtta bunun yerine aşağıdaki hata kodlarından biri gösterilir:
400 Bad Reply Request
replyText
çok uzun veya eksik.404 Not Found
- Belirtilen
review_id
ile ilgili yorum mevcut değil.
Kotalar
Diğer geliştiricileri de düşünerek Reply to Reviews API API'de bazı kotalar uyguluyoruz. Bu kotalar uygulama bazında ayrı ayrı uygulanır:
GET
istekleri (yorum listelerini ve tek tek yorumları almak için) – saatte 200POST
istek (yorumlara yanıt vermek için) – günde 2.000 istek
Uygulamanızın bu kotaların izin verdiğinden daha fazla sayıda yorum alması veya yanıtlaması gerekiyorsa uygulamanızın kotasını artırmak için bir istek gönderin.