Um método para desbloquear benefícios e produtos no aplicativo para seus usuários é criar produtos concedidos como prêmio ou itens que os usuários possam receber depois de assistir um anúncio em vídeo. Ao conceder produtos como prêmio, você permite que os usuários consigam recompensas e benefícios dentro do app sem precisar fazer compras diretas.
Este documento explica como implementar uma funcionalidade específica para produtos concedidos como prêmio. A seção do diagrama de fluxo de trabalho desta página ilustra o processo.
Identificar os produtos concedidos como prêmio do seu app
Produtos concedidos como prêmio têm um
SkuType
de
INAPP
.
Para garantir que os usuários possam assistir a muitos anúncios e receber várias recompensas por isso, os
produtos precisam ser consumidos.
Antes de oferecer um produto concedido como prêmio a um usuário, você precisa do
SkuDetails
do
produto. Para fazer isso, chame querySkuDetailsAsync()
com SkuType.INAPP
como o tipo de produto.
Declarar anúncios adequados à idade
Para ajudar a facilitar o cumprimento das obrigações legais relacionadas a crianças e para menores de idade, incluindo a Lei de Proteção da Privacidade On-line das Crianças (COPPA, na sigla em inglês) (COPPA) (link em inglês) e o Regulamento geral de proteção de dados (GDPR), o app precisa declarar quais anúncios devem ser tratados como direcionados a crianças nos Estados Unidos. e quais anúncios são direcionados a usuários que estão abaixo da idade de consentimento aplicável em país. A Central de Ajuda da AdMob explica quando é preciso marcar as solicitações de anúncios como tratamento para direcionamento a crianças e quando é preciso marcar como tratamento para usuários abaixo da idade de consentimento, além das consequências de fazer isso.
Ao criar o cliente de faturamento do seu app, considere se as solicitações de anúncio
premiado precisam ser tratadas como direcionadas a crianças ou se precisam ser direcionadas
a usuários abaixo da idade de consentimento. Se as solicitações de anúncios tiverem essas restrições, chame os métodos setChildDirected()
e setUnderAgeOfConsent()
, passando os valores apropriados para cada método.
O snippet de código a seguir mostra como declarar que os anúncios em vídeo precisam ser adequados para crianças ou para usuários abaixo da idade de consentimento:
Kotlin
val billingClient = BillingClient.newBuilder(context) .setListener(this) .setChildDirected(ChildDirected.CHILD_DIRECTED) .setUnderAgeOfConsent(UnderAgeOfConsent.UNDER_AGE_OF_CONSENT) .build()
Java
BillingClient billingClient = BillingClient.newBuilder(context) .setListener(this) .setChildDirected(ChildDirected.CHILD_DIRECTED) .setUnderAgeOfConsent(UnderAgeOfConsent.UNDER_AGE_OF_CONSENT) .build();
Carregar anúncios em vídeo
Antes de mostrar ao usuário uma opção de assistir um anúncio em vídeo para receber um
produto concedido como prêmio, você precisa carregar o vídeo. Para isso, crie um objeto RewardLoadParams
, associando-o com o objeto SkuDetails
que representa o produto concedido como prêmio. Em seguida, chame o método loadRewardedSku()
do cliente de faturamento, passando pelo objeto RewardLoadParams
e um objeto RewardResponseListener
.
O listener RewardResponseListener
é notificado quando o vídeo termina de ser carregado. O listener também é notificado quando o vídeo não está disponível ou quando ocorre outro erro, como um tempo limite do servidor.
Para manter o desempenho do dispositivo enquanto carrega os vídeos associados aos produtos concedidos como prêmio do seu app, siga as práticas recomendadas a seguir:
- Carregue no máximo três SKUs de produtos concedidos como prêmio por vez.
- Tente carregar os vídeos sempre que o usuário entrar no app. Esta etapa ajuda a verificar se os vídeos ainda estão carregados e disponíveis.
Ao decidir quando carregar os vídeos, escolha o equilíbrio entre uso de banda larga e capacidade de resposta do app que funcione melhor no seu caso de uso:
- Na primeira oportunidade, carregue os vídeos depois de chamar
getSkuDetails()
para o produto concedido como prêmio associado. Seu app permanece muito responsivo, mas você pode desperdiçar dados de rede carregando um vídeo que o usuário nunca verá. - Por fim, carregue o vídeo quando o usuário navegar até a página onde o vídeo será exibido. Seu app raramente desperdiça largura de banda nesse caso, mas o usuário pode ter que esperar um pouco até que o botão para assistir ao vídeo se torne clicável.
- Na primeira oportunidade, carregue os vídeos depois de chamar
O snippet de código a seguir demonstra o processo de carregamento de um anúncio em vídeo exibido antes de o usuário receber o produto concedido como prêmio:
Kotlin
if (skuDetails.isRewarded()) { val params = RewardLoadParams.Builder() .setSkuDetails(skuDetails) .build() mBillingClient.loadRewardedSku(params.build(), object : RewardResponseListener { override fun onRewardResponse(@BillingResponse responseCode : Int) { if (responseCode == BillingResponse.OK) { // Enable the reward product, or make // any necessary updates to the UI. } } }) }
Java
if (skuDetails.isRewarded()) { RewardLoadParams.Builder params = RewardLoadParams.newBuilder(); params.setSkuDetails(skuDetails); mBillingClient.loadRewardedSku(params.build(), new RewardResponseListener() { @Override public void onRewardResponse(int responseCode) { if (responseCode == BillingResponse.OK) { // Enable the reward product, or make // any necessary updates to the UI. } } }); }
Dar compras como prêmio ao usuário
Se a Biblioteca Play Faturamento carregar o vídeo associado ao
produto concedido como prêmio, ou seja, se o RewardResponseListener
receber um
responseCode
de
BillingResponse.OK
, você
vai poder lançar o fluxo de faturamento.
A reprodução de anúncios para um produto concedido como prêmio é iniciada chamando
launchBillingFlow()
,
assim como para todos os outros tipos de produto no
aplicativo. Mesmo que o usuário não faça uma compra direta para receber um produto concedido como prêmio, você ainda precisa ativar o fluxo de faturamento para que ele possa receber e usar o produto.
Consumir a compra
Para notificar o cliente de faturamento de que um usuário recebeu e consumiu um produto
concedido como prêmio, processe a
compra no
método onPurchasesUpdated()
do listener
do seu cliente de faturamento. Compras concedidas como prêmio precisam ser consumidas.
Testar seus produtos concedidos como prêmio
Para testar como seu app carrega anúncios em vídeo e oferece produtos concedidos como prêmio aos usuários, use os testadores licenciados, que, por padrão, recebem anúncios de teste em vez de anúncios reais. Para aprender a configurar contas para esses testadores, consulte Testar um app do Google Play Faturamento com o usuário.
Você também pode usar o ID do produto android.test.reward
como outro método de teste. Esse produto específico é um nome reservado no Google Play Faturamento. Sendo assim, você não precisa adicioná-lo à sua lista de produtos no aplicativo no Play Console.
Cuidado: ao testar os produtos concedidos como prêmio do seu app, não use produtos reais. Caso contrário, sua conta pode ser marcada como fraudulenta ou spam.
Quando terminar os testes, no entanto, substitua android.test.reward
pelos IDs dos produtos concedidos como prêmio antes de implantar o app de produção para os usuários finais.
Diagrama do fluxo de trabalho de produto concedido como prêmio
O diagrama de sequência a seguir mostra como o usuário, seu app e a Biblioteca Google Play Faturamento trabalham juntos para mostrar um anúncio em vídeo e garantir acesso a um produto concedido como prêmio: