6.1.0
Общие сведения
RuStore In-app Review SDK предлагает пользователю оставить оценку и отзыв о вашем приложении в RuStore, не выходя из приложения.
Пользовательский сценарий оценки и отзыва может быть запущен в любое время на протяжении всего пути пользователя в вашем приложении. Пользователь может оценить ваше приложение по шкале от 1 до 5 и оставить отзыв. Отзыв является опциональным.
Пример реализации
Ознакомьтесь с приложением-примером чтобы узнать, как правильно интегрировать SDK отзывов и оценок.
Пример пользовательского сценария
Условия корректной работы SDK
Для работы SDK оценок и отзывов необходимо соблюдение следующих условий.
- Приложение загружено в Консоль RuStore.
- Подпись тестируемой сборки (например,
debug
) приложения должна совпадать с подписью сборки приложения, которая была загружена в консоль и прошла модерацию ранее (например,release
).
- ОС Android версии 7.0 или выше.
- На устройстве пользователя установлена актуальная версия RuStore.
- Пользователь авторизован в RuStore.
Приложение должно быть опубликовано в RuStore .
Когда запрашивать оценку и отзыв
Следуйте рекомендациям, чтобы решить, в какой момент запросить оценку и отзыв о приложении у пользователя (см. ниже).
- Запускайте процесс после того, как пользователь достаточно использовал ваше приложение.
- Не запускайте процесс слишком часто — это ухудшит опыт пользователя вашего приложения и ограничит использование SDK оценок.
- Не используйте призывы к действию, например, кнопку «Оценить приложение» — пользователь уже мог исчерпать лимит запуска процесса.
- Ваше приложение не должно задавать какие-либо вопросы пользователю перед запуском или во время процесса, в том числе вопросы об их мнении (например, «Вам нравится приложение?») или прогнозирующие вопросы (например, «Вы бы поставили этому приложению 5 звёзд?»).
Рекомендации к дизайну
Следуйте рекомендациям, чтобы решить, как интегрировать процесс.
- Отображайте процесс как есть, без какого-либо вмешательства или изменения текущего дизайна, включая размер, непрозрачность, форму и другие свойства.
- Ничего не добавляйте поверх или по краям процесса.
- Процесс должен открываться поверх всех слоёв. После запуска процесса не закрывайте его. Процесс завершится самостоятельно после явного действия пользователя.
Подключение в проект
- Установка через .unitypackage
- Установка через Package Manager
Для подключения скачайте файл RuStoreUnityReviewSDK-version.unitypackage
и импортируйте его в проект (Assets > Import Package > Custom Package). Зависимости подключаются автоматически с помощью External Dependency Manager (включен в .unitypackage
).
Если вы используете операционную систему macOS, измените настройки утилиты архивации. В настройках Archive Utility снимите флажок Keep expanding if possible. В противном случае архив проекта будет скачан некорректно.
Также вы можете склонировать код с помощью Git.
Для корректной обработки зависимостей SDK выполните следующие настройки.
-
Откройте настройки проекта: Edit > Project Settings > Player > Android Settings.
-
В pазделе Publishing Settings включите следующие настройки.
- Custom Main Manifest.
- Custom Main Gradle Template.
- Custom Gradle Properties Template.
-
В разделе Other Settings настройте:
- package name.
- Minimum API Level = 24.
- Target API Level = 34.
-
Откройте настройки External Dependency Manager: Assets > External Dependency Manager > Android Resolver > Settings, включите следующие настройки.
- Use Jetifier.
- Patch mainTemplate.gradle.
- Patch gradleTemplate.properties.
-
Обновите зависимости проекта: Assets > External Dependency Manager > Android Resolver > Force Resolve.
Обновление
Версии плагина 6.1.0 и выше содержат измененную структуру директорий. Измененная структура позволяет использовать преимущества раздельных сборок частей проекта Assembly definitions.
Перед установкой обновления выполните удаление следующих папок.
- Assets > RuStoreSDK > Review > Editor.
- Assets > RuStoreSDK > Common > Editor.
После удаления импортируйте новый .unitypackage
в проект как при обычной установке (Assets > Import Package > Custom Package).
Для подключения скачайте файлы:
и импортируйте в проект через Package Manager (Window > Package Manager > + > Add package from tarball...).
Зависимости подключаются автоматически с помощью External Dependency Manager:
- Откройте окно менеджера пакетов (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).
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.
Если вы используете операционную систему macOS, измените настройки утилиты архивации. В настройках Archive Utility снимите флажок Keep expanding if possible. В противном случае архив проекта будет скачан некорректно.
Для корректной обработки зависимостей SDK выполните следующие настройки.
-
Откройте настройки проекта: Edit > Project Settings > Player > Android Settings.
-
В pазделе Publishing Settings включите следующие настройки.
- Custom Main Manifest.
- Custom Main Gradle Template.
- Custom Gradle Properties Template.
-
В разделе Other Settings настройте:
- package name.
- Minimum API Level = 24.
- Target API Level = 34.
-
Откройте настройки External Dependency Manager: Assets > External Dependency Manager > Android Resolver > Settings, включите следующие настройки.
- Use Jetifier.
- Patch mainTemplate.gradle.
- Patch gradleTemplate.properties.
-
Обновите зависимости проекта: Assets > External Dependency Manager > Android Resolver > Force Resolve.
Работа с оценками
Подготовка к работе с оценками
Для работы с оценками необходимо создать RuStoreReviewManager
с помощью RuStoreReviewManagerFactory
.
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, от которой наследуются остальные ошибки.