Le notifiche push sono uno strumento di marketing fondamentale per chiunque disponga di un'app mobile.
È il modo migliore per comunicare con i tuoi utenti, inviando messaggi urgenti ai loro telefoni cellulari.
Un'app mobile può inviare a un utente una notifica push, che è un breve messaggio pop-up che appare sullo smartphone anche quando l'app non è aperta.
Questi avvisi possono includere promemoria, aggiornamenti, sconti e altro ancora.
Sono creati per catturare l'attenzione degli utenti. Titolo, messaggio, immagine e URL sono tutti possibili componenti di una notifica push. Anche emoji, loghi e altre cose possono farne parte.
I sistemi operativi come Apple OS e Google Android hanno diverse interfacce per le notifiche push.
Le notifiche push possono essere utilizzate per promuovere il coinvolgimento, aumentare l'utilizzo delle app, influenzare le conversioni e molto altro ancora.
Le opzioni sono davvero illimitate.
Le notifiche push per dispositivi mobili, note anche come notifiche push per dispositivi mobili, possono integrare l'utilizzo di canali come e-mail, SMS e notifiche push online con una serie di vantaggi speciali.
Riceverai una rapida descrizione del servizio di notifica in questo post e informazioni sul suo obiettivo, design di alto livello, caratteristiche speciali e altro ancora.
Obiettivo
Sviluppare un servizio di notifica in grado di distribuire in modo efficiente i messaggi da prodotto a utente attraverso una varietà di canali
Requisiti:
- API di invio: pubblica un endpoint autorizzato in modo che qualsiasi back-end e microservizio possa iniziare a fornire notifiche.
- Canali compatibili: supporto per l'invio di avvisi a qualsiasi canale che pubblica un'API, come e-mail, SMS e push.
- Le preferenze dell'utente: consentono agli utenti di selezionare le proprie preferenze utente per ciascun canale e notifica.
- Limiti per la conformità del servizio a valle: evita di avere il tuo email o servizio SMS limitato o interrotto.
- Scalabile: consente (teoricamente) un ridimensionamento orizzontale infinito.
Architettura di alto livello
Diciamo che il tuo codice dovrebbe avvisare qualcuno:
- L'endpoint POST /send viene invocato dal codice. Per ogni canale disponibile, la richiesta include l'ID utente del destinatario, il tipo di notifica e il suo contenuto.
- Il flusso di credenziali client OAuth2 viene utilizzato dall'endpoint /send per autenticare la richiesta.
- Le scelte di notifica dell'utente vengono quindi richieste dal database. Le preferenze mostrano se l'utente è iscritto o meno a un determinato canale e notifica.
- Dal database, leggerà le caratteristiche dell'utente come indirizzi e-mail e numeri di telefono.
- Questo endpoint creerà un oggetto messaggio che include caratteristiche utente, canali e contenuto specifico del canale. Tuttavia, non includerà i canali disattivati. Il messaggio viene quindi consegnato a un servizio fan out.
- I messaggi in arrivo vengono diffusi alle code dei lavori tramite il servizio fanout. Tuttavia, è attivo un filtro per ignorare le code dei lavori per i canali che non sono specificati nel messaggio.
- Ogni canale ha un processore e una coda di lavoro. Il processore assume l'attività e quindi chiede il servizio appropriato, come un'e-mail transazionale o un servizio SMS.
Principali elementi di architettura
POST/inviato
Potresti aver notato che solo l'ID utente e né l'indirizzo e-mail né il numero di telefono sono inclusi nella richiesta a questo punto finale. Ciò consente ai servizi di notifica di rimanere anonimi per i tuoi utenti.
Per garantire la scalabilità, l'end-point è posizionato dietro a bilanciamento del carico.
La tipica autenticazione rivolta all'utente non fornisce protezione per l'endpoint.
È necessario utilizzare un metodo di autenticazione distinto noto come flusso di credenziali client OAuth2 utilizzato per la comunicazione da server a server poiché il servizio che invia la richiesta è il software stesso.
La tua applicazione fornirà notifiche in molti luoghi diversi. Puoi utilizzare la funzione di invio quasi ovunque, ad esempio da una nuova base di codice o dal tuo flusso di lavoro di compilazione, implementandola come punto finale dietro un bilanciamento del carico, che garantisce che sia scalabile in modo indipendente.
PUT/preferenze utente
Utilizzare una coppia chiave/valore o un database NoSQL estremamente scalabile. Formattare i record come segue: CHIAVE: ID utente di esempio: ID notifica di esempio, VALUE: [“email”, “state: true”, “SMS”, “state: false”, channel: “email”, “email”, state : VERO
Se nei record sono presenti valori "falsi", l'end-point di trasmissione escluderà il canale corrispondente dal messaggio consegnato al fanout. Se non c'è un record per un canale, l'utente non ha espressamente indicato le proprie preferenze. Devi acconsentire all'impostazione predefinita in questo scenario.
L'utente può modificare i dati nel database delle preferenze utente utilizzando l'interfaccia utente e un normale endpoint protetto dalle procedure di autenticazione standard.
Gli utenti si irriteranno e saranno obbligati a designare i tuoi avvisi come spam o a metterli a tacere se non offri loro la possibilità di modificare le loro preferenze di notifica. Di conseguenza, la tua esperienza utente sarà ulteriormente danneggiata e i servizi di consegna di e-mail o SMS potrebbero sospendere il tuo account.
Fan fuori
Fanout copia un messaggio e lo distribuisce in posizioni diverse. Sono convenienti e molto scalabili. Usa SNS in AWS. Usa Pub/Sub in Azure e argomenti e abbonamenti in Google Cloud Platform.
Per impedire l'invio di messaggi inutili alle code di lavoro del canale escluso, è possibile configurare il filtraggio tra le code di fanout e di lavoro. Ad esempio, in AWS SNS, puoi specificare che la coda del lavoro di posta elettronica deve ricevere il messaggio fanout solo se ha il valore "email" nel campo "canali".
Anche se è possibile creare codice per inviare lo stesso messaggio alle code di lavoro richieste, il fanout è più efficiente e richiede meno codifica. Fanout offre anche la comodità di aggiungere e rimuovere le code, permettendoti di estendere e riorganizzare i tuoi canali.
Elaborazione del lavoro
I messaggi vengono archiviati in code in attesa di elaborazione da parte dei processori di processo. Sono anche convenienti e molto scalabili. I processori di processo sono parti di codice che elaborano i messaggi dalle code di processo. A seconda del volume dei messaggi nella coda, possono essere ridimensionati.
L'elaboratore di lavori dovrebbe effettuare una chiamata API al fornitore appropriato per consegnare l'avviso nel nostro scenario tramite un servizio di posta elettronica transazionale.
La maggior parte dei provider di posta elettronica, SMS e simili ha requisiti severi per la quantità e il calibro dei messaggi che invii. Inoltre, si desidera esaminarli e impostare a fondo le procedure adeguate. Ecco i nostri consigli su come evitare di essere chiusi da AWS SES.
È possibile definire un numero massimo di elaboratori di lavori per evitare il superamento dei limiti tariffari dei servizi di consegna.
Ulteriori miglioramenti
Puoi dare un'occhiata a un sacco di questi elementi.
- Hanno bisogno delle proprie API, tabelle e così via per avere un servizio di notifica in-app scalabile.
- Raccolta e visualizzazione del rapporto di apertura/clic
- Rimuovere il contenuto delle notifiche dal codice e lasciare che il tuo prodotto e il team di progettazione modifichino visivamente gli avvisi senza modificare il codice
- Senza modificare alcun codice, il tuo team può utilizzare la dashboard per attivare o disattivare le notifiche per determinati canali.
Vantaggi della notifica push
- Aumenta l'interazione con gli utenti: gli aggiornamenti e il materiale fresco manterranno i tuoi utenti interessati.
- Aumenta la visibilità della comunicazione: assicurati che i tuoi messaggi vengano ricevuti immediatamente, anche quando le persone non sono attive. Invia notifiche urgenti e offri agli utenti un'esperienza fluida.
- Mantieni la conservazione: utilizza le notifiche push chiaramente visibili per invitare i tuoi utenti a tornare. Puoi aumentare la fidelizzazione degli utenti e ridurre l'abbandono spingendo i clienti sul tuo sito Web e sulla tua app.
- Migliora le conversioni: creando campagne push su premi in-app, promozioni, sconti o altre offerte, puoi aumentare le vendite.
- Scala la tua azienda: il tuo approccio alla comunicazione deve scalare man mano che il tuo pubblico si espande. Man mano che la tua base di clienti si espande, le notifiche push sono un metodo efficace per rimanere in contatto con loro.
- Rendi l'esperienza utente connessa (UX): fornendo avvisi transazionali ai consumatori per tenerli informati e fornire un'esperienza multicanale fluida, puoi ridurre l'attrito durante il percorso del cliente.
Conclusione
In conclusione, abbiamo acquisito conoscenze sull'architettura di un servizio di notifica push scalabile. Abbiamo anche esaminato gli strumenti forniti da tutti i principali fornitori di servizi cloud in modo che tu possa basare le tue notifiche su questi.
Nonostante il fatto che ho fatto del mio meglio per fornirti una panoramica dell'architettura del sistema di notifica push, c'è molto di più dietro le quinte.
Spero sinceramente che troverai queste informazioni utili e le farai buon uso.
Lascia un Commento