Las notificaciones automáticas son una herramienta de marketing vital para cualquiera que tenga una aplicación móvil.
Es la mejor forma de comunicarte con tus usuarios, enviándoles mensajes urgentes a sus teléfonos móviles.
Una aplicación móvil puede enviar a un usuario una notificación automática, que es un breve mensaje emergente que aparece en su teléfono inteligente incluso cuando la aplicación no está abierta.
Estas alertas pueden incluir recordatorios, actualizaciones, descuentos y más.
Están creados para captar la atención de los usuarios. El título, el mensaje, la imagen y la URL son todos los componentes posibles de una notificación push. Emojis, logos y otras cosas también pueden ser parte de ellos.
Los sistemas operativos como Apple OS y Google Android tienen diversas interfaces para notificaciones automáticas.
Las notificaciones automáticas se pueden usar para promover la participación, aumentar el uso de la aplicación, afectar las conversiones y mucho más.
Las opciones son realmente ilimitadas.
Las notificaciones automáticas para dispositivos móviles, también conocidas como notificaciones automáticas para dispositivos móviles, pueden complementar su uso de canales como correo electrónico, SMS y notificaciones automáticas en línea con una serie de ventajas especiales.
Recibirá una breve descripción del servicio de notificación en esta publicación e información sobre su objetivo, diseño de alto nivel, características especiales y más.
Objetivo
Desarrollar un servicio de notificación que pueda distribuir de manera eficiente mensajes de producto a usuario a través de una variedad de canales
Requisitos:
- API de envío: publique un punto final autorizado para que cualquier backend y microservicio puedan comenzar a enviar notificaciones.
- Canales compatibles: admite la entrega de alertas a cualquier canal que publique una API, como correo electrónico, mensaje de texto y push.
- Las preferencias del usuario: permite que los usuarios seleccionen sus preferencias de usuario para cada canal y notificación.
- Límites para el cumplimiento del servicio aguas abajo: Evite que su email o servicio de SMS limitado o detenido.
- Escalable: permite (teóricamente) un escalado horizontal infinito.
Arquitectura de alto nivel
Digamos que se supone que su código debe notificar a alguien:
- Su código invoca el punto final POST /send. Para cada canal disponible, la solicitud incluye el ID de usuario del destinatario, el tipo de notificación y su contenido.
- El punto final /send utiliza el flujo de credenciales de cliente de OAuth2 para autenticar la solicitud.
- A continuación, se solicitan las opciones de notificación del usuario desde la base de datos. Las preferencias muestran si el usuario está suscrito o no a un determinado canal y notificación.
- De la base de datos, leerá las características de los usuarios, como direcciones de correo electrónico y números de teléfono.
- Este punto final creará un objeto de mensaje que incluye las características del usuario, los canales y el contenido específico del canal. Sin embargo, no incluirá los canales desactivados. A continuación, el mensaje se envía a un servicio de distribución.
- Los mensajes entrantes se distribuyen a las colas de trabajos a través del servicio fanout. Sin embargo, existe un filtrado para descartar las colas de trabajo de los canales que no se especifican en el mensaje.
- Cada canal tiene un procesador y una cola de trabajo. El procesador toma la tarea y luego solicita el servicio adecuado, como un correo electrónico transaccional o un servicio de SMS.
Principales elementos de la arquitectura
POST/enviado
Es muy posible que haya notado que solo el ID de usuario y ni la dirección de correo electrónico ni el número de teléfono se incluyen en la solicitud a este punto final. Esto permite que los servicios de notificación permanezcan anónimos para sus usuarios.
Para garantizar la escalabilidad, el punto final se coloca detrás de un equilibrador de carga.
Su autenticación típica de cara al usuario no brinda protección para el punto final.
Debe utilizar un método de autenticación distinto conocido como flujo de credenciales de cliente de OAuth2 que se utiliza para la comunicación de servidor a servidor, ya que el servicio que envía la solicitud es el propio software.
Su aplicación proporcionará notificaciones en muchos lugares diferentes. Puede utilizar la función de envío casi en cualquier lugar, como desde una nueva base de código o su flujo de trabajo de compilación, al implementarla como un punto final detrás de un balanceador de carga, lo que garantiza que es escalable de forma independiente.
PUT/preferencias de usuario
Utilice un par clave/valor o una base de datos NoSQL que sea extremadamente escalable. Formatee los registros de la siguiente manera: CLAVE: ID de usuario de muestra: ID de notificación de muestra, VALOR: [“correo electrónico”, “estado: verdadero”, “SMS”, “estado: falso”, canal: “correo electrónico”, “correo electrónico”, estado : verdadero
Si hay valores "falsos" en los registros, el punto final de transmisión excluirá el canal correspondiente del mensaje entregado al fanout. Si no existe un registro para un canal, el usuario no ha indicado expresamente sus preferencias. Debe aceptar el incumplimiento en este escenario.
El usuario puede modificar los datos en la base de datos de preferencias del usuario usando su interfaz de usuario y un punto final regular que está protegido por sus procedimientos de autenticación estándar.
Los usuarios se irritarán y se verán obligados a designar sus alertas como spam o silenciarlas si no les brinda la opción de modificar sus preferencias de notificación. Como resultado, su experiencia de usuario se verá más perjudicada y los servicios de envío de correo electrónico o SMS podrían suspender su cuenta.
Abanico
Fanout copia un mensaje y lo distribuye a diferentes ubicaciones. Son asequibles y muy escalables. Utilice SNS en AWS. Use Pub/Sub en Azure y temas y suscripciones en Google Cloud Platform.
Para evitar el envío de mensajes inútiles a colas de trabajos de canales excluidos, puede configurar el filtrado entre las colas de distribución y de trabajo. Por ejemplo, en AWS SNS, puede especificar que la cola de trabajos de correo electrónico solo debe recibir el mensaje de despliegue si tiene el valor "correo electrónico" en el campo "canales".
Incluso si pudiera crear un código para enviar el mismo mensaje a las colas de trabajo requeridas, el fanout es más eficiente y requiere menos codificación. Fanout también ofrece la comodidad de agregar y eliminar colas, lo que le permite ampliar y reorganizar sus canales.
Procesamiento de trabajos
Los mensajes se almacenan en colas pendientes de procesamiento por parte de sus procesadores de trabajos. También son asequibles y muy escalables. Los procesadores de trabajos son fragmentos de código que procesan mensajes de las colas de trabajos. Dependiendo del volumen de mensajes en la cola, pueden escalar.
El procesador de trabajos debe realizar una llamada API al proveedor adecuado para entregar el aviso en nuestro escenario a través de un servicio de correo electrónico transaccional.
La mayoría de los proveedores de envío de mensajes de correo electrónico, SMS y similares tienen requisitos estrictos para la cantidad y el calibre de los mensajes que envía. Además, desea examinar estos y establecer los procedimientos adecuados a fondo. Este es nuestro consejo sobre cómo evitar que lo despidan de AWS SES.
Puede definir una cantidad máxima de procesadores de trabajos para evitar exceder los límites de tarifas de los servicios de entrega.
Futuras mejoras
Puede echar un vistazo a un montón de estos artículos.
- Necesitan sus propias API, tablas, etc. para tener un servicio de notificación en la aplicación escalable.
- Recopilación y visualización del informe de apertura/clic
- Eliminar el contenido de las notificaciones del código y permitir que su producto y equipo de diseño modifiquen las alertas visualmente en lugar de cambiar el código
- Sin cambiar ningún código, su equipo puede usar el tablero para activar o desactivar las notificaciones para ciertos canales.
Beneficios de la notificación Push
- Impulse la interacción del usuario: las actualizaciones y el material nuevo mantendrán a sus usuarios interesados.
- Aumente la visibilidad de la comunicación: asegúrese de que sus mensajes se reciban de inmediato, incluso cuando las personas no estén activas. Envíe notificaciones urgentes y brinde a los usuarios una experiencia fluida.
- Mantener la retención: use notificaciones automáticas que sean claramente visibles para instar a sus usuarios a que regresen. Puede aumentar la retención de usuarios y reducir la rotación al hacer que los clientes regresen a su sitio web y aplicación.
- Mejore las conversiones: mediante la creación de campañas push en torno a premios, promociones, descuentos u otras ofertas en la aplicación, puede aumentar las ventas.
- Escale su empresa: su enfoque de comunicación debe escalar a medida que se expande su audiencia. A medida que su base de clientes se expande, las notificaciones automáticas son un método efectivo para mantenerse en contacto con ellos.
- Haga que la experiencia del usuario esté conectada (UX): al proporcionar alertas transaccionales a los consumidores para mantenerlos informados y brindar una experiencia fluida entre canales, puede reducir la fricción a lo largo del recorrido del cliente.
Conclusión
En conclusión, adquirimos conocimiento sobre la arquitectura de un servicio de notificaciones push escalable. También analizamos las herramientas que proporcionan los principales proveedores de servicios en la nube para que pueda basar sus notificaciones en ellas.
A pesar de que hice todo lo posible para brindarle una descripción general de la arquitectura del sistema de notificaciones automáticas, hay mucho más detrás de escena.
Espero sinceramente que esta información le resulte útil y le dé un buen uso.
Deje un comentario