SDK de iOS - Tracking de desinstalación

Tracking de desinstalación

Realiza el tracking de las desinstalaciones de la app para medir la retención de usuarios y optimizar las campañas de reengagement integrando Apple Push Notification Service (APNs) con el SDK de Singular.

Importante: El tracking de desinstalación requiere la configuración de APNs en tu app. Consulta la documentación del framework UserNotifications de Apple para obtener los detalles completos de implementación.

Requisitos previos

Configurar la plataforma Singular

Antes de implementar el tracking de desinstalación en tu app, configura tu app en la plataforma Singular siguiendo la guía Configuración del tracking de desinstalación de iOS .


Requisitos del sistema

El tracking de desinstalación requiere Apple Push Notification Service y configuraciones específicas del dispositivo.

Requisitos de APNs ( fuente ):

  • Versión de iOS: Los dispositivos deben ejecutar iOS 10.0 o superior para el framework UserNotifications
  • Certificado APNs: Configura certificados o tokens de APNs en el portal de Apple Developer
  • Capacidad de push: Habilita la capability Push Notifications en la configuración del proyecto de Xcode
  • Permiso del usuario: Solicita y obtén la autorización del usuario para las notificaciones push

Nota: Los usuarios que rechacen los permisos de notificaciones push o que utilicen dispositivos sin soporte para APNs no se incluirán en el tracking de desinstalaciones.


Pasos de implementación

Paso 1: Habilitar las notificaciones push

Configura tu proyecto de Xcode para que admita las notificaciones push si aún no están habilitadas.

  1. Abre tu proyecto en Xcode
  2. Selecciona el target de tu app y ve a Signing & Capabilities
  3. Haz clic en + Capability y agrega Push Notifications
  4. Asegúrate de que Remote notifications esté marcado en Background Modes

Paso 2: Solicitar la autorización del usuario

Solicita el permiso de los usuarios para recibir notificaciones push utilizando el framework UserNotifications.

Swift Objective-C
import UIKit
import UserNotifications

class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication,
                    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        // Set notification delegate
        UNUserNotificationCenter.current().delegate = self

        // Request authorization for notifications
        let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
        UNUserNotificationCenter.current().requestAuthorization(options: authOptions) { granted, error in
            if let error = error {
                print("Notification authorization error: \(error.localizedDescription)")
            }

            if granted {
                // Register for remote notifications on main thread
                DispatchQueue.main.async {
                    application.registerForRemoteNotifications()
                }
            }
        }

        return true
    }
}

Paso 3: Registrar el token del dispositivo APNs

Recupera el token del dispositivo APNs y envíalo a Singular para el tracking de desinstalación.

Recuperar y establecer el token

Implementa el callback didRegisterForRemoteNotificationsWithDeviceToken para capturar el token de APNs y registrarlo en Singular.

Swift Objective-C
import Singular

func application(_ application: UIApplication,
                didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {

    // Register the device token with Singular for uninstall tracking
    Singular.registerDeviceToken(forUninstall: deviceToken)

    print("APNs device token registered with Singular")

    // Also send to your server if needed for your own push notifications
    sendTokenToServer(deviceToken)
}

func application(_ application: UIApplication,
                didFailToRegisterForRemoteNotificationsWithError error: Error) {
    print("Failed to register for remote notifications: \(error.localizedDescription)")
}

private func sendTokenToServer(_ deviceToken: Data) {
    // Implement your server communication logic here
}

Mejor práctica: Llama a registerDeviceTokenForUninstall inmediatamente cuando se reciba el token para garantizar que el tracking de desinstalación esté habilitado desde la primera sesión de la app.


Formato de datos del token

Pasa el token del dispositivo APNs a Singular en su formato binario nativo tal como se recibe de Apple.

Importante: El token APNs son datos binarios (NSData/Data). Pásalo directamente a Singular sin conversión. Si tu app necesita convertir el token a una cadena hexadecimal para otros fines, mantén el objeto NSData original para Singular.

Ejemplo de formato hexadecimal: b0adf7c9730763f88e1a048e28c68a9f806ed032fb522debff5bfba010a9b052


Verificación y resolución de problemas

Verificar la implementación

Confirma que el tracking de desinstalación funciona correctamente.

  1. Revisar los logs: Verifica que el registro del token APNs aparezca en tus logs
  2. Probar la generación del token: Asegúrate de que los tokens se generen en el primer inicio de la app
  3. Monitorear el dashboard: Revisa el dashboard de Singular para ver los datos de tracking de desinstalación después de 24-48 horas
  4. Probar los permisos: Verifica que el aviso de autorización de notificaciones aparezca y funcione correctamente

Problemas comunes

  • No se genera el token: Verifica que la capability Push Notifications esté habilitada en Xcode y que los certificados APNs estén configurados en el portal de Apple Developer
  • El usuario rechazó los permisos: Implementa una lógica para gestionar correctamente el rechazo de permisos de notificación
  • Datos faltantes: Asegúrate de que los dispositivos ejecuten iOS 10.0 o superior y de que los usuarios hayan otorgado los permisos de notificación
  • Error de configuración: Confirma que el tracking de desinstalación esté habilitado en la configuración de la plataforma Singular
  • Limitaciones del simulador: Los tokens APNs no están disponibles en el simulador de iOS; prueba en dispositivos físicos

Recursos adicionales: Para obtener una resolución de problemas detallada, consulta la guía de configuración del tracking de desinstalación y la documentación de UserNotifications de Apple .