Introducción: SKAdNetwork y SKAN
El SDK iOS de Singular simplifica la integración de SKAdNetwork, soportando las características de SKAN 4.0 como múltiples postbacks, IDs de origen jerárquicos y valores de conversión de grano grueso. Basado en el estándar SKAN de código abierto de Singular, garantiza una fácil configuración y compatibilidad con las redes publicitarias. Para más detalles sobre la configuración, consulte la Guía SKAdNetwork de Singular.
Compatibilidad con el seguimiento SKAdNetwork
Consejo: El seguimiento de SKAdNetwork está activado por defecto cuando se utiliza Singular SDK.
Para desactivar o apagar el soporte para SKAdNetwork:
- Establezca el método de configuración skAdNetworkEnabled en FALSE cuando construya el objeto SingularConfig.
Gestión de AppTrackingTransparency (ATT)
Para iOS 14.5+ (incluido iOS 18), utilice ATTrackingManager para solicitar el consentimiento del usuario antes de acceder al IDFA para el seguimiento. El SDK de Singular para iOS (v12.x) soporta ATT, permitiendo la inicialización antes del consentimiento y retrasando los eventos hasta que se concede el consentimiento o se produce un tiempo de espera. Esto garantiza el cumplimiento de las normas de privacidad de Apple y la compatibilidad con SKAdNetwork (SKAN) 4.0.
Implementación
-
Añadir ATT Framework:
- Incluya AppTrackingTransparency en su proyecto Xcode.
- Actualice Info.plist con NSUserTrackingUsageDescription (por ejemplo, "Esta aplicación utiliza el seguimiento para personalizar los anuncios").
-
Solicite el consentimiento de la ATT:
- Solicite el consentimiento cuando se inicie la aplicación o después de la integración, en función de su estrategia de UX.
- Utilice el SDK de Singular para gestionar la inicialización previa al consentimiento.
-
Configure el SDK de Singular:
- Establezca el método de configuración waitForTrackingAuthorizationWithTimeoutInterval al construir el objeto SingularConfig para retrasar los eventos hasta que se resuelva el consentimiento ATT o expire el tiempo de espera (por ejemplo, 30 segundos).
Si utiliza Flutter, tendrá que recurrir a un paquete de terceros para implementar la transparencia de seguimiento de aplicaciones. Por ejemplo: el plugin app_tracking_transparency para su Flutter.
Consejo: Cuando se establece un retardo de inicialización, el flujo de la aplicación es el siguiente:
- Cuando se abre la aplicación, el SDK de Singular empieza a grabar una sesión y los eventos del usuario, pero aún no los envía al servidor de Singular.
- Cuando se concede/deniega el consentimiento de App Tracking Transparency, o transcurre el tiempo establecido, el SDK envía la sesión y cualquier evento en cola al servidor de Singular (con o sin el IDFA).
- Singular inicia entonces el proceso de atribución, aprovechando el IDFA si está disponible.
La siguiente tabla resume los posibles escenarios utilizando esta integración:
Escenario | Disponibilidad de IDFA |
El usuario ve el diálogo de consentimiento y otorga su consentimiento antes de que transcurra el tiempo establecido. | El IDFA está disponible |
El usuario ve el diálogo de consentimiento y lo deniega antes de que transcurra el tiempo establecido. | IDFA no está disponible |
El tiempo establecido expira, entonces el usuario ve el diálogo de consentimiento y otorga su consentimiento. | IDFA está disponible sólo para los eventos de usuario que se reportan después de que se otorga el consentimiento |
El tiempo establecido expira, entonces al usuario se le muestra el diálogo de consentimiento y niega el consentimiento. | IDFA no está disponible |
Al usuario se le muestra el diálogo de consentimiento, sale de la aplicación sin realizar ninguna acción, y más tarde abre la aplicación y otorga el consentimiento después de que el tiempo establecido haya expirado. | Los eventos en cola se envían al servidor Singular cuando se vuelve a abrir la aplicación. El IDFA no está disponible para estos eventos. Cualquier evento registrado después de que se haya concedido el consentimiento tiene IDFA asociado. |
Al usuario se le muestra el diálogo de consentimiento, sale de la aplicación sin realizar ninguna acción, y más tarde abre la aplicación y deniega el consentimiento. | Los eventos en cola se envían a los servidores de Singular cuando se vuelve a abrir la aplicación. El IDFA no está disponible para estos eventos ni para ninguno de los eventos rastreados posteriormente. |
Buenas prácticas
- Momento oportuno: Solicite el consentimiento de ATT en el lanzamiento de la aplicación para maximizar la disponibilidad de IDFA, o retrase hasta después de la incorporación para mejorar el contexto del usuario. Pruebe ambas opciones para equilibrar las tasas de consentimiento y la experiencia del usuario.
- Tiempo de espera: Establece waitForTrackingAuthorizationWithTimeoutInterval entre 30 y 300 segundos. Después del tiempo de espera, Singular procede con la atribución SKAN 4.0 (sin IDFA).
- Integración de SKAN 4.0: Asegúrese de que las actualizaciones de los valores de conversión coincidan con el consentimiento de ATT para optimizar las devoluciones de SKAN (por ejemplo, utilice el panel de Singular para asignar eventos a los valores 0-63).
- Tratamiento de errores: Compruebe ATTrackingManager.trackingAuthorizationStatus para restricted (por ejemplo, controles parentales) o notDetermined estados y registro para análisis.
Gestión manual de valores de conversión
Modo gestionado
Por defecto, la implementación de SKAdNetwork gestiona el valor de conversión directamente desde el lado del servidor Singular.
Esto permite la máxima flexibilidad, ya que puede establecer y cambiar los valores de conversión a través de la plataforma Singular, sin modificar el código del lado del cliente.
Este modo gestionado del lado del servidor también le ayuda a manejar los temporizadores de SKAdNetwork. SKAdNetwork le permite actualizar el valor de conversión en un plazo de 24 horas desde el momento del registro en SKAdNetwork. Cualquier llamada para actualizar el valor de conversión prolonga el temporizador 24 horas más. Por lo tanto, al elegir sus eventos de conversión, tendrá que asegurarse de que los eventos se produzcan dentro de esa ventana de actualización. En modo gestionado, puede cambiar la configuración de los eventos de conversión en cualquier momento, sin necesidad de lanzar una nueva versión de su aplicación.
Modo manual
Si quieres actualizar el valor de conversión por tu cuenta:
- Establezca el método de configuración manualSkanConversionManagement cuando construya el objeto SingularConfig.
- A continuación, para actualizar el valor de conversión, utilice el método skanUpdateConversionValue siempre que sea necesario en el ciclo de vida de su aplicación.
- O bien, para actualizar manualmente los valores de conversión de SKAdNetwork 4.0, utilice el método skanUpdateConversionValues siempre que sea necesario en el ciclo de vida de su aplicación.
Nota: El método skanUpdateConversionValue no funcionará si no ha configurado el SDK para actualizaciones manuales en la inicialización.
Recuperación del valor de conversión
Para obtener el valor de conversión actual, utilice el método skanGetConversionValue. Este método funciona tanto en modo gestionado como manual.