В этом руководстве описано, как интегрировать отзывы в приложении Unity. У нас есть отдельные руководства по интеграции для Kotlin и Java, нативного кода и Unreal Engine.
Обзор Unity SDK
Play In-App Review API входит в семейство Play Core SDK. API для Unity предлагает класс ReviewManager, который позволяет запрашивать и запускать процесс с помощью методов RequestReviewFlow и LaunchReviewFlow. После отправки запроса приложение может проверить его статус с помощью ReviewErrorCode.
Как настроить среду разработки
OpenUPM-CLI
Если у вас установлен OpenUPM CLI, вы можете установить реестр OpenUPM с помощью следующей команды:
openupm add com.google.play.reviewOpenUPM
Откройте настройки менеджера пакетов, выбрав в меню Unity Edit (Редактировать) > Project Settings (Настройки проекта) > Package Manager (Менеджер пакетов).
Добавьте OpenUPM в качестве реестра с ограниченной областью действия в окне Package Manager (Менеджер пакетов):
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 Window (Окно) > Package Manager (Менеджер пакетов).
В раскрывающемся списке "Область действия менеджера" выберите Мои реестры.
Выберите пакет Google Play Integrity plugin for Unity в списке пакетов и нажмите Install (Установить).
Импортировать из GitHub
Скачайте последнюю версию
.unitypackageс сайта GitHub.Импортируйте файл
.unitypackage, выбрав в меню Unity Assets (Объекты) > Import package (Импортировать пакет) > Custom Package (Пользовательский пакет), и импортируйте все элементы.
Создайте ReviewManager
Создайте экземпляр ReviewManager, который будет обрабатывать обмен данными между вашим приложением и Google Play API.
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.
Дальнейшие действия
Протестируйте процесс оставления отзыва в приложении, чтобы убедиться, что интеграция работает правильно.