Este guia descreve como integrar avaliações no app usando o Unity. Há guias de integração separados para casos em que você está usando Kotlin ou Java, código nativo ou o Unreal Engine.
Visão geral do SDK do Unity
A API Play In-App Review faz parte da família do SDK da 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 é feita, o app pode verificar o status dela usando
ReviewErrorCode
.
Configurar seu ambiente de desenvolvimento
OpenUPM-CLI
Se você tiver a CLI do OpenUPM instalada, poderá instalar o registro do OpenUPM com o seguinte comando:
openupm add com.google.play.review
OpenUPM
Abra as configurações do gerenciador de pacotes selecionando a opção de menu do Unity Edit > Project Settings > Package Manager.
Adicione o OpenUPM como um registro de 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
Abra o menu do gerenciador de pacotes selecionando a opção de menu do Unity Window > Package Manager.
Defina o menu suspenso "Escopo do administrador" para selecionar Meus registros.
Selecione o pacote Google Play Integrity plugin for Unity na lista de pacotes e pressione Install.
Importar do GitHub
Faça o download da versão mais recente do
.unitypackage
no GitHub.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.
// 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 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 PlayReviewInfo
, ele poderá iniciar o
fluxo de avaliação. 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 requestFlowOperation.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.