SDK de Cordova - Seguimiento de la desinstalación

Documento

Seguimiento de desinstalaciones

Realiza un seguimiento de las desinstalaciones de apps para medir la retención de usuarios y optimizar las campañas de reenganche integrando servicios de notificaciones push con Singular SDK.

Importante: Google dejó obsoletas las API de GCM en abril de 2018. Utilice Firebase Cloud Messaging (FCM) para todas las implementaciones de seguimiento de desinstalación de Android.


Descripción general

Cómo funciona el seguimiento de desinstalación

El seguimiento de desinstalación monitorea las eliminaciones de apps registrando tokens de notificación push con Singular. Cuando los dispositivos dejan de responder a las notificaciones push, Singular identifica la aplicación como desinstalada.

  • Android: Utiliza tokens de Firebase Cloud Messaging (FCM) para detectar desinstalaciones.
  • iOS: Utiliza tokens del servicio de notificaciones push de Apple (APNs) para detectar desinstalaciones
  • Precisión de los datos: Proporciona información sobre la retención y el compromiso de los usuarios a lo largo del tiempo

Seguimiento de desinstalaciones de Android

Requisitos previos

Antes de implementar el seguimiento de desinstalaciones de Android, configure su aplicación en la plataforma Singular siguiendo la Guía de configuración del seguimiento de desinstalaciones de Android.

Requisitos:

  • Versión de Android: Los dispositivos deben ejecutar Android 4.1 (API 16) o superior.
  • Servicios de Google Play: Los dispositivos deben tener instalada la aplicación Google Play Store
  • Configuración de Firebase: Firebase Cloud Messaging debe estar configurado en tu proyecto
  • Permisos: Android 13+ requiere permiso explícito de notificación

Pasos de implementación

Paso 1: Instalar plugin Firebase

Añada un plugin Firebase a su proyecto Cordova para soportar notificaciones push. Se recomienda el plugin cordova-plugin-firebase-messaging.

bash
cordova plugin add cordova-plugin-firebase-messaging

Para obtener instrucciones detalladas de configuración de Firebase, consulte la documentación del complemento.


Paso 2: Configurar Firebase

Añada los archivos de configuración de Firebase a su proyecto Cordova para Android.

  1. Registre su aplicación Android en su proyecto Firebase Console
  2. Descarga google-services.json y colócalo en la raíz de tu proyecto o en platforms/android/app/
  3. Verifica que las dependencias de mensajería Firebase se añaden a tu proyecto durante la instalación del plugin

Paso 3: Solicitar permisos de notificación

Solicita permisos de notificación a los usuarios (requerido para Android 13+) antes de recuperar el token FCM.

JavaScript
document.addEventListener('deviceready', initializeApp, false);

function initializeApp() {
  if (device.platform === 'Android') {
    // Request notification permission (Android 13+)
    requestAndroidNotificationPermission();
  }
}

function requestAndroidNotificationPermission() {
  // Check Android version
  if (device.version >= 13) {
    cordova.plugins.permissions.requestPermission(
      cordova.plugins.permissions.POST_NOTIFICATIONS,
      function(status) {
        if (status.hasPermission) {
          console.log('Notification permission granted');
          retrieveAndRegisterFCMToken();
        } else {
          console.warn('Notification permission denied - uninstall tracking unavailable');
        }
      },
      function(error) {
        console.error('Permission request error:', error);
      }
    );
  } else {
    // Android 12 and below automatically have permission
    retrieveAndRegisterFCMToken();
  }
}

Nota: Para solicitar permisos, instale el complemento cordova-plugin-android-permissions:

cordova plugin add cordova-plugin-android-permissions

Paso 4: Recuperar y registrar el token FCM

Obtenga el token de dispositivo FCM y regístrelo en Singular mediante el método setUninstallToken() una vez concedidos los permisos.

JavaScript
function retrieveAndRegisterFCMToken() {
  // Get FCM token
  cordova.plugins.firebase.messaging.getToken().then(function(token) {
    if (token) {
      console.log('FCM token retrieved:', token);
      
      // Register token with Singular for uninstall tracking
      cordova.plugins.SingularCordovaSdk.setUninstallToken(token);
      
      console.log('FCM token registered with Singular');
    } else {
      console.warn('No FCM token available');
    }
  }).catch(function(error) {
    console.error('Error retrieving FCM token:', error);
  });
}

Para obtener la documentación completa del método, consulte la referencia setUninstallToken.


Paso 5: Gestionar la actualización del token

Actualice el token FCM con Singular cada vez que se actualice para mantener un seguimiento preciso de la desinstalación.

JavaScript
document.addEventListener('deviceready', setupTokenRefreshListener, false);

function setupTokenRefreshListener() {
  if (device.platform === 'Android') {
    // Listen for FCM token refresh events
    cordova.plugins.firebase.messaging.onTokenRefresh(function(token) {
      console.log('FCM token refreshed:', token);
      
      // Update Singular with new token
      cordova.plugins.SingularCordovaSdk.setUninstallToken(token);
    });
  }
}

Práctica recomendada: Los tokens FCM pueden actualizarse en cualquier momento (actualizaciones de aplicaciones, restauración de dispositivos, etc.). Suscríbase siempre a los eventos de actualización del token para mantener Singular actualizado con el token más reciente.


Seguimiento de la desinstalación de iOS

Requisitos previos

Configure su aplicación iOS en la plataforma Singular siguiendo la Guía de configuración del seguimiento de desinstalaciones de iOS.

El seguimiento de desinstalaciones en iOS utiliza la tecnología del servicio de notificaciones push de Apple (APNs). Si su aplicación no es compatible con las notificaciones push, consulte la guía de Apple para registrar su aplicación con APNs.


Pasos de implementación

Paso 1: Solicitar autorización de notificaciones de iOS

Solicita permisos de notificación al usuario y recupera el token de dispositivo APNS.

JavaScript
document.addEventListener('deviceready', initializeIOSTracking, false);

function initializeIOSTracking() {
  if (device.platform === 'iOS') {
    requestIOSNotificationPermission();
  }
}

function requestIOSNotificationPermission() {
  // Request iOS notification authorization
  cordova.plugins.firebase.messaging.requestPermission({
    forceShow: true
  }).then(function(hasPermission) {
    if (hasPermission) {
      console.log('iOS notification permission granted');
      retrieveAndRegisterAPNSToken();
    } else {
      console.warn('iOS notification permission denied - uninstall tracking unavailable');
    }
  }).catch(function(error) {
    console.error('Error requesting iOS notification permission:', error);
  });
}

Paso 2: Recuperar y registrar el token APNS

Obtenga el token de dispositivo APNS y regístrelo en Singular mediante el método setUninstallToken() una vez concedida la autorización.

JavaScript
function retrieveAndRegisterAPNSToken() {
  // Get APNS token (iOS)
  cordova.plugins.firebase.messaging.getToken().then(function(token) {
    if (token) {
      console.log('APNS token retrieved:', token);
      
      // Register token with Singular for uninstall tracking
      cordova.plugins.SingularCordovaSdk.setUninstallToken(token);
      
      console.log('APNS token registered with Singular');
    } else {
      console.warn('No APNS token available');
    }
  }).catch(function(error) {
    console.error('Error retrieving APNS token:', error);
  });
}

Formato del token: El token APNS recuperado de Firebase Messaging ya tiene el formato correcto para Singular. No es necesaria ninguna conversión adicional.


Paso 3: Actualización del token (iOS)

Actualice el token APNS con Singular si cambia durante el ciclo de vida de la aplicación.

JavaScript
document.addEventListener('deviceready', setupIOSTokenRefreshListener, false);

function setupIOSTokenRefreshListener() {
  if (device.platform === 'iOS') {
    // Listen for APNS token refresh events
    cordova.plugins.firebase.messaging.onTokenRefresh(function(token) {
      console.log('APNS token refreshed:', token);
      
      // Update Singular with new token
      cordova.plugins.SingularCordovaSdk.setUninstallToken(token);
    });
  }
}

Implementación completa multiplataforma

Configuración unificada del seguimiento de desinstalaciones

Implemente el seguimiento de desinstalación tanto para plataformas Android como iOS con el manejo de errores adecuado y la lógica de actualización de token.

JavaScript
document.addEventListener('deviceready', initializeUninstallTracking, false);

function initializeUninstallTracking() {
  console.log('Initializing uninstall tracking for:', device.platform);
  
  // Setup token refresh listener for both platforms
  setupTokenRefreshListener();
  
  // Platform-specific initialization
  if (device.platform === 'Android') {
    setupAndroidUninstallTracking();
  } else if (device.platform === 'iOS') {
    setupIOSUninstallTracking();
  }
}

function setupAndroidUninstallTracking() {
  // Check Android version for permission requirements
  if (device.version >= 13) {
    // Request notification permission for Android 13+
    cordova.plugins.permissions.requestPermission(
      cordova.plugins.permissions.POST_NOTIFICATIONS,
      function(status) {
        if (status.hasPermission) {
          retrieveAndRegisterToken();
        } else {
          console.warn('Android notification permission denied');
        }
      },
      function(error) {
        console.error('Permission request error:', error);
      }
    );
  } else {
    // Android 12 and below - permission not required
    retrieveAndRegisterToken();
  }
}

function setupIOSUninstallTracking() {
  // Request iOS notification authorization
  cordova.plugins.firebase.messaging.requestPermission({
    forceShow: true
  }).then(function(hasPermission) {
    if (hasPermission) {
      retrieveAndRegisterToken();
    } else {
      console.warn('iOS notification permission denied');
    }
  }).catch(function(error) {
    console.error('Error requesting iOS permission:', error);
  });
}

function retrieveAndRegisterToken() {
  // Get push notification token (FCM for Android, APNS for iOS)
  cordova.plugins.firebase.messaging.getToken()
    .then(function(token) {
      if (token) {
        console.log('Token retrieved for ' + device.platform + ':', token);
        
        // Register token with Singular
        cordova.plugins.SingularCordovaSdk.setUninstallToken(token);
        
        console.log('Token registered with Singular successfully');
      } else {
        console.warn('No token available for ' + device.platform);
      }
    })
    .catch(function(error) {
      console.error('Error retrieving token:', error);
    });
}

function setupTokenRefreshListener() {
  // Listen for token refresh events on both platforms
  cordova.plugins.firebase.messaging.onTokenRefresh(function(token) {
    console.log('Token refreshed for ' + device.platform + ':', token);
    
    // Update Singular with new token
    cordova.plugins.SingularCordovaSdk.setUninstallToken(token);
  });
}

Verificación y resolución de problemas

Verificación de la implementación

Confirme que el seguimiento de desinstalación funciona correctamente antes de implementarlo en producción.

  1. Compruebe los registros: Compruebe que el registro de tokens aparece en los registros de la consola con el formato correcto.
  2. Pruebe la generación de tokens: Asegúrese de que los tokens se generan en el primer lanzamiento de la aplicación después de conceder los permisos.
  3. Supervise el panel de control: Compruebe los datos de seguimiento de desinstalación del panel de Singular transcurridas 24-48 horas.
  4. Prueba de actualización de tokens: Borre los datos de la aplicación y compruebe que los tokens se actualizan correctamente al reiniciar la aplicación.

Problemas comunes

  • Token no generado: Compruebe que el plugin Firebase está correctamente instalado y que Firebase está configurado en su proyecto Cordova.
  • Permiso denegado: Compruebe que los usuarios han concedido permisos de notificación (necesario para Android 13+ y todas las versiones de iOS)
  • Token no actualizado: Asegúrese de que se ha suscrito al evento onTokenRefresh para ambas plataformas
  • Faltan datos: Confirme que los dispositivos cumplen los requisitos de la plataforma (Android 4.1+ con Google Play Services, iOS compatible con APNs)
  • Error de configuración: Verifica que el seguimiento de desinstalación está habilitado en la configuración de la plataforma Singular para tu app
  • Configuración de Firebase: Para Android, asegúrese de que google-services.json está en la ubicación correcta. Para iOS, asegúrese de que GoogleService-Info.plist se añade al proyecto Xcode.

Buenas prácticas

  • Solicite los permisos con antelación: Solicite permisos de notificación durante la incorporación o cuando se establezca el valor del usuario.
  • Gestione los rechazos con elegancia: Proporcione mensajes claros cuando se denieguen los permisos y explique el beneficio a los usuarios
  • Pruebe ambas plataformas: Verifique que la implementación funciona tanto en Android como en iOS con diferentes versiones del sistema operativo
  • Supervisar la actualización de tokens: Implementa siempre escuchas de actualización de tokens para gestionar las actualizaciones de tokens automáticamente.
  • Registro para depuración: Active el registro detallado durante el desarrollo para realizar un seguimiento de la generación y el registro de tokens.