Notificările push sunt un instrument de marketing vital pentru oricine are o aplicație mobilă.
Este cea mai bună modalitate de a comunica cu utilizatorii dvs., trimițând mesaje urgente pe telefoanele lor mobile.
O aplicație mobilă poate trimite unui utilizator o notificare push, care este un scurt mesaj pop-up care apare pe smartphone-ul său chiar și atunci când aplicația nu este deschisă.
Aceste alerte pot include mementouri, actualizări, reduceri și multe altele.
Sunt create pentru a atrage privirile utilizatorilor. Titlul, mesajul, imaginea și adresa URL sunt toate componentele posibile ale unei notificări push. Emoji-urile, siglele și alte lucruri pot face, de asemenea, parte din ele.
Sistemele de operare precum Apple OS și Google Android au interfețe diverse pentru notificări push.
Notificările push pot fi folosite pentru a promova implicarea, pentru a stimula utilizarea aplicației, pentru a afecta conversiile și multe altele.
Opțiunile sunt cu adevărat nelimitate.
Notificările push pentru dispozitive mobile, cunoscute și sub denumirea de notificări push pentru dispozitivele mobile, pot completa utilizarea canalelor precum e-mailul, SMS-urile și notificările push online, cu o serie de avantaje speciale.
Veți primi o descriere rapidă a serviciului de notificare în această postare și informații despre obiectivul său, designul la nivel înalt, caracteristicile speciale și multe altele.
Obiectiv
Pentru a dezvolta un serviciu de notificare care să poată distribui în mod eficient mesajele de la produs la utilizator pe o varietate de canale
Cerinţe:
- Trimitere API: publicați un punct final autorizat, astfel încât orice backend și microserviciu să poată începe să livreze notificări.
- Canale compatibile: acceptă livrarea de alerte către orice canal care publică un API, cum ar fi e-mail, mesaj text și push.
- Preferințele utilizatorului: permiteți utilizatorilor să-și selecteze preferințele de utilizator pentru fiecare canal și notificare.
- Limite pentru conformitatea serviciului din aval: Evitați să aveți dvs e-mail sau serviciul SMS a fost accelerat sau oprit.
- Scalabil: permite (teoretic) scalarea orizontală infinită.
Arhitectură la nivel înalt
Să presupunem că codul tău ar trebui să notifice pe cineva:
- Punctul final POST /send este invocat de codul dvs. Pentru fiecare canal disponibil, cererea include ID-ul de utilizator al destinatarului, tipul notificării și conținutul acesteia.
- Fluxul de acreditări client OAuth2 este utilizat de punctul final /send pentru a autentifica cererea.
- Opțiunile de notificare ale utilizatorului sunt apoi solicitate din baza de date. Preferințele arată dacă utilizatorul este sau nu abonat la un anumit canal și notificare.
- Din baza de date, va citi caracteristicile utilizatorului, cum ar fi adrese de e-mail și numere de telefon.
- Acest punct final va crea un obiect de mesaj care include caracteristicile utilizatorului, canale și conținut specific canalului. Totuși, nu va include canale dezactivate. Mesajul este apoi livrat unui serviciu fan out.
- Mesajele primite sunt diseminate la cozile de locuri de muncă prin intermediul serviciului fanout. Filtrarea este, totuși, pentru a ignora cozile de locuri de muncă pentru canalele care nu sunt specificate în mesaj.
- Fiecare canal are un procesor și o coadă de lucru. Procesatorul preia sarcina și apoi solicită serviciul corespunzător, cum ar fi un serviciu de e-mail tranzacțional sau SMS.
Elemente majore de arhitectură
POST/trimis
S-ar putea să fi observat foarte bine că doar ID-ul utilizatorului și nici adresa de e-mail, nici numărul de telefon nu sunt incluse în cererea către acest punct final. Acest lucru permite serviciilor de notificare să rămână anonime pentru utilizatorii dvs.
Pentru a asigura scalabilitatea, punctul final este plasat în spatele unui balancer de încărcare.
Autentificarea dvs. tipică orientată către utilizator nu oferă protecție pentru punctul final.
Trebuie să utilizați o metodă de autentificare distinctă, cunoscută sub numele de Fluxul de acreditări client OAuth2, utilizată pentru comunicarea de la server la server, deoarece serviciul care trimite cererea este software-ul însuși.
Aplicația dvs. va oferi notificări în multe locuri diferite. Puteți utiliza funcția de trimitere aproape oriunde, cum ar fi dintr-o bază de cod nouă sau dintr-un flux de lucru de construcție, implementând-o ca punct final în spatele unui echilibrator de încărcare, care garantează că este scalabil independent.
PUT/preferințe utilizator
Utilizați o pereche cheie/valoare sau o bază de date NoSQL care este extrem de scalabilă. Formatați înregistrările după cum urmează: CHEIE: exemplu de cod de utilizator:exe de cod de notificare, VALOARE: [„e-mail”, „state: true”, „SMS”, „state: false”, canal: „e-mail”, „e-mail”, stare : Adevărat
Dacă în înregistrări sunt prezente valori „false”, punctul final de transmisie va exclude canalul corespunzător din mesajul transmis către fanout. Dacă nu există o înregistrare pentru un canal, utilizatorul nu și-a indicat în mod expres preferințele. Trebuie să fiți de acord cu implicit în acest scenariu.
Utilizatorul poate modifica datele din baza de date a preferințelor utilizatorului folosind interfața de utilizare și un punct final obișnuit care este securizat de procedurile de autentificare standard.
Utilizatorii vor deveni iritați și vor fi obligați să desemneze alertele dvs. ca spam sau să le amuțeze dacă nu le oferiți opțiunea de a-și modifica preferințele de notificare. În consecință, experiența dvs. de utilizator va fi afectată și mai mult, iar serviciile de livrare prin e-mail sau SMS vă pot suspenda contul.
Fan Out
Fanout copiază un mesaj și îl distribuie în diferite locații. Sunt accesibile și foarte scalabile. Utilizați SNS în AWS. Utilizați Pub/Sub în Azure și subiecte și abonamente în Google Cloud Platform.
Pentru a preveni trimiterea de mesaje inutile către cozile de joburi ale canalelor excluse, puteți configura filtrarea între cozile de lucru și cozile de lucru. De exemplu, în AWS SNS, puteți specifica că coada de joburi prin e-mail ar trebui să primească mesajul de distribuție numai dacă are valoarea „e-mail” în câmpul „canale”.
Chiar dacă ați putea crea cod pentru a trimite mesajul identic la cozile de joburi necesare, fanout-ul este mai eficient și necesită mai puțină codare. Fanout oferă, de asemenea, confortul de a adăuga și de a elimina cozi, permițându-vă să vă extindeți și să vă reorganizați canalele.
Procesarea locurilor de muncă
Mesajele sunt stocate în cozi în așteptarea procesării de către procesatorii de joburi. De asemenea, sunt accesibile și foarte scalabile. Procesoarele de job sunt bucăți de cod care procesează mesajele din cozile de joburi. În funcție de volumul de mesaje din coadă, acestea se pot scala.
Procesatorul de locuri de muncă ar trebui să efectueze un apel API către furnizorul corespunzător pentru a livra notificarea în scenariul nostru printr-un serviciu de e-mail tranzacțional.
Majoritatea furnizorilor de e-mail, SMS și furnizori de mesaje similare au cerințe stricte pentru cantitatea și calibrul mesajelor pe care le trimiteți. În plus, doriți să le examinați și să stabiliți procedurile adecvate. Iată sfaturile noastre despre cum să evitați rezilierea de la AWS SES.
Puteți defini un număr maxim de procesatori de joburi pentru a preveni depășirea limitelor tarifare ale serviciilor de livrare.
Îmbunătățiri suplimentare
Puteți arunca o privire la o grămadă de aceste articole.
- Au nevoie de propriile API-uri, tabele etc. pentru a avea un serviciu scalabil de notificare în aplicație.
- Colectarea și afișarea raportului de deschidere/clic
- Eliminarea conținutului notificărilor din cod și permiterea produsului și echipei de proiectare să modifice vizual alertele, în schimb, fără o schimbare a codului
- Fără a schimba niciun cod, echipa ta poate folosi tabloul de bord pentru a activa sau dezactiva notificările pentru anumite canale.
Beneficiile notificării push
- Îmbunătățiți interacțiunea cu utilizatorul: actualizările și materialele proaspete vor menține utilizatorii interesați.
- Îmbunătățiți vizibilitatea comunicării: asigurați-vă că mesajele dvs. sunt primite imediat, chiar și atunci când oamenii nu sunt activi. Trimiteți notificări urgente și oferiți utilizatorilor o experiență fluidă.
- Mențineți păstrarea: utilizați notificări push care sunt clar vizibile pentru a îndemna utilizatorii să revină. Puteți crește retenția utilizatorilor și reduce rata de pierdere împingând clienții înapoi pe site-ul și aplicația dvs.
- Îmbunătățiți conversiile: prin crearea de campanii push în jurul premiilor, promoțiilor, reducerilor sau altor oferte în aplicație, puteți crește vânzările.
- Extindeți-vă întreprinderea: abordarea dvs. de comunicare trebuie să se extindă pe măsură ce publicul dvs. se extinde. Pe măsură ce baza dvs. de clienți se extinde, notificările push sunt o metodă eficientă de a rămâne în contact cu aceștia.
- Asigurați-vă că experiența utilizatorului este conectată (UX): prin furnizarea de alerte tranzacționale consumatorilor pentru a-i ține informați și pentru a oferi o experiență fluidă pe mai multe canale, puteți reduce frecarea pe parcursul călătoriei clientului.
Concluzie
În concluzie, am dobândit cunoștințe despre arhitectura unui serviciu de notificare push scalabil. Am analizat, de asemenea, instrumentele furnizate de toți principalii furnizori de servicii cloud, astfel încât să vă puteți baza notificările pe acestea.
În ciuda faptului că am încercat tot posibilul să vă ofer o imagine de ansamblu asupra arhitecturii sistemului de notificare push, se întâmplă mult mai multe în culise.
Sper din tot sufletul că veți găsi aceste informații utile și să le folosiți în mod corespunzător.
Lasă un comentariu