Participe do evento ⁠#Android11: apresentação de lançamento da versão Beta no dia 3 de junho.

Implementar uma promoção

Promoções ou códigos promocionais permitem que você ofereça gratuitamente produtos ou avaliações de assinatura de aquisição única a um número limitado de usuários. O usuário insere um código promocional no seu app ou no app Google Play Store e recebe o item ou a avaliação de assinatura sem nenhum custo. Você pode usar os códigos promocionais de diversas maneiras para envolver os usuários de forma criativa, como nos exemplos a seguir:

  • Você pode distribuir cartões com códigos promocionais em um evento, e os usuários só usariam o código para desbloquear um item especial no jogo.
  • Você pode dar códigos aos funcionários para que compartilhem com amigos e familiares.
  • Você pode enviar um código promocional às pessoas que comprarem seu app em determinado período.

Para assinaturas, observe o seguinte:

  • Os códigos promocionais oferecem avaliações gratuitas de assinaturas, não assinaturas gratuitas. As assinaturas de avaliação gratuita são renovadas automaticamente como assinaturas pagas ao final da avaliação.
  • As promoções não estendem o prazo de outras avaliações gratuitas. Se uma assinatura começar com uma avaliação gratuita sem exigir um código promocional, uma promoção modificará a duração dessa avaliação original.
  • Os códigos personalizados podem ser usados apenas por novos assinantes. Os usuários que já adquiriram uma assinatura não estão qualificados para usar um código personalizado.
  • Os códigos de uso único podem ser usados por qualquer assinante. Por exemplo, os usuários que já adquiriram uma assinatura ainda estão qualificados para uma avaliação gratuita por meio de um código promocional de uso único.

Use o Google Play Console para atribuir códigos promocionais. Para criar um código promocional, consulte Criar promoções.

Resgatar um código promocional

Um usuário pode resgatar um código promocional de uma das seguintes maneiras:

  • Inserir o código manualmente no app Google Play Store.
  • Clicar na seta para baixo ao lado da forma de pagamento na tela de compra do Google Play e clicar no link Resgatar.

A Figura 1 mostra uma tela de compra com uma seta para baixo. A Figura 2 mostra o link Resgatar. A Figura 3 mostra a tela em que os usuários inserem o código promocional.

Figura 1. Caixa de diálogo de resgate de produtos do Google Play.
Figura 2. Caixa de diálogo de pagamento mostrando o botão Resgatar.
Figura 3. Tela do código promocional.

Gerar um URL promocional

Ao resgatar um código promocional, o usuário pode inserir manualmente um código na Google Play Store. Como alternativa, você pode gerar um URL que encaminha o usuário à Google Play Store e preenche automaticamente o campo Inserir código. Use o seguinte formato para um URL de código promocional:

    https://play.google.com/redeem?code=promo_code
    

A Figura 4 mostra a caixa de diálogo "Resgatar código" do app Google Play:

Figura 4. Caixa de diálogo Resgatar código do app Google Play.

Depois que o usuário pressionar Resgatar, se a versão mais recente do app estiver instalada, a Google Play Store solicitará que ele abra o app. Caso contrário, a Google Play Store solicitará que o usuário atualize o app ou faça o download dele.

Oferecer suporte a códigos promocionais no app

Também é necessário fazer mudanças no seu app para que ele identifique e processe códigos promocionais. Sempre que for iniciado ou retomado, o app precisa chamar o método queryPurchases(). Esse método retorna um conjunto de todas as compras atuais e não consumidas, inclusive aquelas que o usuário fez resgatando um código promocional. A abordagem mais simples é chamar queryPurchases() no método onResume() da sua atividade, já que esse callback é acionado quando a atividade é criada e quando ela é retomada. Chamar queryPurchases() em onStart() e onResume() garante que o app encontre todas as compras e resgates que o usuário possa ter feito enquanto o app não estava em execução. Além disso, se um usuário fizer uma compra com o app em execução e ela não for detectada por algum motivo, o app ainda encontrará essa compra na próxima vez que a atividade for retomada e chamar queryPurchases().

O método onPurchasesUpdated() da sua atividade recebe um intent de resposta que identifica quando uma compra foi concluída. No entanto, o app ainda precisa chamar queryPurchases() em onStart() e onResume() caso o fluxo de trabalho da compra e do consumo não tenha sido concluído. Por exemplo, se o usuário resgatar um código promocional e o app falhar antes do consumo do item, o app ainda receberá informações sobre a compra quando o chamar queryPurchases() na próxima inicialização.

O app também precisa conseguir lidar com uma situação em que o usuário resgata um código promocional na Google Play Store com o app em execução. O resgate pode ser informado ao app por meio do listener onPurchasesUpdated().