SDK оценок и отзывов для Godot 1.0.1
Общие сведения
RuStore In-app Review SDK предлагает пользователю оставить оценку и отзыв о вашем приложении в RuStore, не выходя из приложения.
Пользовательский сценарий оценки и отзыва может быть запущен в любое время на протяжении всего пути пользователя в вашем приложении. Пользователь может оценить ваше приложение по шкале от 1 до 5 и оставить отзыв. Отзыв является опциональным.
Пример реализации
Ознакомьтесь с приложением-примером чтобы узнать, как правильно интегрировать SDK отзывов и оценок.
Пример пользовательского сценария
Условия корректной работы SDK
Для работы SDK оценок и отзывов необходимо соблюдение следующих условий.
- Приложение загружено в Консоль RuStore.
- Подпись тестируемой сборки (например,
debug
) приложения должна совпадать с подписью сборки приложения, которая была загружена в консоль и прошла модерацию ранее (например,release
).
- ОС Android версии 7.0 или выше.
- На устройстве пользователя установлена актуальная версия RuStore.
- Пользователь авторизован в RuStore.
Приложение должно быть опубликовано в RuStore .
Когда запрашивать оценку и отзыв
Следуйте рекомендациям, чтобы решить, в какой момент запросить оценку и отзыв о приложении у пользователя (см. ниже).
- Запускайте процесс после того, как пользователь достаточно использовал ваше приложение.
- Не запускайте процесс слишком часто — это ухудшит опыт пользователя вашего приложения и ограничит использование SDK оценок.
- Не используйте призывы к действию, например, кнопку «Оценить приложение» — пользователь уже мог исчерпать лимит запуска процесса.
- Ваше приложение не должно задавать какие-либо вопросы пользователю перед запуском или во время процесса, в том числе вопросы об их мнении (например, «Вам нравится приложение?») или прогнозирующие вопросы (например, «Вы бы поставили этому приложению 5 звёзд?»).
Рекомендации к дизайну
Следуйте рекомендациям, чтобы решить, как интегрировать процесс.
- Отображайте процесс как есть, без какого-либо вмешательства или изменения текущего дизайна, включая размер, непрозрачность, форму и другие свойства.
- Ничего не добавляйте поверх или по краям процесса.
- Процесс должен открываться поверх всех слоёв. После запуска процесса не закрывайте его. Процесс завершится самостоятельно после явного действия пользователя.
Подключение в проект
- Скопируйте проекты плагина из официального репозитория RuStore на GitFlic.
- Откройте в вашей IDE проект Android из папки
godot_plugin_libraries
. - Поместите в папку
godot_plugin_libraries/libs
пакетgodot-lib.xxx.yyy.template_release.aar
, гдеxxx.yyy
версия вашей редакции Godot Engine. - Выполните сборку проекта командой
gradle assemble
.
При успешном выполнении сборки в папке godot_example/android/plugins
будут созданы файлы:
RuStoreGodotReview.gdap
;RuStoreGodotReview.aar
;RuStoreGodotCore.gdap
;RuStoreGodotCore.aar
.
Обратите особое внимание, что библиотеки плагинов должны быть собраны под вашу версию Godot Engine.
-
Скопируйте содержимое папки
godot_example/android/plugins
в папкуyour_project/android/plugins
. -
В пресете сборки Android в списке
Плагины
отметьте плагиныRu Store Godot Review
иRu Store Godot Core
.
Работа с оценками
Подготовка к работе с оценками
Для работы с оценками необходимо создать экземпляр RuStoreGodotReviewManager
.
Инициализация
var _review_client: RuStoreGodotReviewManager = null
func _ready:
_review_client = RuStoreGodotReviewManager.get_instance()
Подготовка к запуску оценки приложения
Вызовитеrequest_review_flow
заранее, перед вызовом launch_review_flow
, чтобы подготовить необходимую информацию для отображения экрана. Срок жизни ReviewInfo
— около пяти минут.
Перед использованием метода необходимо единожды выполнить подписку на события:
on_request_review_flow_success
;on_request_review_flow_failure
.
func _ready():
# Инициализация _review_client
_review_client.on_request_review_flow_success.connect(_on_request_review_flow_success)
_review_clientt.on_request_review_flow_failure.connect(_on_request_review_flow_failure)
func _on_request_review_flow_success():
pass
func _on_request_review_flow_failure(error: RuStoreError):
pass
_review_client.request_review_flow()
Обратный вызов (callback) on_request_review_flow_failure
возвращает объект RuStoreError
с информацией об ошибке. Структура ошибки RuStoreError
описана в разделе Обработка ошибок.
Запуск оценки приложения
Для запуска формы запроса оценки и отзыва о приложении у пользователя вызовите методlaunch_review_flow
, используя ранее полученный ReviewInfo
.
Перед использованием метода необходимо единожды выполнить подписку на события:
on_request_review_flow_success
;on_request_review_flow_failure
.
func _ready():
# Инициализация _review_client
_review_client.on_launch_review_flow_success.connect(_on_launch_review_flow_success)
_review_client.on_launch_review_flow_failure.connect(_on_launch_review_flow_failure)
func _on_launch_review_flow_success():
pass
func _on_launch_review_flow_failure(error: RuStoreError):
pass
_review_client.launch_review_flow()
on_launch_review_flow_success
или on_launch_review_flow_failure
, чтобы продолжить работу приложения.
Обратный вызов (callback) on_launch_review_flow_failure
возвращает объект RuStoreError
с информацией об ошибке. Структура ошибки RuStoreError
описана в разделе Обработка ошибок.
Success
или Failure
) не рекомендуется отображать какие-либо дополнительные формы, связанные с оценкой и отзывом.
Частый вызов launch_review_flow
не повлечёт за собой отображения формы оценки для пользователя, допустимое отображение регулируется на стороне RuStore.
Обработка ошибок
Возникающие ошибки можно получить в событиях*_failure
.
Структура ошибки
class_name RuStoreError extends Object
var description: String
func _init(json: String = ""):
if json == "":
description = ""
else:
var obj = JSON.parse_string(json)
description = obj["detailMessage"]
description
– описание ошибки.
Возможные ошибки
RuStoreNotInstalledException
— на устройстве пользователя не установлен RuStore;RuStoreOutdatedException
— версия RuStore, установленная на устройстве пользователя, не поддерживает данный SDK;RuStoreUserUnauthorizedException
— пользователь не авторизован в RuStore;RuStoreRequestLimitReached
— с момента последнего отображения процесса прошло слишком мало времени;RuStoreReviewExists
— этот пользователь уже оценил ваше приложение;RuStoreInvalidReviewInfo
— проблемы сReviewInfo
;RuStoreException
— базовая ошибка RuStore, от которой наследуются остальные ошибки.