Puede detectar las desinstalaciones de aplicaciones mediante el envío de notificaciones automáticas “silenciosas”. Las notificaciones automáticas silenciosas son aquellas notificaciones que no se procesan en el dispositivo del usuario. Puede enviar una notificación push silenciosa todos los días a todos los dispositivos con su aplicación para rastrear las desinstalaciones.
{
"registration_ids":[ "token-fcm"],
"data": {
"type": "track-uninstall"
}
}
Revisemos cómo funciona normalmente el seguimiento de desinstalación en cada plataforma.
Detectar desinstalaciones de Android
- Envíe una notificación push silenciosa al servidor GCM (Google Cloud Messaging). Mantenga la carga útil de la notificación push vacía, ya que no desea que el mensaje vacío aparezca en el dispositivo del usuario.
- El servidor GCM enviará un mensaje o consultará el dispositivo.
- El cliente de GCM recibirá el mensaje y consultará al administrador de paquetes si hay receptores de transmisión configurados para recibirlo.
- Este mensaje devuelve una bandera falsa.
- El cliente de GCM luego informará al servidor de GCM que la aplicación se ha desinstalado.
- El GCM devolverá un
NotRegistered
error ” ” que indica que la aplicación se ha desinstalado.
Detectar desinstalaciones de iOS
- Detectar desinstalaciones en iOS es mucho más simple, ya que los APN (servicio de notificaciones push de Apple) tienen un servicio de comentarios donde Apple informa cualquier token de dispositivo que ya no está activo en el dispositivo del usuario.
- Envíe una notificación push en blanco a los APN manteniendo la carga útil vacía.
- El servicio de comentarios de APN le permite descubrir tokens de dispositivos que ya no están activos.
- Como desarrollador, sondee el servicio de comentarios de APN y detecte qué dispositivos no son válidos.
- Una vez detectados, estos usuarios se pueden marcar como desinstalados.
Formas alternativas de rastrear las desinstalaciones de aplicaciones
Para Android
Enviar un ping diario desde el dispositivo
En este caso, ejecutaría un servicio en el dispositivo y haría ping al servidor una vez al día (o cada hora, si es muy agresivo) para confirmar que la aplicación todavía existe en el dispositivo. Esta es una solución que funciona pero no es elegante.
Esta es la razón por la que no debería optar por este enfoque:
- Ejecutar un servicio de forma permanente en segundo plano acaparará la memoria y los usuarios a los que no les gustan las aplicaciones que se ejecutan en segundo plano innecesariamente podrían desinstalar la aplicación.
- Los usuarios se sienten más cómodos con los teléfonos inteligentes y ahora usan administradores de tareas inteligentes que pueden cancelar su servicio o incluso no permitir que se ejecute una vez que se dan cuenta de que no está afectando directamente su oferta principal. Como ejemplo, si se trata de una aplicación de calculadora, eliminar el servicio de ping de desinstalación en segundo plano no tiene ningún efecto sobre la capacidad de la aplicación.
- Otro problema que podría desanimar a ciertos usuarios es que el envío continuo de datos consumirá sus planes de datos.
- La mayoría de los dispositivos de gama baja que tienen poca memoria eliminarán las aplicaciones para dar prioridad a las aplicaciones de primer plano y los servicios prioritarios que se están ejecutando.
Usando la transmisión ACTION_PACKAGE_REMOVED
Puede registrar un receptor que se invocará cuando se desinstale la aplicación, pero lamentablemente la intención ACTION_PACKAGE_REMOVED se enviará a todos los receptores excepto a su propio receptor de transmisión 🙁
Lea cómo funciona
Usar FCM o GCM
- El FCM enviará un mensaje de error que dice ”
NotRegistered
” cuando se dé cuenta de que la aplicación está desinstalada; tenga en cuenta que esto puede demorar algunas horas después de la desinstalación real; por lo general, esto sucede dentro de las primeras 4 horas. - Tenga en cuenta: siempre regístrese para obtener un token una vez; hacerlo dos veces provocará un comportamiento inesperado.
- Si ha registrado el dispositivo con el mismo ID de remitente y usa la clave de servidor correspondiente para enviar los mensajes, es raro que vea algún problema relacionado con este enfoque en el seguimiento de las desinstalaciones. Sin embargo, si no usa el ID del remitente correspondiente a su clave de servidor GCM, puede hacer que GCM informe “
NotRegistered
” y esto puede llevar a deducir incorrectamente que el usuario ha desinstalado. - Nota: la práctica general para registrarse para tokens es el primer lanzamiento de la aplicación y luego cada vez que actualiza la aplicación.
para iOS
Enviar un ping diario desde el dispositivo
En iOS, su aplicación puede, de hecho, ejecutarse en segundo plano periódicamente. Sin embargo, los casos para esto son la frecuencia de uso de la aplicación y cuándo se está cargando el teléfono. Allí, esto no es realmente una opción viable. También debe tener un caso de uso legítimo: el seguimiento de desinstalación probablemente no funcione bien con el proceso de revisión de la aplicación de Apple.
Enviar una notificación silenciosa de iOS con content-available
bandera y tener el modo de fondo habilitado. En este modo, puede comunicarse con su servidor para hacer un “ping”, sin embargo, no se garantiza que su aplicación se despierte.
Enviar notificaciones
Al enviar notificaciones automáticas mediante HTTP/2, recibirá una respuesta. Error Code 410
Esto indicaría que el usuario desinstaló la aplicación.
Otros matices relacionados con el seguimiento de las desinstalaciones
- ¿Qué sucede si el dispositivo del usuario está apagado o si no se puede localizar al usuario cuando desinstala la aplicación?
Si GCM ya sabe que la aplicación está desinstalada, devolverá “NotRegistered
. De lo contrario, pondrá en cola el mensaje para su entrega. Cuando el dispositivo vuelva a estar en línea y la aplicación aún esté instalada, se entregará el mensaje. De lo contrario, si se desinstala la aplicación, GCM ahora marcará este token para su eliminación y las notificaciones posteriores para este dispositivo recibirán laNotRegistered
respuesta ” “. - ¿Sabemos si se reinstalan?
Almacene su propio UID persistente generado en el llavero de iOS o en la copia de seguridad del valor de la clave de Android, luego utilícelo para verificar cuándo el usuario reinstala la aplicación.