SDK оценок и отзывов для Kotlin/Java (версия 2.0.0)
RuStore In-app Review SDK предлагает пользователю оставить оценку и отзыв о вашем приложении в RuStore, не выходя из приложени я.
Пользовательский сценарий оценки и отзыва может быть запущен в любое время на протяжении всего пути пользователя в вашем приложении. Пользователь может оценить ваше приложение по шкале от 1 до 5 и оставить отзыв. Отзыв является опциональным.
Пример реализации
Ознакомьтесь с приложением-примером чтобы узнать, как правильно интегрировать SDK отзывов и оценок.
Пример пользовательского сценария
Условия корректной работы SDK
Для работы SDK оценок и отзывов необходимо соблюдение следующих условий.
- Kotlin
- Java
- Приложение загружено в Консоль RuStore.
- Подпись тестируемой сборки (например,
debug
) приложения должна совпадать с подписью сборки приложения, которая была загружена в консоль и прошла модерацию ранее (например,release
).
- ОС Android версии 7.0 или выше.
- На устройстве пользователя установлена актуальная версия RuStore.
- Пользователь авторизован в RuStore.
Приложение должно быть опубликовано в RuStore .
- Приложение загружено в Консоль RuStore.
- Подпись тестируемой сборки (например,
debug
) приложения должна совпадать с подписью сборки приложения, которая была загружена в консоль и прошла модерацию ранее (например,release
).
- ОС Android версии 7.0 или выше.
- На устройстве пользователя установлена актуальная версия RuStore.
- Пользователь авторизован в RuStore.
Приложение должно быть опубликовано в RuStore .
Когда запрашивать оценку и отзыв
Следуйте рекомендациям, чтобы решить, в какой момент запросить оценку и отзыв о приложении у пользователя (см. ниже).
- Запускайте процесс после того, как пользователь достаточно использовал ваше приложение.
- Не запускайте процесс слишком часто — это ухудшит опыт пользователя вашего приложения и ограничит использование SDK оценок.
- Не используйте призывы к действию, например, кнопку «Оценить приложение» — пользователь уже мог исчерпать лимит запуска процесса.
- Ваше приложение не должно задавать какие-либо вопросы пользователю перед запуском или во время процесса, в том числе вопросы об их мнении (например, «Вам нравится приложение?») или прогнозирующие вопросы (например, «Вы бы поставили этому приложению 5 звёзд?»).
Рекомендации к дизайну
Следуйте рекомендациям, чтобы решить, как интегрировать процесс.
- Отображайте процесс как есть, без какого-либо вмешательства или изменения текущего дизайна, включая размер, непрозрачность, форму и другие свойства.
- Ничего не добавляйте поверх или по краям процесса.
- Процесс должен открываться поверх всех слоёв. После запуска процесса не закрывайте его. Процесс завершится самостоятельно после явного действия пользователя.
Подключение в проект
- Kotlin
- Java
Подключите репозиторий (см. ниже).
repositories {
maven {
url = uri("https://artifactory-external.vkpartner.ru/artifactory/maven")
}
}
Чтобы подключить зависимости SDK необходимо добавить следующий фрагмент кода в свой конфигурационный файл.
dependencies {
implementation("ru.rustore.sdk:review:2.0.0")
}
Подключите репозиторий (см. ниже).
repositories {
maven {
url = uri("https://artifactory-external.vkpartner.ru/artifactory/maven")
}
}
Чтобы подключить зависимости SDK необходимо добавить следующий фрагмент кода в свой конфигурационный файл.
dependencies {
implementation("ru.rustore.sdk:review:2.0.0")
}
Работа с оценками
Подготовка к работе с оценками
- Kotlin
- Java
Для работы с оценками необходимо создать RuStoreReviewManager
с помощью RuStoreReviewManagerFactory
.
val manager = RuStoreReviewManagerFactory.create(context)
Для работы с оценками необходимо создать RuStoreReviewManager
с помощью RuStoreReviewManagerFactory
.
RuStoreReviewManager manager = RuStoreReviewManagerFactory.INSTANCE.create(context);
Подготовка к запуску оценки приложения
- Kotlin
- Java
requestReviewFlow
заранее, перед вызовом launchReviewFlow
, чтобы подготовить необходимую информацию для отображения экрана. Срок жизни ReviewInfo
— около пяти минут.
manager.requestReviewFlow()
.addOnSuccessListener { reviewInfo ->
// Save reviewInfo
}
.addOnFailureListener { throwable ->
// Handle error
}
- Если получен ответ
onSuccess
, то можно в течение примерно пяти минут запустить процесс запроса оценки и отзыва о приложенииLaunchReviewFlow
. - Если получен ответ
onFailure
, то не рекомендуется самостоятельно отображать ошибку пользователю, так как пользователь не запускал данный процесс.
requestReviewFlow
заранее, перед вызовом launchReviewFlow
, чтобы подготовить необходимую информацию для отображения экрана. Срок жизни ReviewInfo
— около пяти минут.
manager.requestReviewFlow()
.addOnSuccessListener(reviewInfo -> {
// Save reviewInfo
})
.addOnFailureListener(throwable -> {
// Handle error
});
- Если получен ответ
onSuccess
, то можно в течение примерно пяти минут запустить процесс запроса оценки и отзыва о приложенииLaunchReviewFlow
. - Если получен ответ
onFailure
, то не рекомендуется самостоятельно отображать ошибку пользователю, так как пользователь не запускал данный процесс.
Запуск оценки приложения
- Kotlin
- Java
launchReviewFlow(reviewInfo)
, используя ранее полученный ReviewInfo
.
manager.launchReviewFlow(reviewInfo)
.addOnSuccessListener {
// Review flow has finished, continue your app flow.
}
.addOnFailureListener { throwable ->
// Review flow has finished, continue your app flow.
}
onSuccess
или onFailure
, чтобы продолжить работу приложения.
После завершения формы оценки вне зависимости от результата (onSuccess
или onFailure
) не рекомендуется отображать какие-либо дополнительные формы, связанные с оценкой и отзывом.
Частый вызов launchReviewFlow
не повлечёт за собой отображения формы оценки для пользователя, допустимое отображение регулируется на стороне RuStore.
launchReviewFlow(reviewInfo)
, используя ранее полученный ReviewInfo
.
manager.launchReviewFlow(reviewInfo)
.addOnSuccessListener(unit -> {
// Review flow has finished, continue your app flow.
})
.addOnFailureListener(throwable -> {
// Review flow has finished, continue your app flow.
});
onSuccess
или onFailure
, чтобы продолжить работу приложения.
После завершения формы оценки вне зависимости от результата (onSuccess
или onFailure
) не рекомендуется отображать какие-либо дополнительные формы, связанные с оценкой и отзывом.
Частый вызов launchReviewFlow
не повлечёт за собой отображения формы оценки для пользователя, допустимое отображение регулируется на стороне RuStore.
Обработка ошибок
Возникающие ошибки можно получить в событияхonFailure
.
RuStoreNotInstalledException
— на устройстве пользователя не установлен RuStore;RuStoreOutdatedException
— версия RuStore, установленная на устройстве пользователя, не поддерживает данный SDK;RuStoreUserUnauthorizedException
— пользователь не авторизован в RuStore;RuStoreUserBannedException
— пользователь заблокирован в RuStore;RuStoreApplicationBannedException
— приложение заблокировано в RuStore;RuStoreRequestLimitReached
— с момента последнего отображения процесса прошло слишком мало времени;RuStoreReviewExists
— этот пользователь уже оценил ваше приложение;RuStoreInvalidReviewInfo
— проблемы сReviewInfo
;RuStoreException
— базовая ошибка RuStore, от которой наследуются остальные ошибки.