Blog
Tutorial
17 de março de 20268 min

Como construí um sistema completo de indicação em React Native em um dia

Ontem, passei 8 horas codificando algo que não tem nada a ver com o produto em si. Nenhuma nova funcionalidade. Nenhuma correção de bug. Nenhuma otimização. Um sistema de indicação.

Estou desenvolvendo o TAMSIV, um gerenciador de tarefas por voz para Android. Desenvolvedor solo, mais de 660 commits, 6 meses de trabalho. Tenho 12 testadores alfa na Play Store e preciso que esse número cresça — organicamente.

O conceito

Simples: cada usuário tem um código de indicação único. Você o compartilha. Quando alguém se cadastra com ele, ambos ganham 1 mês Pro grátis. E é cumulativo — 10 indicações = 10 meses grátis, enfileirados um após o outro.

As 3 fontes de captura

A parte mais difícil não é gerar os códigos. É capturá-los de forma confiável.

1. Deep links via site

Quando alguém visita tamsiv.com/invite/CODE, o Next.js redireciona para a Play Store com o código de indicação integrado.

2. Android App Links (abertura direta)

Se o aplicativo já estiver instalado, tamsiv://invite/CODE o abre diretamente. Isso requer a configuração do AndroidManifest.xml com os intent-filters apropriados e um arquivo assetlinks.json no site para verificação.

3. Play Store Install Referrer

Esta é a fonte mais subestimada. Quando alguém clica em um link da Play Store com um parâmetro &referrer=CODE, o Android armazena essa string. Mesmo que a pessoa instale o aplicativo 3 dias depois, ainda podemos ler o código.

Recompensas empilhadas

A maioria dos sistemas de indicação oferece uma recompensa única. Eu queria que as recompensas se acumulassem. Cada indicação adiciona 30 dias de Pro, enfileirados após a expiração do anterior.

Notificações push em 6 idiomas

Quando alguém usa seu código, você recebe uma notificação push. No seu idioma. Como o TAMSIV fala 6 idiomas, o backend verifica a preferência de idioma do indicador antes de enviar via FCM.

Em números

  • 22 arquivos modificados (backend, frontend, site, manifesto Android)
  • 1.324 linhas adicionadas
  • 1 dia de trabalho focado
  • 6 idiomas suportados
  • 3 fontes de captura para cobertura máxima

O que aprendi

A verificação do Android App Links é frágil. O arquivo assetlinks.json deve ser servido exatamente no local certo com o SHA256 exato da sua chave de assinatura.

O Play Store Install Referrer é subestimado. A maioria dos tutoriais o ignora, mas é a única maneira de capturar indicações por meio de instalações atrasadas.

O empilhamento de recompensas adiciona complexidade. Um simples "dê 1 mês grátis" é fácil. Enfileirar várias recompensas exige o gerenciamento de datas de início, fim e a relação com o RevenueCat.