Летом 2020 года появилась новая классная функциональность в библиотеке Play Core — In-App Review [1]. При помощи этой фичи можно реализовать диалог с отзывом и оценкой пользователя. Это очень удобно и не ломает пользовательский сценарий. Фича полезна для повышения рейтинга и продвижения. Например, после внедрения в одном из приложений количество оценок увеличилось в 5 раз [2]. В этой статье я расскажу, как внедрить In-App Review в ваше приложение.
Руководство
Добавление зависимостей
Добавьте в ваш build.gradle
следующие зависимости:
dependencies {
implementation 'com.google.android.play:core:1.8.0'
implementation 'com.google.android.play:core-ktx:1.8.1'
}
Реализация
Добавьте следующий код для вызова диалога оценки приложения:
private fun requestReviewFlow(activity: Activity) {
val reviewManager = ReviewManagerFactory.create(activity)
val requestReviewFlow = reviewManager.requestReviewFlow()
requestReviewFlow.addOnCompleteListener { request ->
if (request.isSuccessful) {
val reviewInfo = request.result
val flow = reviewManager.launchReviewFlow(activity, reviewInfo)
flow.addOnCompleteListener {
// Обрабатываем завершение сценария оценки
}
} else {
// Обрабатываем тут ошибку
}
}
}
Также, если необходимо, добавьте флаг в SharedPreference
, который можно проверять в случае, если вы хотите вызывать сценарий только один раз. Нужно иметь в виду, что диалог в целом может вызваться только ограниченное количество раз [3], a также при помощи API невозможно проверить — прошел ли пользователь ревью или нет [4]. Как добавить In-App Review в Unity или нативный код, читайте в следующей документации [5], [6].
Тестирование
Протестировать сценарий In-App Review можно только, если приложение было скачано через Google Play, поэтому есть два способа проверить сценарий руками:
- Internal Test Track: чтобы использовать этот механизм, нужно, чтобы ваше приложение было опубликовано в Google Play Store.
- Internal App Sharing: относительно новый механизм распространение тестовых версий приложений, который позволяет распростронять ваши .apk (или .aab) через Google Play.
Для Unit-тестирования API предоставляет нам класс FakeReviewManager
. Далее расскажу как проверить сценарий In-App Review при помощи Internal App Sharing.
Internal app sharing
После того, как вы соберете ваш .apk (или .aab) и создадите новое приложение в Google Play, перейдите в раздел Internal App Sharing:
В нем вы можете управлять настройками рассылки приложения, например, задать списки с почтами, которым разрешено скачивать .apk (или .aab):
Можно также задать настройку, чтобы все, кто обладает ссылкой, могли скачать приложение без ограничений:
После того, как мы задали настройки, переходим на форму отправки https://play.google.com/console/u/0/internal-app-sharing и загружаем .apk (или .aab):
Копируем ссылку и отправляем адресату. Далее, как же получить наш архив? Для этого заходим в приложение Google Play на телефоне, открываем настройки, кликаем пять раз по “Play Store version”, и предоставляем внутренний доступ к приложениям, нажав на свитч:
После этого можно открыть ссылку и установить приложение:
В этом режиме кнопка отправки ревью не работает:
Но проверить работу сценария все равно можно.
Итоги
Google Play Core предоставил отличный инструмент для повышения рейтинга приложений, который можно с легкостью внедрить и протестировать. Тестирование In-App Review можно проводить только с .apk, которые были скачаны и установлены через Google Play Store, например, через механизм Internal App Sharing. Размер apk при этом увеличится на 100 KB, dex файл увеличится на 200 классов и 500 методов примерно, что, возможно, порадует разработчиков-оптимизаторов apk.
modestguy
Всё это здорово, но сам Google рекомендует использовать эту фичу весьма аккуратно. Смысл в том, что есть квота и просто добавить кнопку и на неё навесить — app review не очень хорошая идея. Сам на это наткнулся. Поэтому буду возвращать назад на ссылку в Google Play. Фича подойдёт тем, когда требуется разово показать review с растянутым по временем процессом (например, после прохождения всех уровней игры). Подробнее об этом тут:
developer.android.com/guide/playcore/in-app-review#quotas
Like_fa
Согласен. Задумка интересная, но реализация подкачала. Вызывать по кнопке не рекомендуется, а использовать как «клянчилку» не очень хочется.
avegrv Автор
Отмечу, что в статье не указал на что повесил вызов диалога. Потому что считаю, что это на усмотрение разработчика. Про квоту отметил:
> Но надо иметь ввиду, что диалог в целом может вызваться только ограниченное количество раз [3]
Лично у себя повесил как раз на процесс, который достаточно растянут по времени.
modestguy
Да я и не критикую статью. Я думаю, что она будет полезна многим. Просто посчитал своим долгом сделать акцент на «нюансах» этой новой функциональности. На которой сам же и «обжёгся», хотя я сам и есть источник своих проблем — надо было сначала прочитать доку полностью — потом внедрять ;)