As notificacións push son unha ferramenta de mercadotecnia vital para quen teña unha aplicación móbil.
É a mellor forma de comunicarse cos teus usuarios, enviando mensaxes urxentes aos seus teléfonos móbiles.
Unha aplicación móbil pode enviar a un usuario unha notificación push, que é unha breve mensaxe emerxente que aparece no seu teléfono intelixente aínda que a aplicación non estea aberta.
Estas alertas poden incluír recordatorios, actualizacións, descontos e moito máis.
Son creados para chamar a atención dos usuarios. O título, a mensaxe, a imaxe e o URL son todos os compoñentes posibles dunha notificación push. Tamén poden formar parte deles emojis, logotipos e outras cousas.
Os sistemas operativos como Apple OS e Google Android teñen diversas interfaces para notificacións push.
As notificacións push pódense usar para promover o compromiso, aumentar o uso das aplicacións, afectar ás conversións e moito máis.
As opcións son realmente ilimitadas.
As notificacións push para dispositivos móbiles, tamén coñecidas como notificacións push para dispositivos móbiles, poden complementar o teu uso de canles como correo electrónico, SMS e notificacións push en liña cunha serie de vantaxes especiais.
Recibirás unha descrición rápida do servizo de notificación nesta publicación e información sobre o seu obxectivo, deseño de alto nivel, funcións especiais e moito máis.
Obxectivo
Desenvolver un servizo de notificación que poida distribuír de forma eficiente mensaxes de produto a usuario a través dunha variedade de canles
requisitos:
- API de envío: publica un punto final autorizado para que calquera backend e microservizo poidan comezar a entregar notificacións.
- Canles compatibles: admite a entrega de alertas a calquera canle que publique unha API, como correo electrónico, mensaxe de texto e push.
- Preferencias do usuario: permite aos usuarios seleccionar as súas preferencias de usuario para cada canle e notificación.
- Límites para o cumprimento do servizo posterior: evita ter o teu correo electrónico ou servizo de SMS estrangulado ou detido.
- Escalable: permite (teoricamente) escala horizontal infinita.
Arquitectura de alto nivel
Digamos que o teu código debe notificar a alguén:
- O teu código invoca o punto final POST/send. Para cada canle dispoñible, a solicitude inclúe o ID de usuario do destinatario, o tipo de notificación e o seu contido.
- O fluxo de credenciais do cliente OAuth2 é usado polo punto final /send para autenticar a solicitude.
- As opcións de notificación do usuario son entón solicitadas desde a base de datos. As preferencias mostran se o usuario está ou non subscrito a unha determinada canle e notificación.
- Desde a base de datos, lerá as características do usuario como enderezos de correo electrónico e números de teléfono.
- Este punto final creará un obxecto de mensaxe que inclúa características do usuario, canles e contido específico da canle. Non obstante, non incluirá canles desactivadas. Despois, a mensaxe envíase a un servizo de fan out.
- As mensaxes entrantes difúndense ás filas de traballo a través do servizo de fanout. Non obstante, hai filtrado para ignorar as filas de traballo das canles que non se especifican na mensaxe.
- Cada canle ten un procesador e unha cola de traballo. O procesador asume a tarefa e despois solicita o servizo adecuado, como un correo electrónico transaccional ou un servizo de SMS.
Principais elementos da arquitectura
POST/enviado
É posible que teña notado que só o userId e nin o enderezo de correo electrónico nin o número de teléfono están incluídos na solicitude a este punto final. Isto permite que os servizos de notificación permanezan anónimos para os teus usuarios.
Para garantir a escalabilidade, o punto final colócase detrás de a equilibrador de carga.
A súa autenticación típica cara ao usuario non ofrece protección para o punto final.
Debes utilizar un método de autenticación distinto coñecido como fluxo de credenciais de cliente OAuth2 usado para a comunicación de servidor a servidor xa que o servizo que envía a solicitude é o propio software.
A túa aplicación proporcionará notificacións en moitos lugares diferentes. Podes utilizar a función de envío case en calquera lugar, como desde unha nova base de código ou o teu fluxo de traballo de compilación, implementándoa como punto final detrás dun equilibrador de carga, o que garante que sexa escalable de forma independente.
PUT/preferencias de usuario
Use un par clave/valor ou base de datos NoSQL que sexa extremadamente escalable. Formatee os rexistros do seguinte xeito: KEY: ID de usuario de mostra: ID de notificación de mostra, VALOR: [“correo electrónico”, “estado: verdadeiro”, “SMS”, “estado: falso”, canle: “correo electrónico”, “correo electrónico”, estado : verdadeiro”]
Se hai valores "falsos" nos rexistros, o punto final de transmisión excluirá a canle correspondente da mensaxe entregada ao fanout. Se non existe un rexistro para unha canle, o usuario non indicou expresamente as súas preferencias. Debes consentir o predeterminado neste escenario.
O usuario pode modificar os datos da base de datos de preferencias de usuario mediante a súa IU e un punto final normal protexido polos seus procedementos de autenticación estándar.
Os usuarios irritaranse e veranse obrigados a designar as túas alertas como spam ou silencialas se non lles ofreces a opción de modificar as súas preferencias de notificación. Como resultado, a túa experiencia de usuario verase prexudicada aínda máis e os servizos de envío de correo electrónico ou SMS poderían suspender a túa conta.
Fan Out
Fanout copia unha mensaxe e distribúea en diferentes lugares. Son accesibles e moi escalables. Use SNS en AWS. Use Pub/Sub en Azure e temas e subscricións en Google Cloud Platform.
Para evitar o envío de mensaxes inútiles ás filas de traballo de canles excluídas, podes configurar o filtrado entre as filas de traballo e as de fanout. Por exemplo, en AWS SNS, pode especificar que a cola de traballo de correo electrónico só debe recibir a mensaxe de fanout se ten o valor "correo electrónico" no campo "canles".
Aínda que puideses crear código para enviar a mesma mensaxe ás filas de traballo necesarias, o fanout é máis eficiente e require menos codificación. Fanout tamén ofrece a comodidade de engadir e eliminar filas, o que che permite ampliar e reorganizar as túas canles.
Tramitación de traballos
As mensaxes gárdanse en filas pendentes de procesamento polos seus procesadores de traballo. Tamén son accesibles e moi escalables. Os procesadores de traballos son pezas de código que procesan as mensaxes das filas de traballo. Dependendo do volume de mensaxes na cola, poden escalar.
O procesador do traballo debe facer unha chamada API ao provedor axeitado para entregar o aviso no noso escenario a través dun servizo de correo electrónico transaccional.
A maioría dos provedores de correo electrónico, SMS e mensaxes similares teñen requisitos estritos para a cantidade e o calibre das mensaxes que envía. Ademais, quere examinalos e configurar os procedementos axeitados a fondo. Estes son os nosos consellos sobre como evitar que se rescinda de AWS SES.
Pode definir un número máximo de procesadores de traballos para evitar que se superen os límites tarifarios dos servizos de entrega.
Outras melloras
Podes botar unha ollada a unha morea destes elementos.
- Necesitan as súas propias API, táboas, etc. para ter un servizo escalable de notificacións na aplicación.
- Reunir e mostrar o informe de apertura/clic
- Eliminar o contido das notificacións do código e deixar que o teu produto e equipo de deseño modifiquen visualmente as alertas sen que cambie o código
- Sen cambiar ningún código, o teu equipo pode usar o panel de control para activar ou desactivar as notificacións de determinadas canles.
Beneficios da notificación push
- Impulsa a interacción do usuario: as actualizacións e o material novo manterán os teus usuarios interesados.
- Aumenta a visibilidade da comunicación: asegúrate de que as túas mensaxes se reciban inmediatamente, aínda que a xente non estea activa. Envía notificacións urxentes e proporciona aos usuarios unha experiencia fluida.
- Manter a retención: use notificacións push que sexan claramente visibles para instar os usuarios a que volvan. Podes aumentar a retención de usuarios e reducir o abandono facendo que os clientes volvan ao teu sitio web e aplicación.
- Mellora as conversións: ao crear campañas push en torno a premios, promocións, descontos ou outras ofertas integradas na aplicación, podes aumentar as vendas.
- Escala a túa empresa: o teu enfoque de comunicación debe escalar a medida que o teu público se expande. A medida que se amplía a súa base de clientes, as notificacións push son un método eficaz para manterse en contacto con eles.
- Fai que a experiencia do usuario esté conectada (UX): ao proporcionar alertas transaccionais aos consumidores para mantelos informados e ofrecer unha experiencia entre canles fluida, podes reducir a fricción durante a viaxe do cliente.
Conclusión
En conclusión, adquirimos coñecementos sobre a arquitectura dun servizo de notificación push escalable. Tamén analizamos as ferramentas que proporcionan todos os principais provedores de servizos na nube para que poida basear as súas notificacións nestas.
A pesar de que tentei o mellor posible para ofrecerche unha visión xeral da arquitectura do sistema de notificacións push, hai moito máis entre bastidores.
Espero sinceramente que esta información sexa útil e que a faga un bo uso.
Deixe unha resposta