Integrar avaliações no app (Unity)

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

Visão geral do SDK do Unity

A API Google Play In-App Review faz parte da família do SDK Play Core. A API para Unity oferece uma classe ReviewManager para solicitar e iniciar o fluxo usando os métodos RequestReviewFlow e LaunchReviewFlow. Depois que uma solicitação for feita, seu app poderá verificar o status dela usando ReviewErrorCode.

Configurar o ambiente de desenvolvimento

OpenUPM-CLI

Se a CLI do OpenUPM estiver instalada, você poderá instalar o registro do OpenUPM com o seguinte comando:

openupm add com.google.play.review

OpenUPM

  1. Abra as configurações do gerenciador de pacotes. Para isso, selecione a opção do menu do Unity Edit > Project Settings > Package Manager.

  2. Adicione o OpenUPM como um registro com escopo à janela do gerenciador de pacotes:

    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
    
  3. Selecione a opção do menu do Unity Window > Package Manager para abrir o menu do gerenciador de pacotes.

  4. Defina o menu suspenso de escopo do administrador para selecionar My Registries.

  5. Selecione o pacote Plug-in Google Play Integrity para Unity na lista de pacotes e pressione Instalar.

Importar do GitHub

  1. Faça o download da versão mais recente do .unitypackage no GitHub.

  2. Importe o arquivo .unitypackage selecionando a opção de menu Assets > Import package > Custom Package do Unity e importando todos os itens.

Criar o ReviewManager

Crie uma instância de ReviewManager que processe a comunicação entre seu app e a API Google Play.

using Google.Play.Review;

// Create instance of ReviewManager
private ReviewManager _reviewManager;
// ...
_reviewManager = new ReviewManager();

Solicitar um objeto ReviewInfo

Siga as orientações sobre quando solicitar avaliações no app para determinar bons pontos no fluxo do usuário para solicitar uma avaliação (por exemplo, depois que um usuário dispensar a tela de resumo ao final de um nível em um jogo). Quando o app estiver perto de um desses pontos, use a instância de ReviewManager para criar uma operação assíncrona, como mostrado no exemplo a seguir:

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

Se a chamada for bem-sucedida, a API vai retornar o objeto PlayReviewInfo necessário para iniciar o fluxo de avaliação no app. No exemplo, a chamada é feita dentro de uma corrotina para executar a operação assíncrona. Isso não bloqueia a linha de execução principal. Como a chamada é feita de maneira assíncrona, ela pode demorar alguns segundos. Assim, o app precisa fazer a chamada antes de chegar ao ponto no fluxo de usuários em que você quer exibir a chamada de avaliação no app.

Iniciar o fluxo de avaliação no app

Depois que o app receber a instância de PlayReviewInfo, ele poderá iniciar o fluxo de avaliação no app. Observe que o objeto PlayReviewInfo é válido apenas por um período limitado. Portanto, seu app não pode esperar muito tempo antes de iniciar um fluxo.

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.

Próximas etapas

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