Integrar avaliações no app (Kotlin ou Java)

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Este guia descreve como integrar avaliações no app usando Kotlin ou Java. Há guias de integração separados se você estiver usando código nativo ou o Unity.

Configurar seu ambiente de desenvolvimento

A Biblioteca Play In-App Review faz parte das Bibliotecas Google Play Core. Inclua a dependência do Gradle abaixo para integrar a biblioteca 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.1'

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

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.1")

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

Criar o ReviewManager

O ReviewManager é a interface que permite ao app iniciar um fluxo de avaliação no app. Ele pode ser acessado criando uma instância usando o ReviewManagerFactory.

Kotlin

val manager = ReviewManagerFactory.create(context)

Java

ReviewManager manager = ReviewManagerFactory.create(context)

Solicitar um objeto ReviewInfo

Siga as orientações sobre quando solicitar avaliações no app para determinar bons pontos no fluxo de usuários (por exemplo, quando o usuário conclui um nível em um jogo). Quando o app atingir um desses pontos, use a instância ReviewManager para criar uma tarefa de solicitação. Se for bem-sucedida, a API vai retornar o objeto ReviewInfo necessário para iniciar o fluxo de avaliação no 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 TaskException).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 = ((TaskException) task.getException()).getErrorCode();
    }
});

Iniciar o fluxo de avaliação no app

Use a instância ReviewInfo para iniciar o fluxo de avaliação no app. Aguarde o usuário concluir o fluxo de avaliação antes de continuar com o fluxo normal de usuários (como avançar para o próximo nível).

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óximas etapas

Teste o fluxo de avaliações no app para verificar se a integração está funcionando corretamente.