Google Play Developer Reply to Reviews API, uygulamanızla ilgili kullanıcı geri bildirimlerini görüntülemenize ve bu geri bildirimlere yanıt vermenize olanak tanır. Bu API'yi kullanarak kullanıcılarla doğrudan mevcut müşteri desteği araç kitinizde (ör. CRM sistemi) etkileşim kurabilirsiniz.
Yorumlara Yanıt Verme API'si, yalnızca uygulamanızın üretim sürümündeki geri bildirimlere erişmenize olanak tanır. Uygulamanızın alfa veya beta sürümleriyle ilgili geri bildirimleri görmek istiyorsanız bunun yerine Google Play Console'u kullanın. Ayrıca API'nin yalnızca yorum içeren incelemeleri gösterdiğini unutmayın. Bir kullanıcı uygulamanızı değerlendirir ancak yorum yapmazsa geri bildirimi API'den erişilemez.
Erişim elde etme
Yorumlara Yanıt Verme API'si ile çalışmak için OAuth istemcisi veya hizmet hesabı kullanarak yetkilendirme sağlarsınız. 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 istemcilerini ayarlama başlıklı makaleyi inceleyin.
Yorumları alma
Reply to Reviews API'yi kullanırken uygulamanızla ilgili tüm son yorumların listesini alabilir veya tek bir yorumu görebilirsiniz.
Bir grup yorumu alma
Uygulamanızla ilgili yorumların listesini 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 kazanırken 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 yorumda tüm sonuçlarda görünen meta veriler, ikinci yorumda ise yalnızca bazı sonuçlarda görünen meta veriler gösterilmektedir:
{ "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 şekilde tanımlar. Kullanıcılar belirli bir uygulama için yalnızca bir yorum yazabildiğinden, belirli bir kullanıcının yorumunu da gösterir.
- authorName
Yorumu yazan kullanıcının adı.
Not: Nadiren de olsa
authorName
, belirli bir sonuçta görünmeyebilir.- yorumlar
Kullanıcının uygulamayla ilgili geri bildirimini içeren bir liste. Bu inceleme bir başlık içeriyorsa hem başlık hem de incelemenin gövde metni
text
öğesinde görünür. Başlık ve gövde metni, sekme karakteriyle ayrılır.lastModified
öğesi, kullanıcının yorumunu en son gönderdiği zamanı gösterir.Bu yoruma yanıt verdiyseniz geri bildiriminiz, yorum listesindeki ikinci öğe olarak görünür.
- starRating
Kullanıcının uygulamanızı 1 ile 5 arasında bir ölçekte değerlendirmesi. 5 puan, kullanıcının uygulamanızdan çok memnun olduğunu gösterir.
Varsayılan olarak her sayfada 10 yorum gösterilir. İsteğinizde maxResults
parametresini ayarlayarak sayfa başına 100 inceleme gösterebilirsiniz.
Yorum listesi başka bir sayfada devam ediyorsa API, yanıta bir tokenPagination
öğesi ekler. Yorumların sonraki sayfasını isterken token
öğesini ekleyin. Bu öğenin değerini, orijinal yanıtta görünen nextPageToken
değeri olarak ayarlayın.
Not: Yalnızca kullanıcıların son bir hafta içinde oluşturduğu veya değiştirdiği yorumları alabilirsiniz. Uygulamanızla ilgili tüm yorumları en başından beri almak istiyorsanız Google Play Console'u kullanarak yorumlarınızı CSV dosyası olarak indirebilirsiniz.
Aşağıdaki GET
isteği örneğinde, yorumların sonraki sayfası gösterilmektedir. Bu istek, mevcut yorum sayfasının (önceki isteğin yanıtında gösterildiği gibi) nextPageToken
değerinin "12334566"
olduğunu varsayar. İstek, sonraki sayfada en fazla 50 yorum gösterilmesi gerektiğini de belirtiyor.
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 dizi yorumu alma 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
değerini de eklersiniz:
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/ review_id?access_token=your_auth_token
İlgili yanıt, tek bir yorumun içeriğini ve meta verilerini 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, yorum API'sinden döndürülmeden önce otomatik olarak çevrilebilir. Yorum listesi veya tek bir yorum alırken sorguya translationLanguage
parametresini 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 koduyla veya ülke kodu olmadan 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, orijinal metni ise originalText
özelliğinde döndürür. Aşağıda bununla ilgili 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!" } } ] }
Yorumlara yanıt verme
Ayrıca, kullanıcıların yorumlarını yanıtlayarak uygulamanızın kullanıcılarıyla etkileşim kurabilirsiniz. Yanıtınızı gönderdikten sonra kullanıcı, geri bildirimine yanıt verdiğinizi belirten bir bildirim alır.
Yorumlara otomatik yanıt verilmesini ve bu yanıtların daha sonra manuel olarak güncellenmesini önermiyoruz. Ayrıca, bir yoruma istediğiniz kadar yanıt verebilirsiniz ancak kullanıcı, oluşturulan veya değiştirilen bir yoruma ilk kez yanıt verdiğinizde bildirim alır. Aşağıdaki tabloda, kullanıcıyla etkileşiminiz sırasında kullanıcının nasıl bilgilendirildiği gösterilmektedir:
Kullanıcı-Geliştirici Etkileşimi | Kullanıcıya Bildirim Gönderildi mi? |
---|---|
Kullanıcı yorum yazar, geliştirici yanıt gönderir | Evet |
Geliştirici güncellemeleri, orijinal yoruma yanıt olarak gösterilir | Hayır |
Kullanıcı yorumu günceller, geliştirici yanıtı günceller | 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ılarla ilgili hassas bilgiler eklememeniz önemlidir.
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ğinizle birlikte gönderdiğiniz replyText
en fazla 350 karakter içerebilir. Yanıtınızda düz metin kullanmalısınız. Düzgün oluşturulmuş HTML etiketleri kaldırılır ve yanıtınızın karakter sayısına dahil edilmez. Ancak düzgün oluşturulmuş 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ının yorumuna verdiğiniz yanıtı kaydettiği zamanı gösterir.
{ "result": { "replyText": "Thanks for your feedback!", "lastEdited": { "seconds": "1453978803", "nanos": 796000000 } } }
Ancak POST
isteğiniz geçersizse yanıt bunun yerine aşağıdaki hata kodlarından birini gösterir:
400 Bad Reply Request
replyText
çok uzun veya eksik.404 Not Found
- Belirtilen
review_id
kimlikli inceleme mevcut değil.
Kotalar
Diğer geliştiricileri de düşünerek Reply to Reviews API'de bazı kotalar uyguluyoruz. Bu kotalar, uygulama başına ayrı ayrı uygulanır:
GET
istek (yorum listelerini ve tek tek yorumları almak için) – saatte 200POST
istek (yorumlara yanıt vermek için) – günde 2.000
Uygulamanızın bu kotaların izin verdiğinden daha fazla sayıda yorum alması veya yanıtlaması gerekiyorsa istek göndererek uygulamanızın kotasını artırın.