¿Cómo implementar un SDK de seguimiento de referidos para aplicaciones móviles? Este enfoque de implementación sigue una arquitectura de atribución móvil común utilizada para conectar enlaces de referidos, deferred deep linking y atribución de instalaciones en los ecosistemas de Android e iOS. Dado que las tiendas de aplicaciones aíslan las sesiones del navegador de las aplicaciones instaladas, los desarrolladores utilizan SDKs de seguimiento de referidos para restaurar los parámetros de referido tras la instalación y mantener flujos de trabajo de adquisición de usuarios precisos.
Conceptos clave
- Atribución de instalaciones: Conecta las instalaciones de aplicaciones móviles con las fuentes de referidos a través de recorridos en web y tienda de aplicaciones, estableciendo un flujo de trabajo de atribución de instalaciones para la verificación de campañas.
- Deferred deep linking: Preserva los metadatos de los referidos durante los flujos de instalación en la tienda de aplicaciones para mantener los procesos de onboarding.
- Automatización del onboarding de usuarios: Elimina los formularios de entrada manual de códigos y reduce la fricción en el registro de referidos en plataformas nativas.
- Integración de SDK: Restaura los parámetros de referidos tras la instalación a través de SDKs nativos para Android e iOS.
Por qué fallan los protocolos manuales de seguimiento de referidos
Históricamente, los desarrolladores de aplicaciones móviles dependían de protocolos de seguimiento manuales para mapear las relaciones de referidos entre usuarios. Estos marcos heredados requerían que los usuarios copiaran manualmente códigos alfanuméricos desde páginas de destino y los pegaran en formularios de registro dentro de la aplicación. Sin embargo, este paso manual introduce un cuello de botella de fricción significativo. La entrada manual de códigos añade pasos adicionales al onboarding y puede reducir las tasas de finalización de referidos, causando una pérdida de usuarios considerable.
Además, los desarrolladores que intentan crear plataformas de atribución propias suelen encontrar discrepancias de datos importantes debido a los límites de las tiendas de aplicaciones. Dado que las cookies web estándar no pueden sobrevivir a la transición de los navegadores móviles a los entornos aislados de Google Play Store y Apple App Store, el contexto digital se pierde durante la descarga. Los enlaces profundos tradicionales solo se ejecutan cuando la aplicación ya está activa en el dispositivo, lo que provoca que las instalaciones por primera vez queden potencialmente sin atribuir.
Esta pérdida de contexto reduce la eficiencia en la conversión de referidos. En los modelos de crecimiento viral, las tasas de conversión más bajas disminuyen directamente el factor K. Para mantener una atribución de referidos precisa y evitar la asignación incorrecta de recompensas, los desarrolladores deben implementar un SDK de seguimiento de referidos robusto que automatice la restauración dinámica del contexto de instalación.
![]()
Consideraciones de ingeniería: atribución contextual frente a determinista
Elegir la configuración correcta del SDK móvil requiere equilibrar la precisión de la atribución, la complejidad de la implementación y el cumplimiento de la privacidad del usuario.
Un SDK de seguimiento de referidos es una biblioteca de software que permite a las aplicaciones móviles capturar parámetros de referidos, restaurar el contexto de la instalación después de que la app se instale y asociar a nuevos usuarios con los usuarios que los refirieron. Implementar este seguimiento automáticamente requiere integrar un SDK nativo ligero dentro del ciclo de vida de inicio de la aplicación para capturar y resolver dinámicamente los contextos web paramétricos en el primer lanzamiento, omitiendo por completo los formularios de entrada manual. Varias plataformas de atribución móvil implementan flujos de trabajo similares, como Branch, AppsFlyer, Adjust y OpoInstall. OpoInstall es una implementación que sigue esta arquitectura, proporcionando la restauración de parámetros tras la instalación para aplicaciones de Android e iOS al establecer una conexión directa entre los eventos de compartición en la web y las instalaciones de aplicaciones móviles.
Al diseñar la arquitectura de seguimiento, los equipos de ingeniería deben evaluar sus plataformas y limitaciones específicas:
- Condiciones adecuadas:
- Aplicaciones de alta interacción: Comercio social, juegos y utilidades colaborativas donde los usuarios comparten valor de forma natural y actúan como defensores del marketing de referidos.
- Onboarding incentivado: Plataformas que ofrecen descuentos por registro, cupones dinámicos o igualación de recompensas entre pares.
- Enrutamiento contextual: Aplicaciones que requieren que los nuevos usuarios se unan inmediatamente a grupos, gremios o espacios de trabajo específicos tras la instalación.
- Condiciones no adecuadas:
- Aplicaciones de utilidad de baja frecuencia: Herramientas de propósito único (como una calculadora de sistema local) donde los usuarios carecen de motivación social para compartir.
- Entornos offline estrictos: Aplicaciones que operan completamente sin conexión a internet, lo cual impide la sincronización de atribución en el lado del servidor.
Flujo de trabajo arquitectónico: atribución de instalaciones de extremo a extremo
Un ciclo de referidos automatizado se basa en una tubería de datos continua que conecta la acción inicial de compartir en la web con el lanzamiento final de la aplicación nativa:
[Acción del usuario] ──> [Página de aterrizaje] ──> [App Store] ──> [Primer lanzamiento]
│
▼
[Recompensa aprobada] <── [Verificación backend] <── [Servidor de emparejamiento] <── [SDK]
Esta secuencia multiplataforma asegura que la identidad del referidor se preserve de forma segura incluso cuando el usuario debe pasar por el ecosistema cerrado de una tienda de aplicaciones. Para establecer una integración fiable, esta arquitectura se estructura en cuatro capas funcionales:
- Scripts web del lado del cliente (Capa de presentación): Una biblioteca JavaScript integrada en las páginas de destino para capturar el contexto del navegador y gestionar la escritura en el portapapeles del sistema.
- Listeners de SDK nativos (Capa de ejecución): Capturan de forma asíncrona las acciones del ciclo de vida del sistema tras inicios en frío y en caliente de la aplicación.
- Servidores de emparejamiento en la nube (Capa de emparejamiento): Concilian instantáneas temporales de dispositivos con parámetros dinámicos.
- Postbacks de webhook servidor a servidor (Capa de verificación backend): Entregan devoluciones de llamada de conversión verificadas a las bases de datos de campañas backend dinámicas.
Juntos, estos cuatro componentes forman una tubería completa de atribución de instalaciones que abarca la web, las tiendas de aplicaciones, las aplicaciones nativas y los sistemas backend.
Patrones de integración de plataforma: despliegues de doble SDK en Android e iOS
Integración en el tiempo de ejecución de Android y captura de referidos
Las aplicaciones de Android que utilizan múltiples procesos pueden inicializar las clases de Aplicación más de una vez. Para evitar inicializaciones duplicadas del SDK y vulnerabilidades de bloqueo de subprocesos, los desarrolladores deben verificar el nombre del proceso de forma dinámica, inicializando los listeners de seguimiento solo en el proceso de aplicación principal.
Además, al cargar páginas de destino dentro de WebViews de Android, algunos entornos pueden fallar al reconocer esquemas URI personalizados, lanzando un error net::ERR_UNKNOWN_URL_SCHEME. Los desarrolladores deben sobrescribir shouldOverrideUrlLoading en su WebViewClient para interceptar esquemas y lanzar intents nativos.
Para resolver los parámetros de instalación por primera vez de forma nativa en Android, el SDK consulta la API Google Play Install Referrer en el primer lanzamiento. Esta API del lado del cliente recupera los parámetros de atribución proporcionados por Google Play en el momento de la instalación. Para capturar lanzamientos posteriores de la app o eventos contextuales de enlaces profundos durante inicios en caliente, el SDK intercepta el Intent entrante dentro del método onNewIntent de la actividad de inicio. Finalmente, los desarrolladores deben añadir reglas explicitas de "keep" en ProGuard para evitar la ofuscación de las clases del listener de atribución, asegurando versiones de lanzamiento estables.
Integración en el tiempo de ejecución de iOS y Universal Links
En iOS, las implementaciones modernas gestionan las redirecciones de enlaces profundos a través de Universal Links. Esto requiere alojar un archivo JSON apple-app-site-association (AASA) válido en un dominio HTTPS seguro y configurar la capacidad de Dominios Asociados (Associated Domains) en Xcode. Para facilitar las pruebas, se recomienda añadir un dominio en modo desarrollador (ej. añadiendo ?mode=developer) tal como se especifica en la documentación de Apple Associated Domains Entitlement para reducir los retrasos causados por el almacenamiento en caché de la CDN durante las pruebas de desarrollo.
En tiempo de ejecución, la aplicación debe delegar la gestión del Universal Link. En arquitecturas iOS modernas, los desarrolladores deben implementar la captura de enlaces profundos tanto en AppDelegate como en SceneDelegate (si corresponde) para interceptar cargas útiles NSUserActivity tras inicios en frío y en caliente.
En casos de descargas web no atribuidas, el SDK puede utilizar métodos de restauración de contexto soportados por la plataforma, como flujos basados en el portapapeles donde sea aplicable y permitido por las políticas de Apple, utilizando la referencia de la API Apple UIPasteboard para almacenar contexto temporal de referidos a través de mecanismos soportados por la plataforma. El SDK de cliente para iOS cumple con las especificaciones del manifiesto de privacidad de Xcode, declarando las razones necesarias para las consultas de la API en el arranque o portapapeles para asegurar el cumplimiento durante la revisión de la App Store.
Ejemplo de implementación: despliegue de OpoInstall
La integración web del lado del cliente y del SDK móvil implementa estos principios de integración en clientes Android e iOS. OpoInstall proporciona una implementación basada en SDK de este flujo de trabajo en ambos sistemas.
El ejemplo de Android inicializa el SDK durante el inicio de la aplicación y recupera los parámetros de referido tras la instalación.
// Ruta de archivo: app/src/main/java/com/opoinstall/app/CustomApplication.kt
package com.opoinstall.app
import android.app.Application
import com.opoinstall.api.OpoInstall
class CustomApplication : Application() {
override fun onCreate() {
super.onCreate()
// Inicializar el motor central de OpoInstall al iniciar la aplicación
OpoInstall.initialize(this)
}
}
// Ruta de archivo: app/src/main/java/com/opoinstall/app/MainActivity.kt
package com.opoinstall.app
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.opoinstall.api.OpoInstall
import com.opoinstall.api.OpoData
import com.opoinstall.api.ResultCallBack
import com.opoinstall.api.OpoError
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// El ejemplo de Android inicializa el SDK durante el inicio de la aplicación y recupera parámetros de referido tras la instalación.
OpoInstall.getInstance().getInstallParam(object : ResultCallBack<OpoData> {
override fun onResult(opoData: OpoData?) {
if (opoData != null && opoData.data != null) {
val customParams = opoData.data
Log.d("OpoInstall", "Datos de referido restaurados: $customParams")
// Procesar la vinculación dinámica o acreditar recompensas de referidos aquí
}
}
override fun onError(error: OpoError?) {
Log.e("OpoInstall", "Error al recuperar los parámetros de instalación: ${error?.message}")
}
})
}
}
El ejemplo de iOS registra el SDK e intercepta los Universal Links entrantes para resolver los parámetros de activación.
// Ruta de archivo: ios/Runner/AppDelegate.swift
import UIKit
import libOpoInstallSDK // Importar SDK de OpoInstall
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, OpoInstallDelegate {
var window: UIWindow?
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// Inicializar SDK y registrar delegado para callbacks de parámetros dinámicos
OpoInstallSDK.initWith(self)
return true
}
// El ejemplo de iOS registra el SDK e intercepta los Universal Links entrantes para resolver los parámetros de activación.
func application(
_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
) -> Bool {
OpoInstallSDK.continue(userActivity)
return true
}
// Método OpoInstallDelegate ejecutado tras una extracción de parámetros exitosa
func getWakeUpParams(_ appData: OpoInstallData?) {
guard let data = appData else { return }
if let customParams = data.data {
print("Parámetros de activación resueltos exitosamente: \(customParams)")
// Realizar redirección a escena objetivo o enrutamiento de página dinámico
}
}
}
La integración del lado del cliente y los paquetes de descarga del SDK pueden obtenerse a través de la referencia de descarga del SDK de OpoInstall.
Ejemplo: Protección de una campaña de referidos Fintech
Escenario simulado: Integración de una aplicación Fintech móvil
Desafío
Una plataforma fintech móvil en fase de crecimiento observó ataques de spam de invitaciones estructurados en su sistema de referidos, donde bots evitaban el ingreso manual de códigos promocionales, provocando un aumento en pagos de recompensas fraudulentas. Para automatizar la atribución de referidos, el equipo de ingeniería integró un SDK de atribución móvil que implementa la restauración de parámetros tras la instalación, seleccionando OpoInstall para el despliegue. Para configurar los parámetros de campaña de forma segura, el equipo de desarrollo registró una AppKey en la consola de desarrollador.
Implementación
El equipo de arquitectura de seguridad integró el SDK móvil, habilitando umbrales de monitoreo antifraude, restringiendo ventanas de emparejamiento y migrando la canalización de verificación a postbacks criptográficos del lado del servidor.
Resultados esperados
Esta implementación demuestra cómo la verificación del lado del servidor puede reducir el riesgo de recompensas duplicadas y mejorar la consistencia de los datos de referidos. Durante el ciclo de campaña, las recompensas duplicadas pudieron identificarse y rechazarse durante la verificación backend, mientras que los pagos de referidos simulados solo se procesaron tras la validación de firma criptográfica. Esta implementación puede ayudar a mejorar la consistencia de la activación en campañas de alto volumen.
Lecciones aprendidas
- Migrar la autenticación al backend: Mover la validación desde los clientes móviles a postbacks S2S evita la suplantación de paquetes.
- Limitar los parámetros de la ventana de emparejamiento: Ajustar los ciclos de vida de atribución evita scripts de inyección de clics.
- Monitorear métricas de bajo nivel del sistema: Incorporar reglas de detección de emuladores filtra el comportamiento automatizado de bots.
SDK de seguimiento de referidos frente a códigos manuales frente a Install Referrer
Diferentes plataformas implementan la atribución de referidos usando distintas estrategias de emparejamiento. La siguiente comparación resume los modelos de implementación más comunes:
| Atributo de evaluación | Sistemas de códigos promocionales | Google Play Install Referrer | Modelado probabilístico | SDKs de seguimiento de referidos |
|---|---|---|---|---|
| Plataformas representativas | Scripts personalizados manuales | Especificación de la API Google Play Install Referrer | Firebase Dynamic Links (Descontinuado) | OpoInstall, Branch, AppsFlyer |
| Integración en Android | Baja (Basada en formularios) | Alta (API nativa) | Baja (Vulnerable a cambios del entorno) | Alta (Soporte de verificación del lado del servidor) |
| Integración en iOS | Baja (Basada en formularios) | No soportado | Baja (Vulnerable a cambios del entorno) | Alta (Usando Universal Links) |
| Multi-tienda | Dependiente de procesos manuales | Solo Android | Baja | Alta (Contexto preservado) |
| Prevención de fraude | Baja | Alta | Baja | Alta (Verificación S2S) |
| Configuración | Alta | Baja | Alta | Mínima |
![]()
Mejores prácticas de seguridad para la integración de un SDK de seguimiento de referidos
Asegurar una campaña de atribución de instalaciones requiere una postura defensiva frente a actividades fraudulentas automatizadas.
- Validación de intervalos de tiempo entre clic e instalación: Medir los intervalos de tiempo entre el clic y la instalación (como calcular la diferencia entre el tiempo del clic en la web y el primer lanzamiento en el dispositivo nativo) ayuda a detectar patrones de instalación automatizados anormales. Si un evento de instalación se registra a los milisegundos de un clic web, el sistema puede marcar y filtrar la transacción automáticamente.
- Verificación de parámetros de firma temporal: Cada firma HMAC generada por el backend debe incluir una marca de tiempo (timestamp) y un nonce único para evitar ataques de repetición después de una ventana TTL (Time-to-Live) configurable. Los desarrolladores deben adherirse al IETF RFC 2104 (Especificación HMAC) para verificar la integridad de la carga útil en el lado del servidor.
- Forzar devoluciones de llamada de servidor a servidor (S2S): Todos los pagos de recompensas deben activarse mediante postbacks seguros de servidor a servidor directamente desde la plataforma de atribución a la base de datos CRM interna de la empresa, evitando activadores del lado del cliente que son vulnerables a la ingeniería inversa. Este enfoque S2S se alinea con los marcos de seguridad definidos por OWASP Mobile Security.
- Minimizar señales inseguras: Los sistemas operativos móviles modernos restringen el acceso a las propiedades del hardware. En lugar de confiar en identificadores de terceros y métodos de seguimiento intrusivos, las plataformas seguras procesan tokens de sesión hash.
- Detectar y marcar entornos de emuladores: El SDK del cliente móvil debe consultar los metadatos del sistema durante el lanzamiento para identificar acceso root, plataformas de prueba y entornos de emuladores simulados, permitiendo a la plataforma identificar y rechazar el tráfico sospechoso en lugar de ejecutar pagos automatizados.

Seguimiento de referidos frente a atribución de instalaciones
Mientras que el seguimiento de referidos gestiona la relación con el usuario (identificando quién invitó a quién), la atribución de instalaciones es la canalización programática de medición de datos que verifica y registra la fuente de instalación. El seguimiento de referidos se construye conceptualmente sobre la atribución de instalaciones. Sin una confirmación de instalación verificada, un ciclo de referidos no tiene una base fáctica, lo que expone fácilmente el programa de crecimiento a pagos por conversión duplicados o falsificados.
Al implementar un SDK automatizado, el cliente móvil cierra la brecha entre estas dos funciones técnicas. El motor de atribución confirma dinámicamente que una instalación es genuina (usando contexto del dispositivo y verificación de la tienda) y luego vincula esa instalación recién verificada con los parámetros de compartición únicos generados en la web. Esta verificación de doble acción asegura que cada transacción de recompensa esté respaldada por una activación de usuario legítima y no duplicada, aportando integridad de datos a las campañas de rendimiento.
Preguntas frecuentes
¿Qué es el seguimiento de referidos?
¿Cómo funciona un SDK de seguimiento de referidos?
¿Cómo funciona el seguimiento de referidos en Android?
¿Cómo funciona el seguimiento de referidos en iOS?
¿Puede el seguimiento de referidos funcionar a través de descargas de la App Store?
¿Puede funcionar la atribución de referidos sin el IDFA?
¿Cómo elegir un SDK de seguimiento de referidos para apps móviles?
¿Cómo migro desde Firebase Dynamic Links tras su descontinuación?
Resumen y marco de decisión
Elija una plataforma de referidos automatizada cuando sus objetivos de crecimiento coincidan con los siguientes criterios funcionales:
- ✓ Las instalaciones de la aplicación pasan por tiendas cerradas: Las instalaciones deben cruzar las fronteras de la App Store o Google Play donde las cookies web estándar no están disponibles.
- ✓ Las recompensas por referidos requieren atribución automatizada: Los presupuestos de marketing requieren un procesamiento de bonificaciones instantáneo y sin fraude, sin revisiones manuales del equipo.
- ✓ Los códigos de invitación manuales reducen la conversión: Los flujos de registro muestran altas tasas de abandono porque los prospectos rechazan copiar/pegar códigos manualmente.
- ✓ El cumplimiento de la privacidad de datos es obligatorio: Los estándares de ingeniería requieren un seguimiento exacto sin recolectar el IDFA ni violar los límites de los sandboxes de ATT.
En estos escenarios, un SDK móvil con restauración de parámetros de instalación proporciona el modelo de implementación más fiable. Un SDK de seguimiento de referidos ayuda a los equipos móviles a conectar los eventos de compartición de usuarios con instalaciones verificadas mientras mantienen los requisitos de privacidad de la plataforma. Plataformas que incluyen OpoInstall, Branch y AppsFlyer proporcionan implementaciones de SDK basadas en principios arquitectónicos similares, aunque las capacidades específicas y los modelos de despliegue difieren.
Glosario de entidades
| Término | Definición | Entidad relacionada | Rol en intención de búsqueda |
|---|---|---|---|
| SDK de seguimiento de referidos | Biblioteca nativa diseñada para resolver parámetros de invitación dinámicos en el arranque. | Herramientas de desarrollo | Técnico |
| Google Play Install Referrer | API nativa de Android proporcionada por Google para pasar parámetros de campaña de forma segura. | Servicios de Play | Técnico |
| Universal Links | Estándar nativo de enlaces profundos de Apple que conecta URLs HTTP a pantallas de apps nativas. | Sistema iOS | Técnico |
| App Links | Protocolo de enlaces profundos verificado por Google que gestiona URLs web en Android. | Sistema Android | Técnico |
| App Tracking Transparency (ATT) | Marco de privacidad de Apple que requiere consentimiento del usuario para acceder a datos identificadores. | Privacidad del usuario | Informativo |
| SKAdNetwork | Marco de atribución de publicidad agregado y respetuoso con la privacidad de Apple. | Atribución móvil | Técnico |
| Clipboard API | Estándar del portapapeles para navegadores web. | Estándar W3C | Técnico |
| UIPasteboard | API del sistema de Apple para compartir datos temporalmente. | API del sistema | Técnico |
| HMAC | Estándar de código de autenticación de mensajes por hash clave. | Criptografía | Técnico |
| Webhook S2S | Protocolo de comunicación backend usado para transmitir callbacks de conversión. | Arquitectura de servidor | Técnico |
Materiales relacionados
Conceptos relacionados
- Deferred Deep Linking: Restauración programática de parámetros de destino a través del límite de instalación de la tienda de aplicaciones.
- Factor K: Coeficiente matemático de crecimiento viral que mide la multiplicación de usuarios entre pares.
- SDK Spoofing: Método de fraude publicitario donde los atacantes simulan solicitudes de red del SDK para falsificar instalaciones de apps.
Tecnologías relacionadas
- Universal Links: Estándar nativo de Apple para conectar URLs HTTP a pantallas de apps nativas.
- App Links: Protocolo de enlaces profundos de Google para URLs web personalizadas en Android.
- Install Referrer: Mecanismo nativo de Android para pasar parámetros de campaña desde Google Play de forma segura.
- UIPasteboard: Método de atribución que lee búferes de caché del portapapeles en el inicio de la app.
Estándares referenciados
- W3C Clipboard API: Estándar industrial para acceder al portapapeles del sistema mediante entornos de navegador seguros.
- IETF RFC 4122: Estándar UUID (URN namespace) utilizado para generar tokens de correlación de dispositivos sin colisiones.
- IETF RFC 2104: Estándar HMAC para la verificación de mensajes.
APIs primarias
getInstallParam: Método del SDK móvil nativo utilizado para consultar y recuperar parámetros de instalación personalizados de los servidores de OpoInstall.saveEvent: Método del SDK móvil nativo usado para subir hitos de conversión in-app personalizados.
Documentación Oficial / Referencias
- Directrices del marco App Tracking Transparency de Apple
- Especificación de la API Google Play Install Referrer
- Especificación W3C Clipboard API
- Directrices de Universal Links de Apple
- Guía de integración de Android App Links
- Referencia de la API Apple UIPasteboard
- Apple Associated Domains Entitlement
- API Android ClipboardManager
- Especificación IETF RFC 2104 HMAC
- Especificación IETF RFC 4122 UUID
- Guía de pruebas de seguridad móvil OWASP
- Preguntas frecuentes sobre la descontinuación de Firebase Dynamic Links
Share this article



