IDFA (Identifier for Advertisers) es un identificador único de dispositivo en iOS diseñado para fines publicitarios y atribución de instalaciones. Con la aparición de App Tracking Transparency (ATT) en iOS 14.5, obtener IDFA requiere el consentimiento explícito del usuario a través de un diálogo del sistema. Según Apple App Tracking Transparency Documentation, 2025, sin permiso ATT la aplicación recibe un identificador vacío. App Tracking Transparency ha cambiado fundamentalmente el ecosistema de publicidad móvil, reduciendo la disponibilidad de IDFA en un 80% después de su implementación.
Puntos clave
IDFA (Identifier for Advertisers) es un identificador alfanumérico único asignado a cada dispositivo Apple con fines publicitarios. A diferencia de IDFV (Identifier for Vendor), IDFA es común para todas las aplicaciones en el dispositivo y puede ser restablecido por el usuario en cualquier momento a través de Ajustes — Privacidad — Publicidad — Restablecer identificador.
El propósito principal de IDFA es la atribución de instalaciones y el seguimiento de la efectividad de las campañas publicitarias en dispositivos Apple. Las redes publicitarias utilizan IDFA para vincular un clic en un anuncio con la instalación de una aplicación, crear perfiles de usuario y mostrar anuncios personalizados. Desde la implementación de ATT, el porcentaje de usuarios que otorgan acceso a IDFA promedia entre 20 y 35% según varias plataformas analíticas.
Según Flurry Analytics (2025), después de iOS 18 la tasa de adopción de ATT alcanzó el 92% de los dispositivos activos, pero la proporción de usuarios que aceptan el rastreo cayó al 22%. Esto ha provocado un cambio fundamental en la industria de la publicidad móvil, obligando a las redes publicitarias a buscar métodos alternativos de atribución.
Una característica clave de IDFA es que no contiene datos personales del usuario ni está vinculado a un Apple ID. Sin embargo, Apple lo clasifica como un identificador sujeto a la regulación de App Tracking Transparency.
App Tracking Transparency (ATT) es un framework de Apple presentado en iOS 14.5 que requiere el consentimiento explícito del usuario antes de leer IDFA. Sin consentimiento, el método asIdentifierManager devuelve un identificador vacío (00000000-0000-0000-0000-000000000000) y la aplicación no puede rastrear al usuario.
ATT se implementa a través de la clase ATTrackingManager con un único método público requestTrackingAuthorization(completionHandler:). Cuando se llama a este método, el sistema muestra un diálogo nativo con el texto que el desarrollador define mediante la clave NSUserTrackingUsageDescription en Info.plist. El usuario puede elegir una de tres opciones: “Permitir rastreo”, “Pedir a la aplicación que no rastree” o “Denegar”.
El estado de autorización se controla a través de ATTrackingManager.trackingAuthorizationStatus, que puede tomar cuatro valores: notDetermined, restricted, denied o authorized. Antes de solicitar ATT, se recomienda verificar el estado actual y no llamar al diálogo si el estado ya está determinado — a partir de iOS 17, llamar nuevamente a requestTrackingAuthorization con estado denied no muestra el diálogo y devuelve un error.
El momento de la solicitud ATT afecta críticamente las tasas de consentimiento. Investigaciones de Singular (2025) muestran que solicitar ATT en la pantalla de incorporación (al primer inicio) produce una tasa de conversión del 35–45%, mientras que solicitarlo después de completar una acción (por ejemplo, después del registro) aumenta la conversión al 55–65%. Se recomienda mostrar una pantalla de permiso previo con diseño personalizado que explique el valor del rastreo al usuario antes del diálogo ATT del sistema.
Importante: la aplicación puede llamar a requestTrackingAuthorization solo una vez antes de recibir una respuesta. Una vez que el usuario elige “Denegar” o “Pedir a la aplicación que no rastree”, el diálogo ya no aparecerá en el dispositivo. El desarrollador debe implementar mecanismos alternativos para trabajar sin IDFA y garantizar que la aplicación continúe funcionando correctamente en condiciones de rastreo limitado.
Con el lanzamiento de iOS 18, Apple ha endurecido los requisitos para las aplicaciones que utilizan el identificador publicitario. Todas las aplicaciones que soliciten IDFA o transmitan datos del dispositivo con fines publicitarios deben cumplir con las nuevas reglas de App Store. El incumplimiento conduce al rechazo del build durante la revisión de App Store Connect.
A partir de iOS 18, cada aplicación debe incluir un Privacy Manifest (archivo privacy.xcprivacy) que declare todas las API utilizadas para el rastreo. Para IDFA se utilizan las claves NSPrivacyTracking y NSPrivacyTrackingDomains, donde se especifican los dominios de las redes publicitarias a las que se transmite el identificador. Sin un manifiesto correcto, la aplicación es rechazada durante la moderación de App Store Connect.
Apple también ha introducido el requisito de especificar el motivo del uso del identificador publicitario en la descripción de la aplicación. Si la aplicación utiliza IDFA para la atribución de instalaciones, debe usar SKAdNetwork como método principal, e IDFA solo como una señal adicional para mejorar la precisión de la atribución.
Con el aumento de restricciones sobre IDFA, la industria ha desarrollado varios enfoques alternativos. SKAdNetwork (StoreKit Ad Network) es el mecanismo oficial de atribución de Apple que funciona sin IDFA y no requiere consentimiento del usuario. SKAdNetwork utiliza solicitudes postback firmadas entre la red publicitaria y App Store, garantizando la privacidad del usuario.
Otras alternativas incluyen: atribución probabilística basada en dirección IP, versión del SO y otras señales del dispositivo; API agregadas privadas como Private Click Measurement (PCM) de WebKit; y soluciones propias de plataformas publicitarias que utilizan aprendizaje automático para predecir conversiones. Para el mercado chino también se utiliza CAID (Cellular Advertising ID), basado en datos de la red del operador móvil.
Implementar una solicitud IDFA requiere integrar App Tracking Transparency y manejar correctamente todos los posibles estados de autorización. A continuación se muestra un ejemplo completo para Swift con una pantalla de permiso previo.
El ejemplo demuestra el flujo completo de trabajo con IDFA: verificar el estado, mostrar una pantalla de permiso previo, llamar al diálogo ATT del sistema y obtener el identificador después de la autorización.
import AppTrackingTransparency
import AdSupport
func requestIDFAAccess() {
let status = ATTrackingManager.trackingAuthorizationStatus
switch status {
case .notDetermined:
// Mostrando pantalla de permiso previo con explicación
showPrePermissionScreen { accepted in
guard accepted else { return }
ATTrackingManager.requestTrackingAuthorization { newStatus in
handleATTStatus(newStatus)
}
}
case .authorized:
// El usuario ya otorgó consentimiento — obteniendo IDFA
let idfa = ASIdentifierManager.shared().advertisingIdentifier
print("IDFA: \(idfa.uuidString)")
case .denied, .restricted:
// Redirigiendo al usuario a los ajustes
redirectToSettings()
@unknown default:
break
}
}
private func handleATTStatus(status: ATTrackingManager.AuthorizationStatus) {
if status == .authorized {
let idfa = ASIdentifierManager.shared().advertisingIdentifier
// Transmitiendo IDFA a la red publicitaria
sendIDFAToAdNetwork(idfa.uuidString)
}
}
Dado que la mayoría de los usuarios rechazan la solicitud ATT, los desarrolladores necesitan un conjunto de estrategias para trabajar eficazmente sin el identificador. El enfoque principal es una combinación de SKAdNetwork y métodos probabilísticos de atribución.
SKAdNetwork (SKAN) es un framework de Apple para la atribución de instalaciones que no requiere IDFA ni muestra un diálogo de consentimiento. La red publicitaria registra su ID de SKAdNetwork en el Info.plist de la aplicación, y después de la instalación, App Store envía un postback firmado con información de la campaña. SKAN 4.0, presentado en iOS 17, admite múltiples conversiones, identificadores de origen y valores de conversión de grano grueso.
Limitaciones de SKAN: retraso del postback de 24 a 48 horas, ausencia de identificador de usuario y valores de conversión limitados (hasta 64). A pesar de ello, SKAN se ha convertido en el estándar de facto para la atribución en iOS después de la implementación de ATT, y todas las grandes redes publicitarias deben soportarlo para funcionar en dispositivos Apple.
Redes publicitarias como Meta y Google han desarrollado sus propias soluciones basadas en aprendizaje automático que predicen conversiones sin identificador de usuario. Meta Aggregated Events Measurement (AEM) utiliza datos agregados para la atribución, mientras que Google Attribution modela conversiones basándose en datos históricos.
Para el desarrollador, es importante implementar múltiples métodos de atribución simultáneamente: SKAdNetwork como método principal, atribución del lado del servidor a través de redes publicitarias y herramientas analíticas propias con modelado de conversiones. La combinación de métodos permite recuperar hasta el 70–80% de la precisión de atribución en comparación con la era de IDFA. Se recomienda probar diferentes combinaciones de métodos durante la fase de pruebas beta para seleccionar el conjunto óptimo para la aplicación y audiencia objetivo específicas.
Preguntas frecuentes
IDFA es un código único del dispositivo iPhone o iPad que las redes publicitarias utilizan para mostrar anuncios personalizados y medir la efectividad de las campañas. Desde iOS 14.5, la aplicación debe solicitar su permiso antes de acceder a IDFA a través del diálogo del sistema App Tracking Transparency.
IDFV (Identifier for Vendor) es un identificador único para todas las aplicaciones del mismo desarrollador en un dispositivo. A diferencia de IDFA, IDFV no requiere consentimiento ATT y está siempre disponible. IDFA es común para todas las aplicaciones, mientras que IDFV es específico para aplicaciones de un mismo proveedor (por bundle ID).
Es imposible obtener IDFA sin consentimiento del usuario. Desde iOS 14.5, ASIdentifierManager.advertisingIdentifier devuelve un identificador vacío (00000000-0000-0000-0000-000000000000) si el usuario no ha otorgado consentimiento a través de ATT. La única forma legal es llamar a ATTrackingManager.requestTrackingAuthorization y obtener el estado authorized.
NSUserTrackingUsageDescription es una clave en el Info.plist de la aplicación que contiene el texto que se muestra en el diálogo ATT del sistema. El texto debe explicar al usuario por qué la aplicación necesita el rastreo. Ejemplo: “Su IDFA se utiliza para mostrar anuncios personalizados y medir la efectividad de las campañas”.
No, IDFA es un identificador exclusivo del ecosistema Apple. Android utiliza GAID (Google Advertising ID) o AAID (Android Advertising ID). Ambos cumplen una función similar pero se regulan con reglas diferentes — en Android el usuario puede restablecer el identificador o desactivar la personalización de anuncios en los ajustes de Google.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.