Как интегрировать отзывы в приложении (Unreal Engine)

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

Обзор Unreal Engine SDK

Play In-App Review API входит в семейство Play Core SDK. API для Unreal Engine предлагает класс UInAppReviewsManager, который позволяет запрашивать и запускать процесс с помощью методов RequestReviewFlow и LaunchReviewFlow. После отправки запроса приложение может проверить его статус с помощью EInAppReviewErrorCode.

Поддерживаемые версии Unreal Engine

Плагин поддерживает Unreal Engine 5.0 и все последующие версии.

Как настроить среду разработки

  1. Скачайте плагин Play Unreal Engine из хранилища GitHub.

  2. Скопируйте папку GooglePlay в папку Plugins в проекте Unreal Engine.

  3. Откройте проект Unreal Engine и нажмите Edit (Изменить) → Plugins (Плагины).

  4. Найдите Google Play и установите флажок Включено.

  5. Перезапустите проект игры и запустите сборку.

  6. Откройте файл Build.cs проекта и добавьте модуль PlayInAppReviews в PublicDependencyModuleNames:

    using UnrealBuildTool;
    
    public class MyGame : ModuleRules
    {
      public MyGame(ReadOnlyTargetRules Target) : base(Target)
      {
        // ...
    
        PublicDependencyModuleNames.Add("PlayInAppReviews");
    
        // ...
      }
    }
    

Как запросить показ отзыва в приложении

Следуйте рекомендациям о том, когда запрашивать отзывы в приложении, чтобы определить подходящие моменты в пути пользователя вашего приложения для показа запроса (например, после того как пользователь закрывает экран со статистикой в конце уровня игры). Когда приложение приближается к одной из этих точек, используйте UInAppReviewsManager, чтобы создать операцию, как показано в следующем примере:

MyClass.h

void MyClass::OnReviewOperationCompleted(EInAppReviewErrorCode ErrorCode)
{
  // ...
}

MyClass.cpp

void MyClass::RequestReviewFlow()
{
  // Create a delegate to bind the callback function.
  FReviewOperationCompletedDelegate Delegate;

  // Bind the completion handler (OnReviewOperationCompleted) to the delegate.
  Delegate.BindDynamic(this, &MyClass::OnReviewOperationCompleted);

  // Initiate the review flow, passing the delegate to handle the result.
  GetGameInstance()
    ->GetSubsystem<UInAppReviewsManager>()
    ->RequestReviewFlow(Delegate);
}
  1. Метод создает FRreviewOperationCompletedDelegate для обработки завершения операции отзыва.

  2. Делегат привязан к методу OnReviewOperationCompleted, который будет вызван после завершения операции.

  3. Функция BindDynamic обеспечивает правильную связь делегата с обратным вызовом.

  4. Метод RequestReviewFlow(Delegate) запускает процесс проверки, передавая делегат для обработки результата.

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

  6. После завершения операции обратный вызов OnReviewOperationCompleted обрабатывает результат, включая успешное выполнение или сбой.

Как запустить процесс оценки в приложении

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

MyClass.h

void MyClass::OnReviewOperationCompleted(EInAppReviewErrorCode ErrorCode)
{
  // ...
}

MyClass.cpp

void MyClass::LaunchReviewFlow()
{
  // Create a delegate to bind the callback function.
  FReviewOperationCompletedDelegate Delegate;

  // Bind the completion handler (OnReviewOperationCompleted) to the delegate.
  Delegate.BindDynamic(this, &MyClass::OnReviewOperationCompleted);

  // Launch the review flow, passing the delegate to handle the result.
  GetGameInstance()
    ->GetSubsystem<UInAppReviewsManager>()
    ->LaunchReviewFlow(Delegate);
}

Дальнейшие действия

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