В этом руководстве описывается, как интегрировать отзывы в ваше приложение с помощью Unity. Существуют отдельные руководства по интеграции для случаев использования Kotlin или Java , нативного кода или Unreal Engine .
Обзор Unity SDK
API для внутриигровых отзывов Play является частью семейства SDK Play Core . API для Unity предлагает класс ReviewManager для запроса и запуска процесса с помощью методов RequestReviewFlow и LaunchReviewFlow . После отправки запроса ваше приложение может проверить его статус с помощью ReviewErrorCode .
Настройте среду разработки.
OpenUPM-CLI
Если у вас установлен OpenUPM CLI , вы можете установить реестр OpenUPM с помощью следующей команды:
openupm add com.google.play.reviewOpenUPM
Откройте настройки менеджера пакетов , выбрав в меню Unity пункт «Редактировать» > «Настройки проекта» > «Менеджер пакетов» .
Добавьте OpenUPM в качестве объекта реестра с ограниченной областью видимости в окно диспетчера пакетов:
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.reviewОткройте меню менеджера пакетов , выбрав в меню Unity пункт «Окно» > «Менеджер пакетов» .
В раскрывающемся списке «Область действия менеджера» выберите «Мои реестры» .
Выберите из списка пакетов плагин Google Play Integrity для Unity и нажмите «Установить» .
Импорт из GitHub
Загрузите последнюю версию
.unitypackageс GitHub.Импортируйте файл
.unitypackage, выбрав в меню Unity пункт Assets > Import package > Custom Package и импортировав все элементы.
Создайте менеджер отзывов.
Создайте экземпляр ReviewManager , который будет обрабатывать обмен данными между вашим приложением и API Google Play.
using Google.Play.Review;
// Create instance of ReviewManager
private ReviewManager _reviewManager;
// ...
_reviewManager = new ReviewManager();
Запросить объект ReviewInfo
Следуйте рекомендациям о том, когда запрашивать отзывы внутри приложения, чтобы определить удачные моменты в пользовательском сценарии вашего приложения, когда пользователю следует предложить оставить отзыв (например, после того, как пользователь закроет экран с итоговой информацией в конце уровня игры). Когда ваше приложение приблизится к одному из этих моментов, используйте экземпляр ReviewManager для создания асинхронной операции, как показано в следующем примере:
var requestFlowOperation = _reviewManager.RequestReviewFlow();
yield return requestFlowOperation;
if (requestFlowOperation.Error != ReviewErrorCode.NoError)
{
// Log error. For example, using requestFlowOperation.Error.ToString().
yield break;
}
_playReviewInfo = requestFlowOperation.GetResult();
Если вызов выполнен успешно, API возвращает объект PlayReviewInfo , необходимый вашему приложению для запуска процесса отзыва внутри приложения. В примере вызов выполняется внутри сопрограммы для выполнения асинхронной операции (это не блокирует основной поток). Поскольку вызов выполняется асинхронно, он может занять до нескольких секунд, поэтому вашему приложению следует выполнить вызов до того момента в пользовательском потоке, когда вы хотите показать отзыв внутри приложения.
Запустите процесс написания отзывов внутри приложения.
После получения экземпляра PlayReviewInfo ваше приложение может запустить процесс написания отзывов внутри приложения. Обратите внимание, что объект PlayReviewInfo действителен только в течение ограниченного времени, поэтому вашему приложению не следует слишком долго ждать перед запуском процесса.
var launchFlowOperation = _reviewManager.LaunchReviewFlow(_playReviewInfo);
yield return launchFlowOperation;
_playReviewInfo = null; // Reset the object
if (launchFlowOperation.Error != ReviewErrorCode.NoError)
{
// Log error. For example, using launchFlowOperation.Error.ToString().
yield break;
}
// The flow has finished. The API does not indicate whether the user
// reviewed or not, or even whether the review dialog was shown. Thus, no
// matter the result, we continue our app flow.
Следующие шаги
Проверьте процесс написания отзывов внутри приложения, чтобы убедиться в корректной работе интеграции.