Перейти к основному содержимому

SDK Оценки и отзывы для React (версия 10.0.0)

Общие сведения

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

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

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

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

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

img

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

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

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

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

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

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

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

Для подключения скачайте со страницы релизов пакеты:

  • ru.rustore.core-version.tgz
  • ru.rustore.review-version.tgz

Импортируйте пакеты в проект через Package Manager (Window → Package Manager → + → Add package from tarball...).

подсказка

Если вы используете операционную систему macOS, измените настройки утилиты архивации. В настройках Archive Utility снимите флажок Keep expanding if possible. В противном случае архив проекта будет скачан некорректно.

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

  1. Откройте настройки проекта: Edit → Project Settings → Player → Android Settings.

  2. В pазделе Publishing Settings включите следующие настройки.

    • Custom Main Manifest.
    • Custom Main Gradle Template.
    • Custom Gradle Properties Template.
  3. В разделе Other Settings настройте:

    • package name.
    • Minimum API Level = 24.
    • Target API Level = 34.

Подключение зависимостей

Зависимости Android-сборки подключаются автоматически с помощью инструмента External Dependency Manager.

Для автоматического решения зависимостей воспользуйтесь командой: Assets → External Dependency Manager → Android Resolver → Force Resolve. Эту операцию следует выполнять каждый раз при добавлении новых версий плагинов или пересоздании файлов Assets / Plugins / Android / mainTemplate.gradle и Assets / Plugins / Android / settingsTemplate.gradle.

  • При установке плагинов RuStore через *.unitypackage External Dependency Manager не требует специальной установки.

  • При установке плагинов RuStore через Package Manager выполните следующие действия:

    • Откройте вкладку плагина RuStore Core в окне менеджера пакетов: Window → Package Manager → Packages RuStore → RuStore Core.
    • Перейдите на вкладку Samples.
    • Импортируйте сэмпл External Dependency Manager.
  • Последнюю версию External Dependency Manager также можно получить из репозитория разработчика на GitHub:

    • Откройте окно менеджера пакетов: Window → Package Manager → + → Add package from git URL....
    • Используйте ссылку https://github.com/googlesamples/unity-jar-resolver.git?path=/upm для подключения пакета.
    • Для устранения ошибки "Google.IOSResolver.dll will not be loaded" установите модуль сборки iOS для вашей версии Unity: UnityHub → Installs → Ваша версия Unity → Add modules → iOS Build Support.
Ошибка Google.IOSResolver.dll
Assembly 'Packages/com.google.external-dependency-manager/ExternalDependencyManager/Editor/1.2.182/Google.IOSResolver.dll' will not be loaded due to errors:
Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.

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

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

Перед вызовом методов библиотеки необходимо инициализировать объект RuStoreReviewManager.

RuStoreReviewManager.Instance.Init();

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

Вызовите RequestReviewFlow() заранее, перед вызовом LaunchReviewFlow(), чтобы подготовить необходимую информацию для отображения экрана. Срок жизни ReviewInfo — около пяти минут.
RuStoreReviewManager.Instance.RequestReviewFlow(
onFailure: (error) => {
// Handle error
},
onSuccess: () => {
// Handle success
}
);
  • Если получен ответ onSuccess, то можно в течение примерно пяти минут запустить процесс запроса оценки и отзыва о приложении LaunchReviewFlow.
  • Если получен ответ onFailure, то не рекомендуется самостоятельно отображать ошибку пользователю, так как пользователь не запускал данный процесс.

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

Для запуска формы запроса оценки и отзыва о приложении у пользователя вызовите метод LaunchReviewFlow(), используя ранее полученный ReviewInfo.
RuStoreReviewManager.Instance.LaunchReviewFlow(
onFailure: (error) => {
// Handle error
},
onSuccess: () => {
// Handle success
}
);
Дождитесь уведомления о завершении формы пользователем в onSuccess или onFailure, чтобы продолжить работу приложения. После завершения формы оценки вне зависимости от результата (onSuccess или onFailure) не рекомендуется отображать какие-либо дополнительные формы, связанные с оценкой и отзывом. Частый вызов launchReviewFlow не повлечёт за собой отображения формы оценки для пользователя, допустимое отображение регулируется на стороне RuStore.

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

Структура ошибки
public class RuStoreError {
public string name;
public string description;
}
  • name — название ошибки;
  • description — описание ошибки.
Возникающие ошибки можно получить в событиях onFailure.

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