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.
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.
- Registre su aplicación Android en su proyecto Firebase Console
-
Descarga
google-services.jsony colócalo en la raíz de tu proyecto o enplatforms/android/app/ - 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.
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.
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.
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.
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.
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.
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.
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.
- Compruebe los registros: Compruebe que el registro de tokens aparece en los registros de la consola con el formato correcto.
- 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.
- Supervise el panel de control: Compruebe los datos de seguimiento de desinstalación del panel de Singular transcurridas 24-48 horas.
- 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
onTokenRefreshpara 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.jsonestá en la ubicación correcta. Para iOS, asegúrese de queGoogleService-Info.plistse añade al proyecto Xcode.
Recursos adicionales: Para obtener información detallada sobre la solución de problemas, consulta la Guía de configuración del seguimiento de desinstalaciones de Android, la Guía de configuración del seguimiento de desinstalaciones de iOS y la Documentación del complemento de mensajería de Firebase.
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.