Como implementar InAppReview

Iago Mendes Fucolo
Android Dev BR
Published in
3 min readSep 11, 2020

--

Em algum momento você já implementou ou vai precisar implementar uma forma de pedir para os seus usuários deixarem um review sobre o seu app na PlayStore.

Se não, você deveria implementar, pois quanto mais reviews positivos seu app tiver melhor será a posição do seu app na play store.

Old porém Gold:

A forma mais comum de pedir um review é levar o usuário até a loja chamando uma Activity que o redireciona direto para a página do app na Google Play Store.

Como no código a seguir:

Os problemas de fazermos o fluxo de review dessa forma:

  • Usuário tem que encontrar a forma de deixar o review na página do app;
  • Usuário pode não voltar para o app depois do fluxo;
  • Ter que sair do app para deixar um review.

Mesmo com os problemas citados acima, ainda era a melhor forma de implementar.

Mas agora temos uma nova forma utilizando:

Google Play In-App Review API

Com o Google Play In-App Review API os nossos usuários não precisam mais sair do aplicativo para deixar o seu review.

No screenshoot acima, é um exemplo real de um projeto pessoal que está na play store.

Então é isso, simples e fácil, certo? Sim, mas existem algumas limitações que precisam ser explicadas antes de implementarmos:

Funciona apenas em dispositivos:

  • Com Android 5.0 ou acima;
  • Dispositivos com o Google Play Store instalado.

Recomendações de uso pelo Google:

  • Somente chamar o InAppReview depois de o usuário ter usado razoavelmente o seu app;
  • Não chamar o flow excessivamente, pois API tem limitações de uso e o flow pode não aparecer se você já o solicitou várias vezes;
  • Não adicionar views sobre ou acima do card de review;
  • Não tentar remover o card programaticamente, pois o mesmo será removido automaticamente pelo mecanismo da Google Play Store.

Como implementar:

Como a API de review faz parte da Play Core library, temos que adicioná-la ao build.gradle do app:

implementation 'com.google.android.play:core:1.8.0'
implementation 'com.google.android.play:core-ktx:1.8.1'

Em seguida vamos seguir estritamente baseado na documentação oficial:

Precisamos criar uma instância de ReviewManager API, que é obtida através de ReviewManagerFactory:

Quando chegar o momento certo de mostrar o card de review devemos usar o reviewManager criado acima para solicitar o flow e executá-lo para que o usuário possa deixar seu review.

Passo a passo:

  • Solicitar o review flow: reviewManager.requestReviewFlow()
  • Como requestReviewFlow é uma chamada assíncrona, só podemos seguir em frente quando ela terminar e para isso precisamos do callback addOnCompleteListener
  • Dentro do listener precisamos verificar se o result teve sucesso na execução para de fato chamar o flow (no caso de não termos sucesso podemos executar o jeito antigo).
  • Para mostrarmos o flow de review precisamos pegar o valor de result.result que é do tipo ReviewInfo, que é o segundo parâmetro necessário para chamar o flow, juntamente com o this(context): reviewManager.launchReviewFlow(this, reviewInfo)
  • Em caso de querermos fazer alguma ação depois do flow finalizar podemos utilizar o seguinte listener: flow.addOnCompleteListener

Como podemos rodar esse flow e verificar se está tudo funcionando?

Passo a passo para testar:

  • Criar uma release(apk);
  • Publicar a release no canal de teste interno no Google Play Console;
  • Adicionar o seu email como testador;
  • Acessar o link que será gerado no teste interno para entrar no programa de testes do aplicativo;
  • Assim que for publicado, você entra na loja e baixa a nova versão de teste que só aparecera para quem foi convidado, nesse caso você;
  • Por último, apague o seu review da loja caso você já tenha feito, para que o flow seja executado.
https://developer.android.com/guide/playcore/in-app-review

Nos último 2 testes que fiz o aplicativo em teste interno é publicada na mesma hora que você submete a versão

Ficou com alguma dúvida?

Manda um e-mail que terei o prazer de responder.

iagofucolo@gmail.com

follow me twitter, linkedin.

--

--

Iago Mendes Fucolo
Android Dev BR

Android Engineer @NewMotion, Writer, Ex almost footballer, and Brazilian.