Интегрируйте обзоры в приложении (Unity)

В этом руководстве описывается, как интегрировать внутренние обзоры в ваше приложение с помощью Unity. Существуют отдельные руководства по интеграции, если вы используете Kotlin, Java или собственный код .

Обзор Unity SDK

Play In-App Review API является частью семейства Play Core SDK . API для Unity предлагает класс ReviewManager для запроса и запуска потока с помощью методов RequestReviewFlow и LaunchReviewFlow . После отправки запроса ваше приложение может проверить статус запроса с помощью ReviewErrorCode .

Настройте среду разработки

OpenUPM-CLI

Если у вас установлен интерфейс командной строки OpenUPM, вы можете установить реестр OpenUPM с помощью следующей команды:

openupm add com.google.play.review

ОпенУПМ

  1. Откройте настройки менеджера пакетов , выбрав пункт меню Unity Edit > Project Settings > Package Manager .

  2. Добавьте 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
    
  3. Откройте меню диспетчера пакетов , выбрав пункт меню Unity «Окно» > «Диспетчер пакетов» .

  4. Установите раскрывающийся список области менеджера, чтобы выбрать «Мои реестры» .

  5. Выберите плагин Google Play Integrity для пакета Unity из списка пакетов и нажмите «Установить» .

Импорт из GitHub

  1. Загрузите последнюю версию .unitypackage с GitHub.

  2. Импортируйте файл .unitypackage , выбрав пункт меню Unity «Активы» > «Импортировать пакет» > «Пользовательский пакет» и импортировав все элементы.

Создайте менеджер отзывов

Создайте экземпляр ReviewManager , который будет обрабатывать связь между вашим приложением и API.

// 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 requestFlowOperation.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.

Следующие шаги

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