Info
Contenido

[iOS] 4. Trabajar con ATT (Transparencia de seguimiento de aplicaciones / iOS)

Descripción General

Todas las nuevas aplicaciones enviadas a la App Store deben cumplir con los requisitos de Apple. Transparencia de seguimiento de aplicaciones (ATT) Directrices para iOS 14.0+. Estas directrices mejoran la privacidad del usuario al requerir el consentimiento explícito antes del seguimiento. Este documento describe los pasos necesarios para implementar ATT al usar nuestro SDK de CMP. Todos los métodos relacionados con ATT se eliminaron de nuestro SDK de CMP v3 debido a restricciones relacionadas con el ciclo de vida de la aplicación, por lo que todo ATT debe administrarse en la propia aplicación móvil, y no a través de nuestro SDK, ya que nuestro SDK no conoce el ciclo de vida de la aplicación móvil que lo integra. Documentación oficial de Apple:

Las llamadas a la API solo avisan cuando el estado de la aplicación es UIApplicationStateActive

1. Agregue el marco ATT en Xcode

Integrar Marco de transparencia de seguimiento de aplicaciones, navegar a:

<PROJECT_NAME>.xcproject / <PROJECT_NAME>.xcworkspace -> General -> Frameworks, Libraries, and Embedded Content.

Asegúrese de que el marco esté correctamente integrado para habilitar la funcionalidad ATT.


2. Agregar NSUserTrackingUsageDescription

Incluya la siguiente clave en su Info.plist archivo:

<key>NSUserTrackingUsageDescription</key>
<string>Your app description explaining why tracking permission is requested.</string>

Este mensaje se mostrará a los usuarios en la solicitud de consentimiento de ATT.


3. Solicitar autorización de seguimiento

Para garantizar un manejo adecuado del consentimiento, solicite Permiso ATT en el primer inicio de la aplicación. Esto solo debería ocurrir si se desconoce el estado de consentimiento del usuario.

Ejemplo de implementación:

import AppTrackingTransparency

class AppDelegate: UIApplicationDelegate {
    // IMPORTANT: this is the proper lifecycle event where the request needs to be done
    func applicationDidBecomeActive(_ application: UIApplication) {
        if #available(iOS 14, *) {
            ATTrackingManager.requestTrackingAuthorization { status in
                switch status {
                    case .authorized:
                        print("Tracking enabled")
                    case .denied, .notDetermined, .restricted:
                        print("Tracking disabled")
                }
            }
        }
    }
}

Nota: Asegúrese de que la lógica relacionada con la interfaz de usuario se ejecute en el DispatchQueue.main cola, ya que el controlador de finalización se ejecuta en una cola simultánea de manera predeterminada.


4. Supervisar el estado de la autorización de seguimiento

Use ATTrackingManager.trackingAuthorizationStatus Para realizar un seguimiento de los cambios en el estado del consentimiento. Son posibles los siguientes estados:

  • .authorized - Consentimiento otorgado por el usuario.
  • .denied - Al usuario se le negó el permiso de seguimiento.
  • .notDetermined - El usuario aún no ha realizado ninguna elección.
  • .restricted - El seguimiento está restringido (por ejemplo, a través de MDM).

Para lograr consistencia, trate límite as negado a menos que se proporcione el consentimiento explícito del proveedor.


Si su aplicación utiliza análisis de terceros, actualice su configuración en función del estado ATT del usuario:

  • Deshabilitar el seguimiento analítico para los usuarios que niegan o restringen el seguimiento.
  • Utilice seguimiento anónimo si el proveedor de análisis ofrece una configuración de exclusión voluntaria (por ejemplo, mParticle) optar por no modo).
  • Revisar las políticas del SDK periódicamente para cumplir con los requisitos de privacidad de Apple.

Ejemplo para Firebase:

  • Si no hay ningún marco de anuncios vinculado, Firebase Analytics no accederá al identificador de publicidad.
  • Si utiliza análisis con anuncios, asegúrese de cumplir con las pautas de ATT antes del envío.

Para aplicaciones que no requieren análisis avanzados, Análisis de la App Store (accesible a través de App Store Connect) puede proporcionar información suficiente y al mismo tiempo garantizar el cumplimiento.


6. Consideraciones adicionales

  • Envuelva las llamadas ATT en una verificación de versión de iOS Para evitar fallos en versiones anteriores:

    if #available(iOS 14.0, *) {
        ATTrackingManager.requestTrackingAuthorization { _ in }
    }
    
  • Seguimiento del consentimiento para versiones anteriores de iOS utilizando banderas de backend o almacenamiento local.

  • Cumplir con ATT con prontitud, ya que el incumplimiento puede bloquear las actualizaciones de la aplicación, incluso en casos de corrección de errores críticos.

Para obtener más información sobre cómo gestionar el consentimiento del usuario dentro de la aplicación, consulte Documentación ATT de Apple.

Volver