Cómo integrar opiniones en la app (Kotlin o Java)

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

Cómo configurar tu entorno de desarrollo

La biblioteca de Play In-App Review forma parte de las bibliotecas de Google Play Core. Incluye la siguiente dependencia de Gradle para integrar la biblioteca de Play In-App Review.

Groovy

// In your app’s build.gradle file:
...
dependencies {
    // This dependency is downloaded from the Google’s Maven repository.
    // So, make sure you also include that repository in your project's build.gradle file.
    implementation 'com.google.android.play:review:2.0.2'

    // For Kotlin users also add the Kotlin extensions library for Play In-App Review:
    implementation 'com.google.android.play:review-ktx:2.0.2'
    ...
}

Kotlin

// In your app’s build.gradle.kts file:
...
dependencies {
    // This dependency is downloaded from the Google’s Maven repository.
    // So, make sure you also include that repository in your project's build.gradle file.
    implementation("com.google.android.play:review:2.0.2")

    // For Kotlin users also import the Kotlin extensions library for Play In-App Review:
    implementation("com.google.android.play:review-ktx:2.0.2")
    ...
}

Cómo crear el ReviewManager

El objeto ReviewManager es la interfaz que permite que tu app inicie un flujo de opiniones integradas. Para obtenerlo, crea una instancia con ReviewManagerFactory.

Kotlin

val manager = ReviewManagerFactory.create(context)

Java

ReviewManager manager = ReviewManagerFactory.create(context)

Cómo solicitar un objeto ReviewInfo

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 solicitarles que brinden una opinión (por ejemplo, cuando completan un nivel en un juego). Cuando tu app alcance uno de estos puntos, usa la instancia de ReviewManager para crear una tarea de solicitud. Si se ejecuta de forma correcta, la API muestra el objeto ReviewInfo necesario para iniciar el flujo de opiniones en la app.

Kotlin

val request = manager.requestReviewFlow()
request.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        // We got the ReviewInfo object
        val reviewInfo = task.result
    } else {
        // There was some problem, log or handle the error code.
        @ReviewErrorCode val reviewErrorCode = (task.getException() as ReviewException).errorCode
    }
}

Java

ReviewManager manager = ReviewManagerFactory.create(this);
Task<ReviewInfo> request = manager.requestReviewFlow();
request.addOnCompleteListener(task -> {
    if (task.isSuccessful()) {
        // We can get the ReviewInfo object
        ReviewInfo reviewInfo = task.getResult();
    } else {
        // There was some problem, log or handle the error code.
        @ReviewErrorCode int reviewErrorCode = ((ReviewException) task.getException()).getErrorCode();
    }
});

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

Usa la instancia ReviewInfo para iniciar el flujo de opiniones en la app. Espera hasta que el usuario complete el flujo de opiniones en la app antes de que esta continúe su flujo normal de usuarios (por ejemplo, avanzar al siguiente nivel).

Kotlin

val flow = manager.launchReviewFlow(activity, reviewInfo)
flow.addOnCompleteListener { _ ->
    // 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.
}

Java

Task<Void> flow = manager.launchReviewFlow(activity, reviewInfo);
flow.addOnCompleteListener(task -> {
    // 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.
});

Próximos pasos

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