Como implementar InAppReview
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.
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.