Skip to main content

6.0.0

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

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

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

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

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

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

img

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

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

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

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

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

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

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

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

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

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

caution

Библиотеки плагинов в репозитории собраны для Godot Engine 4.2.1. Если вы используете другую версию Godot Engine, выполните шаги раздела Пересборка плагина.

  1. Скопируйте проекты плагина из официального репозитория RuStore на GitFlic.

  2. Скопируйте содержимое папки godot_example/android/plugins в папку your_project/android/plugins.

  3. В пресете сборки 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
Вызов метода request_review_flow
_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
Вызов метода launch_review_flow
_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, от которой наследуются остальные ошибки.