Cómo configurar el seguimiento de desinstalación de iOS

Documento

Configuración del seguimiento de desinstalaciones de iOS

Realice un seguimiento de las desinstalaciones de aplicaciones en iOS para medir la retención de usuarios, identificar fuentes de tráfico de baja calidad y optimizar el rendimiento de las campañas mediante la integración del servicio Apple Push Notification (APN) con Singular SDK.


Visión general

Cómo funciona el seguimiento de desinstalaciones

Singular detecta las desinstalaciones de aplicaciones iOS enviando notificaciones push silenciosas a través del servicio Apple Push Notification y monitorizando las respuestas de entrega para determinar si la aplicación permanece instalada en los dispositivos.

Proceso técnico:

  1. Registro de Token: Singular SDK registra tokens de dispositivos APNs con los servidores de Singular.
  2. Aceptación del usuario: Los usuarios conceden permisos de notificaciones push cuando se lo pide iOS
  3. Notificaciones silenciosas: Singular envía notificaciones push silenciosas periódicas a los dispositivos registrados
  4. Feedback de entrega: APNs informa del éxito o fracaso de la entrega
  5. Detección de desinstalación: Las entregas fallidas indican la desinstalación de la aplicación
  6. Registro de eventos: Evento de desinstalación atribuido a la fuente de instalación original

Requisitos

  • Versión del SDK: se requiere SDK de iOS 8.0+ para el seguimiento de desinstalaciones
  • Certificado APNs: Certificado SSL de producción de la cuenta de desarrollador de Apple
  • Soporte de notificaciones push: La aplicación debe implementar el registro de APNs y la gestión de tokens
  • Consentimiento del usuario: Los usuarios deben aceptar las notificaciones push para que funcione el seguimiento.
  • Actualización de la aplicación: los usuarios deben instalar una versión actualizada de la aplicación con el seguimiento de desinstalación activado.

Consideraciones importantes

Requisito de aceptación del usuario: De acuerdo con las políticas de Apple, los usuarios deben optar explícitamente por recibir notificaciones push. Singular sólo puede rastrear las desinstalaciones de los usuarios que han concedido permisos de notificación.

Puntos clave:

  • Notificaciones silenciosas: El seguimiento de desinstalaciones de Singular utiliza notificaciones push silenciosas que no muestran ninguna alerta visible a los usuarios.
  • Preservación de la atribución: Las desinstalaciones se rastrean como eventos sin eliminar el enlace de atribución original. Los usuarios pueden desinstalar y volver a instalar varias veces, lo que puede dar lugar a tasas de desinstalación superiores al 100%.
  • Procesamiento por lotes: La detección de desinstalaciones se realiza por lotes, basándose en la respuesta de los APN. Los datos de desinstalación pueden tardar hasta 24 horas en aparecer en el panel de Singular.
  • Dependencias de permisos: La cobertura del seguimiento está directamente relacionada con la tasa de aceptación de notificaciones push. Las aplicaciones con un bajo índice de aceptación tendrán datos de desinstalación incompletos.
  • Dependencia de la red: Las notificaciones push silenciosas requieren una conexión de red activa. Los dispositivos desconectados durante periodos prolongados pueden retrasar la detección de desinstalaciones.

Instrucciones de configuración

Configure el seguimiento de desinstalaciones de iOS integrando Singular SDK, implementando las notificaciones push de Apple y cargando los certificados APN en Singular.

Paso 1: Integrar SDK de iOS 8.x+

Actualice la versión del SDK

Actualice a SDK de iOS 8.0 o superior para habilitar la funcionalidad de seguimiento de desinstalaciones.

Instalación de CocoaPods:

Podfile
platform :ios, '12.0'
use_frameworks!

target 'YourApp' do
  # Singular SDK de iOS
  pod 'Singular-SDK', '~> 12.6.2'
end

Gestor de paquetes Swift:

Xcode
// File > Add Package Dependencies
// Enter repository URL:
https://github.com/singular-labs/Singular-iOS-SDK

// Select version: 12.6.2 or later

Guíacompleta de integración: SDK de iOS Integration Guide


Paso 2: Configurar las notificaciones push de Apple

Habilitar la capacidad de notificaciones push

Añada la capacidad de notificaciones push a su proyecto Xcode e implemente el registro de APNs en su app.

Configuración de Xcode:

  1. Abra la configuración del proyecto: Seleccione su proyecto en el navegador Xcode
  2. Seleccione Target: Elige el destino de tu app
  3. Añadir capacidad: Vaya a la pestaña Firma y capacidades
  4. Habilitar Push: Haz clic en "+ Capacidad" y añade "Notificaciones Push"
  5. Modos de fondo: Habilite "Notificaciones remotas" en Modos de fondo.

Configuración inicial: Si es la primera vez que implementa las notificaciones push para iOS, consulte la completa Guía de configuración del servicio de notificaciones push de Apple (APNs).


Implementar el registro de APNs

Añada código para registrarse en las notificaciones push y pase el token del dispositivo APNs a Singular SDK.

Swift
import UIKit
import UserNotifications
import Singular

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    
    func application(_ application: UIApplication, 
                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        // Request push notification permissions
        requestPushNotificationPermissions()
        
        // Initialize Singular SDK
        let config = SingularConfig(apiKey: "SDK KEY", secret: "YOUR_SECRET")
        Singular.start(config)
        
        return true
    }
    
    func requestPushNotificationPermissions() {
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
            if granted {
                print("Push notification permission granted")
                DispatchQueue.main.async {
                    UIApplication.shared.registerForRemoteNotifications()
                }
            } else {
                print("Push notification permission denied")
            }
        }
    }
    
    // Called when APNs successfully registers device
    func application(_ application: UIApplication, 
                     didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        
        // Pass token to Singular for uninstall tracking
        Singular.registerDeviceToken(forUninstall: deviceToken)
        
        // Convert token to hex string for logging
        let tokenString = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
        print("APNs device token registered: \(tokenString)")
    }
    
    // Called if APNs registration fails
    func application(_ application: UIApplication, 
                     didFailToRegisterForRemoteNotificationsWithError error: Error) {
        print("Failed to register for remote notifications: \(error.localizedDescription)")
    }
    
    // Handle incoming push notifications
    func application(_ application: UIApplication,
                     didReceiveRemoteNotification userInfo: [AnyHashable : Any],
                     fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        
        // Pass notification data to Singular
        Singular.handleNotification(userInfo)
        
        completionHandler(.newData)
    }
}

Requisitos para iOS 13+: A partir de iOS 13, debe llamar a registerForRemoteNotifications() en el hilo principal después de recibir la autorización. Utilice DispatchQueue.main.async como se muestra arriba.

Guía de implementacióncompleta: Guía de implementación de Singular SDK de iOS


Paso 3: Crear certificado de notificación push de Apple

Generar certificado SSL de APNs

Cree un certificado SSL de producción en su cuenta de desarrollador de Apple para que Singular pueda enviar notificaciones push para el seguimiento de la desinstalación.

  1. Abra el portal para desarrolladores de Apple: Navegue hasta Apple Developer
  2. Acceda a Certificados: Vaya a Certificados, Identificadores y Perfiles
  3. Seleccione Identificadores: Haga clic en Identificadores en la barra lateral izquierda
  4. Seleccione App ID: Seleccione el identificador de su aplicación de la lista.
  5. Configure las notificaciones push: Desplácese hasta Servicios de aplicaciones y localice Notificaciones Push
  6. Crear certificado: Haga clic en "Configurar" junto a Notificaciones push.
  7. Seleccione el tipo: Elija "Apple Push Notification service SSL (Sandbox & Production)" para el certificado de producción.

Requisito de tipo de certificado: El seguimiento de desinstalación singular requiere el certificado SSLde producciónpara las aplicaciones activas. Los certificados de desarrollo sólo pueden utilizarse para pruebas internas.


Crear solicitud de firma de certificado (CSR)

Genere una CSR en su Mac para crear el certificado de APNs.

  1. Abra Keychain Access: Inicie la aplicación Keychain Access en su Mac
  2. Solicite el certificado: Menú Acceso a llaveros → Asistente de certificados → Solicitar un certificado a una autoridad de certificación.
  3. Introduzca el correo electrónico: Proporcione su dirección de correo electrónico
  4. Nombre común: Introduzca un nombre descriptivo (por ejemplo, "YourApp Push Notifications")
  5. Guardar en disco: Seleccione la opción "Guardar en disco".
  6. Continuar: Haga clic en Continuar para guardar el archivo CSR

Cargar CSR y descargar certificado

Cargue su CSR en el portal para desarrolladores de Apple para generar el certificado SSL de APNs.

  1. Cargar CSR: En el portal para desarrolladores de Apple, cargue el archivo CSR que ha creado.
  2. Generar certificado: Haga clic en Continuar para generar el certificado
  3. Descargar certificado: Descargue el archivo .cer generado
  4. Instalar certificado: Haga doble clic en el archivo .cer para añadirlo al Llavero de su Mac

Paso 4: Exportar certificado como archivo .p12

Generar P12 desde el Llavero

Exporte su certificado APNs y su clave privada desde el Llavero como un archivo .p12 para cargarlo en Singular.

  1. Abra Keychain Access: Inicie la aplicación Keychain Access
  2. Seleccione Certificado: En la categoría "Mis certificados", localice su certificado de APNs.
  3. Expanda el certificado: Haga clic en el triángulo desplegable para mostrar la clave privada asociada al certificado.
  4. Seleccione ambos elementos: Mantenga pulsada la tecla Comando y haga clic en el certificado y en la clave privada para seleccionarlos.
  5. Exportar: Haga clic con el botón derecho y elija "Exportar 2 elementos..."
  6. Guardar como P12: Elija el formato .p12 y guárdelo con un nombre de archivo significativo (por ejemplo, "TuApp_APNs_Producción.p12")
  7. Establecer contraseña: Introduzca una contraseña para proteger el archivo .p12 (necesitará esta contraseña cuando lo cargue en Singular)
  8. Confirme: Haga clic en Aceptar para exportar el archivo

Nota de seguridad: Guarde su archivo .p12 de forma segura y recuerde la contraseña. Necesitará ambas cosas para cargar el certificado en Singular. No comparta estas credenciales públicamente.


Paso 5: Cargue el certificado en Singular

Configure los ajustes de Singular App

Cargue su archivo de certificado .p12 en la configuración de aplicaciones de Singular para habilitar el seguimiento de desinstalaciones.

  1. Abra Singular Apps: Vaya a la página de Singular Apps
  2. Seleccione App: Elija su aplicación iOS de la lista
  3. Configuración avanzada: Desplácese hasta la sección Ajustes avanzados
  4. Desinstalar Seguimiento: Localice la configuración de Desinstalar Seguimiento
  5. Cargar certificado: Haga clic en "Elegir archivo" y seleccione su archivo .p12
  6. Introducir contraseña: Introduzca la contraseña que creó al exportar el archivo .p12
  7. Guardar configuración: Haga clic en Guardar para aplicar la configuración

iOS Uninstall Tracking Configuration

Verificación: Una vez cargado, Singular validará el certificado. Si la validación falla, compruebe que está utilizando el certificado de producción y que la contraseña es correcta.


Prueba del seguimiento de desinstalación

Compruebe que el seguimiento de desinstalación está configurado correctamente antes de lanzar la aplicación actualizada a producción.

Procedimiento de prueba

Pasos de validación

  1. Instale la compilación de prueba: Implemente la aplicación con el seguimiento de desinstalación activado en el dispositivo de prueba.
  2. Conceder permisos: Iniciar la aplicación y aceptar los permisos de notificación push cuando se soliciten
  3. Verificar el registro: Comprueba en la consola de Xcode el mensaje de registro del token del dispositivo APNs
  4. Confirme el registro del SDK: Compruebe que los registros del SDK muestran el registro correcto del token con Singular
  5. Espere a que el proceso por lotes: Espere de 24 a 48 horas para que Singular envíe la primera notificación silenciosa.
  6. Desinstalar aplicación: Eliminar la aplicación del dispositivo de prueba
  7. Monitorizar el panel de control: Compruebe el panel de Singular después de 24-48 horas para el evento de desinstalación

Calendario de pruebas: El seguimiento de desinstalaciones se basa en lotes y puede tardar hasta 48 horas en detectar e informar de las desinstalaciones. Este retraso es el comportamiento esperado.


Verificación de la consola Xcode

Compruebe los mensajes de la consola de Xcode que confirman la correcta configuración de Singular SDK.

Mensajes de registro esperados:

[Singular] APNs device token registered successfully
[Singular] Uninstall tracking enabled
[Singular] Device token sent to Singular servers

Problemas comunes

Problema Causa Solución
No aparece el diálogo de permisos Push Permiso denegado o no solicitado Restablece los permisos: Ajustes → General → Transferir o restablecer iPhone → Restablecer → Restablecer ubicación y privacidad.
No se ha generado ningún token de dispositivo La función de notificaciones push no está activada Compruebe que las notificaciones push están activadas en Xcode Firma y capacidades
El registro falla con un error Falta el perfil de aprovisionamiento o es incorrecto Asegúrese de que el perfil de aprovisionamiento incluye el derecho a las notificaciones push.
La validación del certificado falla en Singular Tipo de certificado incorrecto o certificado caducado Compruebe que está utilizando un certificado SSL de producción y que no ha caducado.
El token no llega a Singular SDK no inicializado o problema de conectividad de red Asegúrese de que se llama a Singular.start() antes de registerDeviceToken().
Las desinstalaciones no aparecen en el panel de control. El usuario no ha concedido permisos push El seguimiento de las desinstalaciones sólo funciona para los usuarios que han optado por recibir notificaciones.

Limitaciones del simulador

Se requiere un dispositivo físico: La generación de tokens de dispositivos APNs no funciona en el simulador de iOS. Debe probar el seguimiento de desinstalación en dispositivos iOS físicos.


Optimización de las tasas de aceptación de notificaciones push

Maximiza la cobertura del seguimiento de desinstalaciones mejorando el porcentaje de usuarios que conceden permisos de notificaciones push.

Mejores prácticas

Avisos previos a la concesión de permisos

Muestra explicaciones personalizadas dentro de la aplicación antes de mostrar el diálogo de permisos del sistema iOS para aumentar las tasas de aceptación.

  • Explica el valor: Comunica claramente los beneficios que obtienen los usuarios al activar las notificaciones.
  • Momento oportuno: Solicita el permiso en momentos contextualmente relevantes, cuando los usuarios entiendan el valor.
  • Interfaz personalizada: Mostrar un cuadro de diálogo personalizado con los botones "Permitir" y "Ahora no" antes de que lo solicite el sistema.
  • Lógica de reintento: Si el usuario lo rechaza, solicitarlo de nuevo más tarde, cuando haya comprendido el valor de la aplicación.

Ejemplo de implementación

Swift
class NotificationManager {
    
    func showPrePermissionPrompt() {
        // Check if permission already requested
        UNUserNotificationCenter.current().getNotificationSettings { settings in
            if settings.authorizationStatus == .notDetermined {
                DispatchQueue.main.async {
                    self.displayCustomPrompt()
                }
            }
        }
    }
    
    private func displayCustomPrompt() {
        let alert = UIAlertController(
            title: "Stay Updated",
            message: "Enable notifications to receive important updates about your orders and exclusive offers.",
            preferredStyle: .alert
        )
        
        alert.addAction(UIAlertAction(title: "Enable Notifications", style: .default) { _ in
            self.requestSystemPermission()
        })
        
        alert.addAction(UIAlertAction(title: "Not Now", style: .cancel) { _ in
            // User declined - mark for retry later
            UserDefaults.standard.set(Date(), forKey: "last_notification_prompt")
        })
        
        // Present from root view controller
        UIApplication.shared.keyWindow?.rootViewController?.present(alert, animated: true)
    }
    
    private func requestSystemPermission() {
        UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
            if granted {
                DispatchQueue.main.async {
                    UIApplication.shared.registerForRemoteNotifications()
                }
            }
        }
    }
}

Solicitudes de permiso contextuales

Estrategias temporales eficaces:

  • Después de la primera transacción: Solicitar después de que el usuario complete su primera compra o acción significativa.
  • Introducción de funciones: Preguntar al introducir funciones dependientes de notificaciones
  • Demostración del valor: Solicitar después de que el usuario experimente el valor de la aplicación
  • Evite el primer lanzamiento: No lo solicite en la primera apertura de la aplicación antes de que los usuarios comprendan su valor.

Análisis de los datos de desinstalación

Utilice los datos de desinstalación de iOS en los informes de Singular para optimizar el rendimiento de la campaña e identificar problemas de calidad del tráfico.

Métricas disponibles

Métricas de seguimiento de desinstalaciones

  • Recuento de desinstalaciones: Número total de desinstalaciones de aplicaciones detectadas
  • Tasa de desinstalación: Porcentaje de instalaciones que resultaron en desinstalaciones
  • Tasa de usuarios rastreables: Porcentaje de usuarios que optaron por recibir notificaciones push
  • Días hasta la desinstalación: Tiempo medio transcurrido entre la instalación y la desinstalación
  • Desinstalaciones por fuente: Desglose de desinstalaciones por campaña, editor, creatividad
  • Análisis de cohortes: Patrones de desinstalación en diferentes cohortes de usuarios

Consideraciones sobre la cobertura

Cobertura del seguimiento: el seguimiento de las desinstalaciones de iOS sólo cubre a los usuarios que han concedido permisos de notificaciones push. Supervisa la tasa de aceptación de notificaciones de tu aplicación para conocer el porcentaje de cobertura del seguimiento de desinstalaciones.

Cálculo de la cobertura:

Tracking Coverage % = (Users with Push Enabled / Total Installs) × 100

Casos de uso

Optimización de campañas:

  • Identificar campañas que conducen tráfico de baja calidad con altas tasas de desinstalación.
  • Comparar las tasas de desinstalación entre diferentes fuentes de tráfico
  • Optimizar las estrategias de puja en función de la retención de usuarios prevista
  • Ajustar los mensajes creativos para atraer a usuarios de mayor calidad

Detección de fraudes:

  • Detecte patrones de desinstalación anormales que indiquen fraude en la instalación.
  • Señale a los editores con tasas de desinstalación sospechosamente altas
  • Supervisar el tiempo transcurrido hasta la desinstalación para detectar indicios de tráfico de bots
  • Identifique patrones de inyección de clics a través de desinstalaciones rápidas

Análisis de retención de usuarios:

  • Seguimiento de la adherencia y compromiso con la aplicación a lo largo del tiempo
  • Correlacione las desinstalaciones con las actualizaciones de la aplicación o los lanzamientos de funciones.
  • Identificar los factores que contribuyen a la pérdida de usuarios
  • Segmentar las tasas de desinstalación por datos demográficos y comportamiento de los usuarios.

Mejores prácticas

Estrategias de optimización

  • Establezca puntos de referencia: Establecer umbrales de tasa de desinstalación aceptables para los distintos tipos de campaña.
  • Controlar las tendencias: Realice un seguimiento de las tasas de desinstalación a lo largo del tiempo para identificar patrones estacionales o anomalías.
  • Análisis de segmentos: Compare las tasas de desinstalación entre usuarios demográficos, geográficos y dispositivos.
  • Ventanas de atribución: Tenga en cuenta el momento de la desinstalación al evaluar el rendimiento de la campaña.
  • Puntuación de calidad: Incorpore las tasas de desinstalación a los modelos de puntuación de la calidad del tráfico
  • Seguimiento de la cobertura: Supervise las tasas de inclusión de notificaciones para comprender la exhaustividad de los datos.
  • Análisis comparativo: Compare los patrones de desinstalación de iOS y Android para obtener información específica de cada plataforma.