Agrega seguimiento de afiliados a tu app de iOS con Swift Package Manager
Integrar el seguimiento de afiliados en una app nativa de iOS creada con Swift toma tres pasos: agregar el InsertAffiliateSwiftSDK mediante Swift Package Manager, configurar el deep linking para capturar las referencias de afiliados y conectar una plataforma de verificación de compras para automatizar los pagos de comisiones. La mayoría de los desarrolladores completa la integración en una sola sesión.
Con el App Store generando más de $60 mil millones en gasto de consumidores en EE. UU. en 2025 según Sensor Tower, las apps de iOS basadas en suscripción tienen un incentivo financiero claro para sumarse al crecimiento impulsado por afiliados. El Insert Affiliate Swift SDK está diseñado específicamente para esto y requiere iOS 13.0+, Swift 5.0+ y Xcode 12.0+.
Paso 1: instala el SDK mediante Swift Package Manager
Abre tu proyecto de Xcode, ve a File y luego a Add Packages. En el campo de búsqueda, ingresa la URL del repositorio:
https://github.com/Insert-Affiliate/InsertAffiliateSwiftSDK.gitSelecciona la rama main y haz clic en Add Package. Xcode resolverá la dependencia y agregará InsertAffiliateSwift a tu proyecto.
Paso 2: inicializa el SDK en AppDelegate
Importa el SDK e inicialízalo en el método application(_:didFinishLaunchingWithOptions:) de tu AppDelegate. Necesitarás tu código de empresa, que está en el panel de Insert Affiliate, en Settings.
import InsertAffiliateSwift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions:
[UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
InsertAffiliateSwift.initialize(
companyCode: "YOUR_COMPANY_CODE",
verboseLogging: true,
insertLinksEnabled: true
)
return true
}
}Para apps SwiftUI que usan el protocolo App con @main en lugar de AppDelegate, puedes inicializar el SDK en el método init() de tu struct App o usar un adaptador de AppDelegate.
La opción verboseLogging: true muestra registros detallados en la consola para que confirmes que todo está bien conectado durante el desarrollo. Desactívala antes de publicar en producción.
Paso 3: configura el deep linking
El deep linking conecta la URL única de un afiliado con una sesión de usuario en tu app. Cuando un usuario toca un enlace de afiliado, el SDK captura y guarda localmente el identificador del afiliado.
La opción más sencilla es Insert Links, la solución de deep linking integrada de Insert Affiliate. Activar insertLinksEnabled: true durante la inicialización la habilita sin necesidad de ningún SDK de terceros adicional.
Si tu app ya usa Branch.io, pasa el enlace de referencia al SDK de Insert Affiliate dentro del handler de sesión de Branch:
Branch.getInstance().initSession(launchOptions: launchOptions) {
(params, error) in
if let referringLink = params?["~referring_link"] as? String {
InsertAffiliateSwift.setInsertAffiliateIdentifier(
referringLink: referringLink
)
}
}Para AppsFlyer, usa el callback del delegate de deep linking:
func didResolveDeepLink(_ result: DeepLinkResult) {
if let deepLinkValue = result.deepLink?.deeplinkValue {
InsertAffiliateSwift.setInsertAffiliateIdentifier(
referringLink: deepLinkValue
)
}
}Paso 4: conecta la verificación de compras
Insert Affiliate requiere una plataforma de verificación de compras para validar las transacciones y calcular las comisiones de afiliados. Para apps de iOS, RevenueCat es la opción recomendada por su integración sencilla basada en webhooks.
Después de inicializar RevenueCat, registra un callback para que el identificador del afiliado se sincronice con los atributos de suscriptor de RevenueCat:
InsertAffiliateSwift.onAffiliateIdentifierChanged { identifier in
Purchases.shared.attribution.setAttributes([
"insert_affiliate": identifier,
"insert_timedout": ""
])
}
InsertAffiliateSwift.returnInsertAffiliateIdentifier()Cuando un usuario que llegó por un enlace de afiliado hace una compra, RevenueCat valida el recibo del App Store y envía un webhook a Insert Affiliate. La comisión del afiliado se calcula y se registra en tu panel de Insert Affiliate, lista para un pago con un clic desde tu panel cuando decidas enviarlo.
Otras plataformas de verificación compatibles son Adapty, Apphud, Iaptic y las App Store Server Notifications directas.
Paso 5: integración con Adapty (alternativa a RevenueCat)
Si tu app usa Adapty en lugar de RevenueCat, define el identificador de Insert Affiliate como un atributo personalizado de Adapty:
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions:
[UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
Adapty.activate("YOUR_ADAPTY_PUBLIC_SDK_KEY")
InsertAffiliateSwift.initialize(
companyCode: "YOUR_COMPANY_CODE",
verboseLogging: true,
insertLinksEnabled: true
)
InsertAffiliateSwift.onAffiliateIdentifierChanged { identifier in
let builder = AdaptyProfileParameters.Builder()
.with(customAttribute: identifier,
forKey: "insert_affiliate")
Adapty.updateProfile(params: builder.build())
}
return true
}Paso 6: configuración avanzada
El SDK admite varios parámetros opcionales para controlar el comportamiento de la atribución:
InsertAffiliateSwift.initialize(
companyCode: "YOUR_COMPANY_CODE",
verboseLogging: false,
insertLinksEnabled: true,
insertLinksClipboardEnabled: true,
affiliateAttributionActiveTime: 604800,
preventAffiliateTransfer: true
)insertLinksClipboardEnabled: activa la atribución basada en el portapapeles como respaldo cuando los deep links estándar no se activan.affiliateAttributionActiveTime: define la ventana de atribución en segundos. El valor predeterminado de 604800 equivale a siete días.preventAffiliateTransfer: cuando es true, un nuevo clic de afiliado no sobrescribe una atribución existente, lo que protege al primer referente.
Paso 7: prueba el flujo completo
Genera un enlace de afiliado de prueba desde tu panel de Insert Affiliate. Toca el enlace en un dispositivo físico (los deep links no funcionan de forma confiable en el simulador de iOS para universal links). Abre la app y revisa en la consola de Xcode los registros detallados que confirman que se capturó el identificador del afiliado. Completa una compra de prueba con un Apple ID de sandbox y verifica que la transacción aparezca en tu panel de Insert Affiliate.
Cómo funciona el flujo de principio a fin
Después de la integración, el flujo de seguimiento queda totalmente automatizado. Un afiliado comparte su enlace único. Un usuario toca el enlace, tu app se abre y el SDK guarda el identificador del afiliado. El usuario se suscribe o hace una compra dentro de la app. Tu plataforma de verificación (RevenueCat, Adapty u otro servicio compatible) valida el recibo y notifica a Insert Affiliate.
La comisión del afiliado se calcula según las tasas que configuraste y se registra en tu panel de Insert Affiliate. Los pagos se envían con un clic desde tu panel cuando lo decidas.
Los afiliados se registran en la página de registro de Insert Affiliate y generan sus propios enlaces de seguimiento. Tú configuras las estructuras de comisión, supervisas el rendimiento y gestionas los pagos desde el panel de Insert Affiliate.
El InsertAffiliateSwiftSDK es de código abierto en GitHub, en github.com/Insert-Affiliate/InsertAffiliateSwiftSDK. Las guías completas de integración para cada plataforma de verificación de compras están en docs.insertaffiliate.com.
Preguntas frecuentes
¿El Insert Affiliate Swift SDK es compatible con SwiftUI?
Sí. En apps SwiftUI que usan el protocolo App con @main, inicializa el SDK en el método init() de tu struct App o usa un adaptador de AppDelegate. El manejo de deep links y los callbacks del identificador funcionan igual que en las apps UIKit.
¿Cuál es la diferencia entre Insert Links y Branch.io para el deep linking?
Insert Links es la solución de deep linking integrada de Insert Affiliate, sin necesidad de un SDK adicional: solo define insertLinksEnabled: true durante la inicialización. Branch.io y AppsFlyer también son compatibles si ya tienes uno en tu app. Para integraciones nuevas, Insert Links es el camino recomendado.
¿Qué versiones de iOS y herramientas requiere el SDK? El SDK requiere iOS 13.0 o posterior y Swift 5.0 o posterior. Se necesita Xcode 12.0 o posterior para instalar el paquete mediante Swift Package Manager.
¿Puedo hacer seguimiento de compras únicas dentro de la app además de suscripciones? Sí. La atribución y el seguimiento de comisiones funcionan con cualquier evento de compra que reporte tu plataforma de verificación. Tu plataforma (RevenueCat, Adapty, Iaptic o App Store Server Notifications) envía el evento a Insert Affiliate, que registra la comisión según la tasa que configuraste.
¿Qué debo revisar si las atribuciones de afiliados no aparecen en mi panel?
Primero, activa verboseLogging: true y revisa en la consola de Xcode que el identificador se capture después de tocar un enlace de prueba. Luego revisa la página de atributos de cliente de RevenueCat para el suscriptor de prueba y confirma que el atributo insert_affiliate esté definido antes de la compra. Por último, verifica que la URL del webhook en RevenueCat coincida exactamente con la que aparece en la configuración de tu panel de Insert Affiliate.
