Push-Benachrichtigungen sind ein wichtiges Marketinginstrument für alle, die eine mobile App haben.
Es ist die beste Art, mit Ihren Benutzern zu kommunizieren und dringende Nachrichten an ihre Mobiltelefone zu senden.
Eine mobile App kann einem Benutzer eine Push-Benachrichtigung senden, bei der es sich um eine kurze Popup-Nachricht handelt, die auf seinem Smartphone angezeigt wird, selbst wenn die App nicht geöffnet ist.
Diese Benachrichtigungen können Erinnerungen, Updates, Rabatte und mehr beinhalten.
Sie werden erstellt, um die Aufmerksamkeit der Benutzer auf sich zu ziehen. Titel, Nachricht, Bild und URL sind mögliche Bestandteile einer Push-Benachrichtigung. Emojis, Logos und andere Dinge können ebenfalls ein Teil davon sein.
Betriebssysteme wie Apple OS und Google Android haben diverse Schnittstellen für Push-Benachrichtigungen.
Push-Benachrichtigungen können verwendet werden, um das Engagement zu fördern, die App-Nutzung zu steigern, Conversions zu beeinflussen und vieles mehr.
Die Möglichkeiten sind wirklich grenzenlos.
Push-Benachrichtigungen für Mobilgeräte, auch bekannt als Push-Benachrichtigungen für Mobilgeräte, können Ihre Nutzung von Kanälen wie E-Mail, SMS und Online-Push-Benachrichtigungen um eine Reihe besonderer Vorteile ergänzen.
In diesem Beitrag erhalten Sie eine kurze Beschreibung des Benachrichtigungsdienstes und Informationen zu seiner Zielsetzung, seinem High-Level-Design, speziellen Funktionen und mehr.
Ziel
Entwicklung eines Benachrichtigungsdienstes, der Produkt-an-Benutzer-Nachrichten effizient über eine Vielzahl von Kanälen verteilen kann
Voraussetzungen: :
- Sende-API: Veröffentlichen Sie einen autorisierten Endpunkt, damit alle Backends und Microservices mit der Übermittlung von Benachrichtigungen beginnen können.
- Kompatible Kanäle: Unterstützen Sie die Übermittlung von Warnungen an jeden Kanal, der eine API veröffentlicht, z. B. E-Mail, Textnachricht und Push.
- Die Benutzereinstellungen: Erlauben Sie Benutzern, ihre Benutzereinstellungen für jeden Kanal und jede Benachrichtigung auszuwählen.
- Grenzwerte für die Compliance nachgelagerter Dienste: Vermeiden Sie es, Ihre E-Mail oder SMS-Dienst gedrosselt oder gestoppt.
- Skalierbar: Ermöglicht (theoretisch) unendliche horizontale Skalierung.
Architektur auf hohem Niveau
Angenommen, Ihr Code soll jemanden benachrichtigen:
- Der Endpunkt POST /send wird von Ihrem Code aufgerufen. Für jeden verfügbaren Kanal enthält die Anfrage die Benutzer-ID des Empfängers, den Typ der Benachrichtigung und ihren Inhalt.
- Der OAuth2 Client Credentials Flow wird vom /send-Endpunkt verwendet, um die Anfrage zu authentifizieren.
- Die Benachrichtigungsauswahlen des Benutzers werden dann von der Datenbank angefordert. Die Einstellungen zeigen, ob der Benutzer einen bestimmten Kanal und eine bestimmte Benachrichtigung abonniert hat oder nicht.
- Aus der Datenbank liest es Benutzermerkmale wie E-Mail-Adressen und Telefonnummern.
- Dieser Endpunkt erstellt ein Nachrichtenobjekt, das Benutzermerkmale, Kanäle und kanalspezifischen Inhalt enthält. Es enthält jedoch keine deaktivierten Kanäle. Die Nachricht wird dann an einen Fan-Out-Dienst geliefert.
- Eingehende Nachrichten werden über den Fanout-Dienst an Auftragswarteschlangen verteilt. Es ist jedoch eine Filterung vorhanden, um Auftragswarteschlangen für Kanäle zu ignorieren, die nicht in der Nachricht angegeben sind.
- Jeder Kanal hat einen Prozessor und eine Arbeitswarteschlange. Der Bearbeiter übernimmt die Aufgabe und fragt dann nach dem entsprechenden Dienst, z. B. einem Transaktions-E-Mail- oder SMS-Dienst.
Wichtige Architekturelemente
POST/gesendet
Sie haben vielleicht bemerkt, dass nur die Benutzer-ID und weder die E-Mail-Adresse noch die Telefonnummer in der Anfrage an diesen Endpunkt enthalten sind. Dadurch bleiben die Benachrichtigungsdienste für Ihre Nutzer anonym.
Um die Skalierbarkeit zu gewährleisten, wird der Endpunkt hinter a platziert Lastenausgleicher.
Ihre typische benutzerseitige Authentifizierung bietet keinen Schutz für den Endpunkt.
Sie müssen eine eindeutige Authentifizierungsmethode verwenden, die als OAuth2 Client Credential Flow bekannt ist und für die Server-zu-Server-Kommunikation verwendet wird, da der Dienst, der die Anfrage sendet, die Software selbst ist.
Ihre Anwendung wird an vielen verschiedenen Stellen Benachrichtigungen bereitstellen. Sie können die Sendefunktion fast überall verwenden, z. B. von einer neuen Codebasis oder Ihrem Build-Workflow, indem Sie sie als Endpunkt hinter einem Load-Balancer implementieren, was garantiert, dass sie unabhängig skalierbar ist.
PUT/Benutzereinstellungen
Verwenden Sie ein Schlüssel/Wert-Paar oder eine NoSQL-Datenbank, die extrem skalierbar ist. Formatieren Sie die Datensätze wie folgt: SCHLÜSSEL: Muster-Benutzer-ID: Muster-Benachrichtigungs-ID, WERT: [„E-Mail“, „Status: wahr“, „SMS“, „Status: falsch“, Kanal: „E-Mail“, „E-Mail“, Status : Stimmt
Wenn in den Datensätzen „falsche“ Werte vorhanden sind, schließt der Sendeendpunkt den entsprechenden Kanal von der an den Fanout gelieferten Nachricht aus. Wenn für einen Kanal kein Eintrag vorhanden ist, hat der Benutzer seine Präferenzen nicht ausdrücklich angegeben. In diesem Szenario müssen Sie dem Standard zustimmen.
Der Benutzer kann die Daten in der Benutzereinstellungsdatenbank mithilfe Ihrer Benutzeroberfläche und eines regulären Endpunkts ändern, der durch Ihre standardmäßigen Authentifizierungsverfahren gesichert ist.
Benutzer werden irritiert und gezwungen sein, Ihre Benachrichtigungen als Spam zu kennzeichnen oder sie stummzuschalten, wenn Sie ihnen nicht die Möglichkeit geben, ihre Benachrichtigungseinstellungen zu ändern. Ihre Benutzererfahrung wird dadurch weiter beeinträchtigt, und E-Mail- oder SMS-Zustelldienste könnten Ihr Konto sperren.
Ausschwärmen
Fanout kopiert eine Nachricht und verteilt sie an verschiedene Orte. Sie sind erschwinglich und sehr skalierbar. Verwenden Sie SNS in AWS. Verwenden Sie Pub/Sub in Azure und Themen und Abonnements in der Google Cloud Platform.
Um zu verhindern, dass sinnlose Nachrichten an Jobwarteschlangen des ausgeschlossenen Kanals gesendet werden, können Sie die Filterung zwischen der Fanout- und der Arbeitswarteschlange konfigurieren. Beispielsweise können Sie in AWS SNS angeben, dass die E-Mail-Auftragswarteschlange nur dann die Fanout-Nachricht erhalten soll, wenn sie den Wert „E-Mail“ im Feld „Kanäle“ enthält.
Selbst wenn Sie Code erstellen könnten, um die identische Nachricht an die erforderlichen Auftragswarteschlangen zu senden, ist Fanout effizienter und erfordert weniger Codierung. Fanout bietet auch die Möglichkeit, Warteschlangen hinzuzufügen und zu entfernen, sodass Sie Ihre Kanäle erweitern und neu organisieren können.
Auftragsabwicklung
Nachrichten werden in Warteschlangen gespeichert, bis sie von Ihren Jobprozessoren verarbeitet werden. Sie sind auch erschwinglich und sehr skalierbar. Jobprozessoren sind Codeteile, die Nachrichten aus den Jobwarteschlangen verarbeiten. Abhängig von der Menge der Nachrichten in der Warteschlange können sie skaliert werden.
Der Auftragsverarbeiter sollte einen API-Aufruf an den richtigen Anbieter senden, um die Benachrichtigung in unserem Szenario über einen Transaktions-E-Mail-Dienst zuzustellen.
Die Mehrheit der E-Mail-, SMS- und ähnlichen Anbieter von Nachrichtenübermittlungen haben strenge Anforderungen an die Menge und den Umfang der von Ihnen gesendeten Nachrichten. Außerdem wollen Sie diese gründlich prüfen und geeignete Verfahren aufsetzen. Hier ist unser Rat, wie Sie vermeiden können, von AWS SES gekündigt zu werden.
Sie können eine maximale Anzahl von Auftragsverarbeitern definieren, um zu verhindern, dass die Ratenobergrenzen der Zustelldienste überschritten werden.
Weitere Verbesserungen
Sie können einen Blick auf eine Reihe dieser Artikel werfen.
- Sie benötigen ihre eigenen APIs, Tabellen usw., um einen skalierbaren In-App-Benachrichtigungsdienst zu haben.
- Erfassung und Anzeige des Öffnungs-/Klick-Berichts
- Entfernen Sie den Inhalt der Benachrichtigungen aus dem Code und lassen Sie Ihr Produkt- und Designteam die Benachrichtigungen stattdessen ohne Codeänderung visuell ändern
- Ohne einen Code zu ändern, kann Ihr Team das Dashboard verwenden, um Benachrichtigungen für bestimmte Kanäle zu aktivieren oder zu deaktivieren.
Vorteile der Push-Benachrichtigung
- Steigern Sie die Benutzerinteraktion: Updates und frisches Material werden das Interesse Ihrer Benutzer aufrechterhalten.
- Erhöhen Sie die Sichtbarkeit der Kommunikation: Stellen Sie sicher, dass Ihre Nachrichten sofort empfangen werden, auch wenn die Leute nicht aktiv sind. Senden Sie dringende Benachrichtigungen und bieten Sie Benutzern ein reibungsloses Erlebnis.
- Kundenbindung aufrechterhalten: Verwenden Sie gut sichtbare Push-Benachrichtigungen, um Ihre Benutzer zur Rückkehr zu bewegen. Sie können die Benutzerbindung erhöhen und die Abwanderung reduzieren, indem Sie Kunden zurück auf Ihre Website und App drängen.
- Conversions verbessern: Durch das Erstellen von Push-Kampagnen rund um In-App-Prämien, Werbeaktionen, Rabatte oder andere Angebote können Sie den Umsatz steigern.
- Skalieren Sie Ihr Unternehmen: Ihr Kommunikationsansatz muss mit der Erweiterung Ihres Publikums skalieren. Wenn Ihr Kundenstamm wächst, sind Push-Benachrichtigungen eine effektive Methode, um mit ihnen in Kontakt zu bleiben.
- Machen Sie das Benutzererlebnis vernetzt (UX): Indem Sie den Verbrauchern Transaktionswarnungen bereitstellen, um sie auf dem Laufenden zu halten und ein reibungsloses kanalübergreifendes Erlebnis zu bieten, können Sie Reibungsverluste während der gesamten Customer Journey reduzieren.
Zusammenfassung
Zusammenfassend haben wir Erkenntnisse über die Architektur eines skalierbaren Push-Benachrichtigungsdienstes gewonnen. Wir haben uns auch die Tools angesehen, die von allen wichtigen Cloud-Service-Anbietern bereitgestellt werden, damit Sie Ihre Benachrichtigungen darauf aufbauen können.
Trotz der Tatsache, dass ich mein Bestes gegeben habe, um Ihnen einen Überblick über die Architektur des Push-Benachrichtigungssystems zu geben, passiert noch viel mehr hinter den Kulissen.
Ich hoffe aufrichtig, dass Sie diese Informationen nützlich finden und sinnvoll nutzen werden.
Hinterlassen Sie uns einen Kommentar