跳到主要内容

6.1.0

RuStore In-app Review SDK предлагает пользователю оставить оценку и отзыв о вашем приложении в RuStore, не выходя из приложения.

Пользовательский сценарий оценки и отзыва может быть запущен в любое время на протяжении всего пути пользователя в вашем приложении. Пользователь может оценить ваше приложение по шкале от 1 до 5 и оставить отзыв. Отзыв является опциональным.

Пример реализации

Ознакомьтесь с приложением-примером чтобы узнать, как правильно интегрировать SDK отзывов и оценок.

Пример пользовательского сценария

img

Условия корректной работы SDK

Для работы SDK оценок и отзывов необходимо соблюдение следующих условий.

Важно
  • Подпись тестируемой сборки (например, debug) приложения должна совпадать с подписью сборки приложения, которая была загружена в консоль и прошла модерацию ранее (например, release).
  • ОС Android версии 7.0 или выше.
  • На устройстве пользователя установлена актуальная версия RuStore.
  • Пользователь авторизован в RuStore.
  • Приложение должно быть опубликовано в RuStore.

Когда запрашивать оценку и отзыв

Следуйте рекомендациям, чтобы решить, в какой момент запросить оценку и отзыв о приложении у пользователя (см. ниже).

  • Запускайте процесс после того, как пользователь достаточно использовал ваше приложение.
  • Не запускайте процесс слишком часто — это ухудшит опыт пользователя вашего приложения и ограничит использование SDK оценок.
  • Не используйте призывы к действию, например, кнопку «Оценить приложение» — пользователь уже мог исчерпать лимит запуска процесса.
  • Ваше приложение не должно задавать какие-либо вопросы пользователю перед запуском или во время процесса, в том числе вопросы об их мнении (например, «Вам нравится приложение?») или прогнозирующие вопросы (например, «Вы бы поставили этому приложению 5 звёзд?»).

Рекомендации к дизайну

Следуйте рекомендациям, чтобы решить, как интегрировать процесс.

  • Отображайте процесс как есть, без какого-либо вмешательства или изменения текущего дизайна, включая размер, непрозрачность, форму и другие свойства.
  • Ничего не добавляйте поверх или по краям процесса.
  • Процесс должен открываться поверх всех слоёв. После запуска процесса не закрывайте его. Процесс завершится самостоятельно после явного действия пользователя.

Подключение в проект

Подключите репозиторий (см. ниже).

build.gradle
repositories {
maven {
url = uri("https://artifactory-external.vkpartner.ru/artifactory/maven")
}
}

Чтобы подключить зависимости SDK необходимо добавить следующий фрагмент кода в свой конфигурационный файл.

Преимущества использования BOM-файла для конфигурации.

  1. Единое управление версиями:

    • С BOM вы можете управлять версиями всех зависимостей из одного файла. Это особенно полезно, если вы используете несколько библиотек, которые должны быть совместимы друг с другом.
    • Например, если у вас есть несколько библиотек от RuStore, таких как ru.rustore.sdk:billingclient и ru.rustore.sdk:pushclient, вы можете использовать BOM, чтобы гарантировать, что все они будут совместимы друг с другом.
  2. Упрощение обновлений:

    • Обновление зависимостей становится проще, так как вам нужно изменить версию только в одном месте — в BOM-файле. Это снижает риск пропустить обновление какой-либо зависимости и избежать конфликтов версий.
    • Например, если новая версия BOM-файла содержит обновленные версии всех библиотек, вам достаточно обновить только BOM-файл, а не каждую зависимость по отдельности.
  3. Повышение совместимости:

    • Использование BOM помогает избежать конфликтов версий между различными библиотеками. Это особенно важно, когда библиотеки имеют зависимости друг от друга.
    • Например, если две библиотеки зависят от разных версий одной и той же библиотеки, это может вызвать конфликты. BOM помогает избежать таких ситуаций, гарантируя, что все зависимости совместимы.
build.gradle
dependencies {
implementation(platform("ru.rustore.sdk:bom:6.1.0"))
implementation("ru.rustore.sdk:review")
}

Работа с оценками

Подготовка к работе с оценками

Для работы с оценками необходимо создать RuStoreReviewManager с помощью RuStoreReviewManagerFactory.

val manager = RuStoreReviewManagerFactory.create(context)

Подготовка к запуску оценки приложения

Вызовите requestReviewFlow заранее, перед вызовом launchReviewFlow, чтобы подготовить необходимую информацию для отображения экрана. Срок жизни ReviewInfo — около пяти минут.
manager.requestReviewFlow()
.addOnSuccessListener { reviewInfo ->
// Save reviewInfo
}
.addOnFailureListener { throwable ->
// Handle error
}
  • Если получен ответ onSuccess, то можно в течение примерно пяти минут запустить процесс запроса оценки и отзыва о приложении LaunchReviewFlow.
  • Если получен ответ onFailure, то не рекомендуется самостоятельно отображать ошибку пользователю, так как пользователь не запускал данный процесс.

Запуск оценки приложения

Для запуска формы запроса оценки и отзыва о приложении у пользователя вызовите метод 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.

Обработка ошибок

Возникающие ошибки можно получить в событиях onFailure.

  • RuStoreNotInstalledException — на устройстве пользователя не установлен RuStore;
  • RuStoreOutdatedException — версия RuStore, установленная на устройстве пользователя, не поддерживает данный SDK;
  • RuStoreUserUnauthorizedException — пользователь не авторизован в RuStore;
  • RuStoreUserBannedException — пользователь заблокирован в RuStore;
  • RuStoreApplicationBannedException — приложение заблокировано в RuStore;
  • RuStoreRequestLimitReached — с момента последнего отображения процесса прошло слишком мало времени;
  • RuStoreReviewExists — этот пользователь уже оценил ваше приложение;
  • RuStoreInvalidReviewInfo — проблемы с ReviewInfo;
  • RuStoreException — базовая ошибка RuStore, от которой наследуются остальные ошибки.