El desafío multiplataforma
La mayoría de las apps móviles se publica tanto en iOS como en Android, pero cada plataforma maneja las compras dentro de la app de forma distinta. Apple usa StoreKit y App Store Server Notifications. Google usa Billing Library y Real-Time Developer Notifications. Validar las compras y mantener la atribución de afiliados en ambas plataformas requiere un enfoque unificado.
Por qué importa la validación multiplataforma
Sin una validación de compras unificada, te enfrentas a varios problemas:
- Las conversiones de afiliados en una plataforma pueden perderse o contarse mal
- Los cálculos de comisiones pueden diferir entre plataformas
- Tus reportes muestran datos fragmentados que son difíciles de analizar
- Los usuarios que cambian de dispositivo entre hacer clic en un enlace de afiliado y hacer una compra pueden perder su atribución
Una capa de validación unificada resuelve estos problemas al ofrecer una única fuente de verdad para todas las compras, sin importar la plataforma.
El enfoque de gestión de suscripciones
La forma más sencilla de manejar la validación multiplataforma es mediante un servicio de gestión de suscripciones como RevenueCat o Adapty. Estos servicios:
- Ofrecen un único SDK que funciona tanto en iOS como en Android
- Validan los recibos con los servidores de Apple y de Google
- Normalizan los eventos de compra en un formato unificado
- Envían eventos de webhook para todos los cambios del ciclo de vida de la suscripción
Insert Affiliate recibe estos eventos de webhook normalizados y los asocia con las atribuciones de afiliados, sin importar qué plataforma procesó el pago.
Con esta arquitectura escribes el código de manejo de compras una sola vez (a través del SDK de gestión de suscripciones) y el seguimiento de afiliados funciona automáticamente en ambas plataformas.
El enfoque de integración directa con las tiendas
Si prefieres no usar un servicio de gestión de suscripciones de terceros, Insert Affiliate también se integra directamente con App Store Server Notifications (V2) y con Google Play Real-Time Developer Notifications.
Para iOS: configura App Store Server Notifications para que envíe eventos al endpoint de Insert Affiliate. Las notificaciones incluyen datos de la transacción en JWT firmados que Insert Affiliate verifica y procesa.
Para Android: configura Google Cloud Pub/Sub para que reenvíe las Real-Time Developer Notifications a Insert Affiliate. Las notificaciones contienen los cambios de estado de suscripciones y compras.
Con la integración directa, tu app maneja el procesamiento de compras de forma nativa en cada plataforma, mientras que Insert Affiliate se encarga de la capa de atribución de afiliados.
Cómo mantener la atribución entre plataformas
El desafío crítico es conectar el clic en el enlace de afiliado con la compra final cuando estos eventos ocurren en plataformas distintas:
Escenario 1 (mismo dispositivo): el usuario hace clic en un enlace de afiliado en su iPhone, instala desde App Store y compra. Este es el flujo estándar y la atribución funciona mediante el deep linking y el SDK de Insert Affiliate.
Escenario 2 (de la web a la app): el usuario hace clic en un enlace de afiliado en un navegador de escritorio y más tarde instala en su teléfono. El deferred deep linking de Insert Affiliate lo resuelve guardando la atribución en el servidor y asociándola cuando el usuario crea una cuenta.
Escenario 3 (entre dispositivos): el usuario hace clic en un enlace de afiliado en un dispositivo y compra en otro. La atribución a nivel de cuenta lo resuelve: cuando el usuario inicia sesión en el dispositivo donde compra, la atribución guardada conecta la compra con el afiliado original.
Cómo manejar los tipos de compra
Los distintos tipos de compra requieren distintos enfoques de validación:
Suscripciones con renovación automática: ambas plataformas envían notificaciones de servidor para compras iniciales, renovaciones, cancelaciones y reintentos de cobro. Son las más fáciles de rastrear porque la plataforma te notifica cada cambio de estado.
Compras consumibles: ninguna de las dos plataformas envía notificaciones de servidor para los consumibles. Tu app debe validar el recibo en el momento de la compra y reportar el evento a Insert Affiliate mediante el SDK.
Compras no consumibles: similar a los consumibles. Valida en el momento de la compra y reporta mediante el SDK.
Pruebas multiplataforma
Prueba el flujo completo en ambas plataformas de forma independiente:
- Haz clic en un enlace de afiliado de prueba en cada plataforma
- Completa compras de sandbox en cada plataforma
- Verifica que la atribución aparezca correctamente en el panel de Insert Affiliate
- Confirma que los eventos de webhook de ambas plataformas se reciban y procesen
- Valida que los cálculos de comisiones sean consistentes entre plataformas
Existen entornos de sandbox tanto para Apple (sandbox de App Store) como para Google (pistas de prueba en Google Play Console). Úsalos a fondo antes de salir a producción.
Buenas prácticas
Usa un servicio de gestión de suscripciones a menos que tengas una razón específica para no hacerlo. El costo de ingeniería de mantener integraciones directas con las API de Apple y de Google es significativo y continuo, porque ambas plataformas actualizan sus sistemas.
Sea cual sea el enfoque que elijas, asegúrate de que todos los eventos de compra pasen por un único sistema de atribución (Insert Affiliate) para que tus reportes estén unificados y sean precisos en todas las plataformas.
