Google Play In-App Review API
Bugün yarattığımız uygulamaların kullanıcı üzerindeki etkilerini ölçebilmek, en az uygulamalara eklediğimiz yeni özellikler kadar önemli. Çok faydalı diye düşünerek eklediğimiz bir özellik, acaba son kullanıcıda aynı etkiyi yaratıyor mu? Uygulamamız tüm kullanıcılarımıza hitap edebiliyor mu? Bazı özelliklerimiz gereğinden çok mu karmaşık?
Ya yaşanan hatalar, aksaklıklar..
Bütün bu soruların cevaplarını alabildiğimiz bir yapı mevcut; Hepimizin bildiği ve fakat çoğunlukla görmezden geldiğimiz veya bu adımı atlamanın en kısa yolunu saniyeler içinde aradığımız “BENİ DEĞERLENDİR” kısmı.
Kullanıcılar neden değerlendirme kısmını atlamak istiyor?
Kullanıcıların verdikleri puanlar, sizin marketteki diğer uygulamalar arasındaki değerinizi ve buna bağlı olarak popülerliğinizi belirliyor. Çoğu zaman başarılı bir işlem arkasından sorulan “Nasıl, hoşunuza gittik mi?” tarzı sorulara olumlu yanıt veren kullanıcı, hoop diye Markete yönlendiriliyor ve puan vermesi isteniyor.
Markete yönlendirmenin nedeni ise oldukça mantıklı; “Sahtekarlığın önüne geçebilmek”. Eğer geliştiriciler, gerçek kullanıcıların verecekleri puanları, uygulama marketlerine kendileri yollayabilselerdi, emin olun çoğu uygulamanın puanı şuanki mevcut puanlardan çok daha yüksek olacaktı.
Tabi tüm uygulamalar değerlendirme sürecini doğru yönetemeyebiliyor. Dolayısıyla tam bir iş gerçekleştirecekken ortaya çıkan “bizi değerlendirmek ister misiniz?” soruları, sizi mevcut akıştan kopartıp başka bir uygulamaya yönlendirecek olan akışın habercisi olduğundan, beynimiz otomatik olarak kapana kısılan bir fare gibi kaçış yöntemlerini aramaya başlıyor.
Bu ve benzeri durumlarda, değerlendirme her ne kadar uygulamanın sağlığı ve gelişimi için faydalı bir akış olsa da, kullanıcının hoşuna gitmediği anda kötü puan verilme ve hatta uygulamanın telefondan silinme durumu ile de sonuçlanabiliyor.
Google Play bu sıkıntının farkına varmış olacak ki, ağustos ayında canlıya aldığı api ile geliştiricilerin yardımına koştu.
Google Play In-App Review API nasıl kullanılır ?
Öncelikle bu api nin kullanımına ait bazı gereksinimleri dile getirmekte fayda olacağını düşünüyorum.
- Google Play In-App Review Api, Android 5.0 — Lollipop (21) altındaki sürümleri maalesef desteklemiyor. Yani eğer hedef kitlenizde 5.0 altı cihazlar hala yoğunlukta ise, bu kesimin yorumlarını kaçırmamak adına eski değerlendirme akışlarını henüz uygulamadan kaldırmamakta fayda var.
- Yorum gönderilecek uygulamanın yüklü olduğu cihazda mutlaka Google PlayStore uygulamasının da yüklü olması gerekiyor.
- Play Core kütüphanesinin 1.8.0 ve üzeri versiyonunun uygulama içersinde bulunması gerekiyor.
Bu gereksinimler karşılandığı takdirde biraz da implementasyona değinelim.
- Play - Core kütüphanesini
build.gradle
dosyamıza ekleyelim.
implementation 'com.google.android.play:core:1.9.0'
2. ReviewInfo objemiz için istek oluşturalım.
ReviewManager manager = ReviewManagerFactory.create(this);
Task<ReviewInfo> request = manager.requestReviewFlow();
request.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
// ReviewInfo objesi artık daha sonraki çağrılar için hazır
ReviewInfo reviewInfo = task.getResult();
} else {
/** Bir problem oluştuğu için değerlendirme akışı devam etmez. Normal akışa devam edilmelidir.
}
});
Burada dikkat edilmesi gereken şey, oluşturulan ReviewInfo nun yalnızca belirli bir süre geçerli olmasıdır. Dolayısıyla değerlendirme süreci gerçekten başlayacak ise önce bu obje oluşturulmalıdır.
3. Artık review akışını başlatmaya hazırız.
Task<Void> flow = manager.launchReviewFlow(activity, reviewInfo);
flow.addOnCompleteListener(task -> {
/** Bu aşamada review tamamlanmıştır, fakat API bize son kullanıcının review dialoğunu görüntüleyip görüntülemediğinin bilgisini vermez. Normal akış devam etmelidir. */
});
> Hepsini bir araya getirirsek, en optimum değerlendirme akışı aşağı yukarı şu şekilde olmalıdır.
Dikkat edilmesi gereken diğer bazı hususlar:
- Son kullanıcıya gösterilecek değerlendirme çeşitli dizayn oyunları ile değiştirilmeye çalışılmamalıdır.
- Kullanıcıya sunulacak olan değerlendirme öncesinde, son kullanıcının fikirlerini manipule edecek betimlemelerden kaçınılmalıdır. (Örn: “Bence bize kesin 5 yıldız verirsin!!” ..vs.)
- Değerlendirme ekranı kod kullanımı ile ekrandan yok edilmeye çalışılmamalıdır.
- Google Play In-App Review API kota mantığı ile çalıştığı için (Her kullanıcı için belirli sayıda değerlendirme akışı başlatabilirsiniz.) gereksiz akış başlatımlarından uzak durulmalıdır.
- Bazı durumlarda (debug, preprod,.. variantları) uygulama için oluşturulan ApplicationId ile PlayStore da bulunan ApplicationId farklı olabilir. Bu durumlarda Review ekranı gösterilmeyecektir.
- Hazırladığınız akışın testlerini yapabilmeniz için, PlayStore console üzerindeki internal app sharing ve/veya testing mekanizmalarını kullanmanızı tavsiye ederim.
- Testlerinizi gerçek cihazlar üzerinde yapmanız büyük önem taşımakta, çünkü bazı avd cihazlarında PlayServisleri ve PlayStore yüklü olmadığından sorun yaşamanız çok olası.
- Uygulamaya daha önceden yorum vermiş bir kullanıcı, tekrardan yorum veremez. Dolayısıyla bu kullanıcıya değerlendirme diyaloğu gösterilmez. Marketten yorum silinirse, diyalog tekrardan görünür olacaktır.
- Bazı durumlarda (test esnasında) eğer değerlendirme ekranı ikinci kere ekranda belirmiyor ise;
Ayarlar -> Uygulamalar -> Google PlayStore ** ön belleği temizle, depolamayı temizle ** yaparak, değerlendirme ekranının tekrardan belirmesini sağlayabilirsiniz.
10. Test esnasında PlayStore da kayıtlı olan gmail hesabınız ile akışı denemeniz gerektiğine dikkat edin.
Ve artık uygulamadan kopmadan daha başarılı, sistemle entegre bir değerlendirme süreci ile uygulamanıza katma değer sağlamaya hazırsınız.
Google Play In-App Review API’nin resmi sitesine buradan erişebilirsiniz.
Sağlıklı günler, keyifli kodlamalar dilerim ..
Burak Soykal