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.