Blog
Tutorial
17 de marzo de 20268 min

Cómo construí un sistema completo de referidos en React Native en un día

Ayer, pasé 8 horas codificando algo que no tiene nada que ver con el producto en sí. Ni una nueva característica. Ni una corrección de errores. Ni una optimización. Un sistema de referidos.

Estoy desarrollando TAMSIV, un gestor de tareas por voz para Android. Desarrollador individual, más de 660 commits, 6 meses de trabajo. Tengo 12 testers alfa en Play Store y necesito que ese número crezca — orgánicamente.

El concepto

Sencillo: cada usuario tiene un código de referido único. Usted lo comparte. Cuando alguien se registra con él, ambos ganan 1 mes Pro gratis. Y es acumulable — 10 referidos = 10 meses gratis, puestos en cola uno tras otro.

Las 3 fuentes de captura

La parte más difícil no es generar los códigos. Es capturarlos de forma fiable.

1. Enlaces profundos a través del sitio web

Cuando alguien visita tamsiv.com/invite/CODE, Next.js redirige a Play Store con el código de referido integrado.

2. Android App Links (apertura directa)

Si la aplicación ya está instalada, tamsiv://invite/CODE la abre directamente. Esto requiere la configuración del AndroidManifest.xml con los intent-filters apropiados y un archivo assetlinks.json en el sitio para la verificación.

3. Play Store Install Referrer

Esta es la fuente más subestimada. Cuando alguien hace clic en un enlace de Play Store con un parámetro &referrer=CODE, Android almacena esta cadena. Incluso si la persona instala la aplicación 3 días después, aún podemos leer el código.

Recompensas apiladas

La mayoría de los sistemas de referidos dan una recompensa única. Yo quería que las recompensas se acumularan. Cada referido añade 30 días de Pro, puestos en cola después de la expiración del anterior.

Notificaciones push en 6 idiomas

Cuando alguien usa su código, usted recibe una notificación push. En su idioma. Debido a que TAMSIV habla 6 idiomas, el backend verifica la preferencia de idioma del referente antes de enviar a través de FCM.

En cifras

  • 22 archivos modificados (backend, frontend, sitio web, manifiesto de Android)
  • 1.324 líneas añadidas
  • 1 día de trabajo concentrado
  • 6 idiomas soportados
  • 3 fuentes de captura para una cobertura máxima

Lo que aprendí

La verificación de Android App Links es frágil. El archivo assetlinks.json debe servirse exactamente en el lugar correcto con el SHA256 exacto de su clave de firma.

El Play Store Install Referrer está subestimado. La mayoría de los tutoriales lo omiten, pero es la única forma de capturar referidos a través de instalaciones diferidas.

El apilamiento de recompensas añade complejidad. Un simple "dar 1 mes gratis" es fácil. Poner en cola varias recompensas requiere gestionar las fechas de inicio, fin y la relación con RevenueCat.