Hacer un seguimiento de los usuarios activos para las notificaciones push con Urban Airship
push-notification urbanairship.com (1)
Urban Airship comparte las siguientes dos opciones :
En cualquier caso, las aplicaciones deben esperar y manejar los tokens de dispositivos inactivos correctamente. Recomendamos que los desarrolladores:
- Registre el token del dispositivo cada vez que se abra la aplicación, como lo hace nuestra aplicación de muestra
- Utilice nuestra API de comentarios regularmente, almacene tokens de dispositivos inactivados en su propia base de datos y envíe registros cuando el token del dispositivo vuelva a estar activo.
Si realiza una llamada adicional a Urban Airship para verificar si el dispositivo existe y está activo, incluso entonces la ''lista de dispositivos activos'' puede no ser completamente precisa porque Urban Airship depende de las actualizaciones periódicas del Servicio de Comentarios de Apple:
Apple nos dice que la aplicación se ha desinstalado a través del servicio de comentarios, que revisamos periódicamente.
Además, recuerde lo que Apple ha declarado sobre la entrega de notificaciones push :
Importante : la entrega de notificaciones es un "mejor esfuerzo", no está garantizado. No está destinado a entregar datos a su aplicación, solo para notificar al usuario que hay nuevos datos disponibles.
Actualmente estamos implementando notificaciones push (para IOS solo por ahora), y estamos planeando usar Urban Airship. Queremos enviar un mensaje de inserción a un dispositivo si tienen nuestra aplicación instalada y activada, y enviar un mensaje de texto si no es así. Nuestros usuarios pagan por las notificaciones, por lo que queremos asegurarnos de que siempre reciban un mensaje de inserción o un mensaje de texto. Enviar los mensajes push funciona bien, pero estoy confundido acerca de cómo hacer un seguimiento de a quién podemos enviarle mensajes de inserción.
Hasta donde yo sé, la única forma de asegurarse realmente de que un usuario pueda recibir mensajes push es, antes de enviar un mensaje push, hacer una llamada adicional a la API urbana para verificar si el dispositivo existe y está activo. Preferiría no hacer 2 llamadas de API por cada mensaje de inserción, por lo que una alternativa podría ser hacer un seguimiento local de todos los dispositivos registrados en la aeronave urbana, y actualizar esa lista una vez por hora más o menos. Sin embargo, esto significaría que la "lista de dispositivos activos" no siempre es completamente precisa, y que tenemos que hacer un seguimiento de todos los dispositivos registrados, lo que se siente como volver a implementar una parte de la aeronave urbana.
¿Hay alguna otra (mejor) manera de hacer esto? Por lo que puedo ver, cuando envío un mensaje push a la aeronave urbana, la API siempre devuelve que se envió con éxito, independientemente de si un dispositivo está activo o no, o si existe.
No me puedo imaginar que soy el único con este problema. ¿Alguien tiene una mejor manera de resolverlo, o estoy atrapado con las 2 opciones que descubrí por mi cuenta?