Cómo integrar opiniones integradas en la app (Unreal Engine)

En esta guía, se describe cómo integrar opiniones integradas en tu app con Unreal Engine. Hay guías de integración separadas para si usas Kotlin o Java, código nativo o Unity.

Descripción general del SDK de Unreal Engine

La API de Play In-App Reviews forma parte de la familia del SDK de Play Core. La API de Unreal Engine ofrece una clase UInAppReviewsManager para solicitar y, luego, iniciar el flujo con los métodos RequestReviewFlow y LaunchReviewFlow. Después de realizar una solicitud, tu app puede verificar el estado de la solicitud con EInAppReviewErrorCode.

Versiones de Unreal Engine compatibles

El complemento admite Unreal Engine 5.0 y todas las versiones posteriores.

Cómo configurar tu entorno de desarrollo

Configuración

  1. Descarga el complemento de Unreal Engine para Play desde el repositorio de GitHub.

  2. Copia la carpeta GooglePlay dentro de la carpeta Plugins en tu proyecto de Unreal Engine.

  3. Abre tu proyecto de Unreal Engine y haz clic en Editar → Plugins.

  4. Busca Google Play y marca la casilla de verificación Habilitada.

  5. Reinicia el proyecto del juego y activa una compilación.

  6. Abre el archivo Build.cs de tu proyecto y agrega el módulo PlayInAppReviews a PublicDependencyModuleNames:

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

Solicita el flujo de opiniones integrado en la app

Sigue las instrucciones sobre cuándo solicitar opiniones integradas en la app para determinar buenos puntos en el flujo de usuarios de tu app para solicitarle al usuario que brinde una opinión (por ejemplo, después de que descarte la pantalla de resumen al final de un nivel en un juego). Cuando tu app se acerque a uno de estos puntos, usa UInAppReviewsManager para crear una operación, como se muestra en el siguiente ejemplo:

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. El método crea un FRreviewOperationCompletedDelegate para controlar la finalización de la operación de revisión.

  2. El delegado está vinculado al método OnReviewOperationCompleted, al que se llamará una vez que finalice la operación.

  3. La función BindDynamic garantiza que el delegado esté vinculado correctamente a la devolución de llamada.

  4. El método RequestReviewFlow(Delegate) inicia el proceso de revisión y pasa el delegado para controlar el resultado.

  5. La operación de revisión se ejecuta de forma asíncrona, lo que permite que otras tareas de la app continúen mientras se completa.

  6. Una vez que finaliza la operación, la devolución de llamada de OnReviewOperationCompleted procesa el resultado, incluido el éxito o el error.

Cómo iniciar el flujo de opiniones integradas en la app

Una vez que se complete la operación RequestReviewFlow, puedes iniciar el flujo de revisión en la app. Para ello, se vincula un delegado para controlar el evento de finalización, lo que garantiza que la app reaccione al resultado (correcto o incorrecto) de la solicitud de revisión.

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);
}

Próximos pasos

Prueba el flujo de opiniones integradas en la app para verificar que la integración funcione correctamente.