Powiadomienia push to ważne narzędzie marketingowe dla każdego, kto ma aplikację mobilną.
To najlepszy sposób komunikowania się z użytkownikami, wysyłanie pilnych wiadomości na ich telefony komórkowe.
Aplikacja mobilna może wysłać użytkownikowi powiadomienie push, czyli krótką wiadomość wyskakującą, która pojawia się na smartfonie nawet wtedy, gdy aplikacja nie jest otwarta.
Alerty te mogą obejmować przypomnienia, aktualizacje, rabaty i nie tylko.
Są tworzone, aby przyciągać wzrok użytkowników. Tytuł, wiadomość, obraz i adres URL to wszystkie możliwe składniki powiadomienia push. Emoji, logo i inne rzeczy również mogą być ich częścią.
Systemy operacyjne, takie jak Apple OS i Google Android, mają różne interfejsy powiadomień push.
Powiadomienia push mogą być wykorzystywane do promowania zaangażowania, zwiększania wykorzystania aplikacji, wpływania na konwersje i wielu innych.
Opcje są naprawdę nieograniczone.
Powiadomienia push dla urządzeń mobilnych, znane również jako powiadomienia push dla urządzeń mobilnych, mogą uzupełnić korzystanie z kanałów, takich jak e-mail, SMS i powiadomienia push online, oferując szereg specjalnych korzyści.
W tym poście otrzymasz krótki opis usługi powiadomień oraz informacje na temat jej celu, projektu na wysokim poziomie, funkcji specjalnych i nie tylko.
Cel
Opracowanie usługi powiadamiania, która może wydajnie dystrybuować wiadomości od produktu do użytkownika w różnych kanałach
wymagania:
- Wysyłanie interfejsu API: opublikuj autoryzowany punkt końcowy, aby dowolny backend i mikrousługa mogły rozpocząć dostarczanie powiadomień.
- Kompatybilne kanały: Obsługa dostarczania alertów do dowolnego kanału, który publikuje interfejs API, takiego jak e-mail, wiadomość tekstowa i wypychanie.
- Preferencje użytkownika: Pozwól użytkownikom wybrać preferencje użytkownika dla każdego kanału i powiadomienia.
- Ograniczenia dotyczące zgodności z usługami niższego szczebla: Unikaj konieczności posiadania przez Ciebie E-mail lub usługa SMS została ograniczona lub zatrzymana.
- Skalowalny: Zezwalaj (teoretycznie) na nieskończone skalowanie w poziomie.
Architektura wysokiego poziomu
Załóżmy, że Twój kod ma kogoś powiadomić:
- Punkt końcowy POST /send jest wywoływany przez Twój kod. Dla każdego dostępnego kanału żądanie zawiera identyfikator użytkownika odbiorcy, typ powiadomienia i jego treść.
- Przepływ poświadczeń klienta OAuth2 jest używany przez punkt końcowy /send do uwierzytelniania żądania.
- Wybory powiadomień użytkownika są następnie wymagane z bazy danych. Preferencje pokazują, czy użytkownik subskrybuje określony kanał i powiadomienie.
- Z bazy danych odczyta cechy użytkownika, takie jak adresy e-mail i numery telefonów.
- Ten punkt końcowy utworzy obiekt komunikatu, który zawiera cechy użytkownika, kanały i zawartość specyficzną dla kanału. Nie będzie jednak obejmować dezaktywowanych kanałów. Wiadomość jest następnie dostarczana do usługi fan out.
- Wiadomości przychodzące są przekazywane do kolejek zadań za pośrednictwem usługi fanout. Filtrowanie ma jednak na celu zignorowanie kolejek zadań dla kanałów, które nie są określone w komunikacie.
- Każdy kanał ma procesor i kolejkę pracy. Procesor przejmuje zadanie, a następnie prosi o odpowiednią usługę, taką jak transakcyjny e-mail lub usługa SMS.
Główne elementy architektury
POST/wysłane
Być może zauważyłeś, że żądanie do tego punktu końcowego zawiera tylko identyfikator użytkownika, a nie adres e-mail ani numer telefonu. Dzięki temu usługi powiadamiania mogą pozostać anonimowe dla użytkowników.
Aby zapewnić skalowalność, punkt końcowy jest umieszczony za a równoważenie obciążenia.
Typowe uwierzytelnianie użytkownika nie zapewnia ochrony punktu końcowego.
Musisz użyć odrębnej metody uwierzytelniania, znanej jako przepływ poświadczeń klienta OAuth2, używanej do komunikacji między serwerami, ponieważ usługą, która przesyła żądanie, jest samo oprogramowanie.
Twoja aplikacja będzie dostarczać powiadomienia w wielu różnych miejscach. Możesz korzystać z funkcji wysyłania prawie wszędzie, na przykład z nowej bazy kodu lub przepływu pracy kompilacji, implementując ją jako punkt końcowy za modułem równoważenia obciążenia, co gwarantuje niezależną skalowalność.
PUT/preferencje użytkownika
Użyj pary klucz/wartość lub bazy danych NoSQL, która jest niezwykle skalowalna. Sformatuj rekordy w następujący sposób: KLUCZ: przykładowy identyfikator użytkownika: przykładowy identyfikator powiadomienia, WARTOŚĆ: [„email”, „stan: prawda”, „SMS”, „stan: fałsz”, kanał: „e-mail”, „e-mail”, stan: prawda”]
Jeśli w rekordach występują wartości „fałszywe”, punkt końcowy transmisji wykluczy odpowiedni kanał z komunikatu dostarczonego do fanoutu. Jeśli nie ma wpisu dla kanału, oznacza to, że użytkownik nie określił wyraźnie swoich preferencji. W tym scenariuszu musisz wyrazić zgodę na ustawienie domyślne.
Użytkownik może modyfikować dane w bazie danych preferencji użytkownika za pomocą interfejsu użytkownika i zwykłego punktu końcowego, który jest zabezpieczony przez standardowe procedury uwierzytelniania.
Użytkownicy będą zirytowani i zmuszeni do oznaczania alertów jako spam lub ich wyciszania, jeśli nie zapewnisz im opcji zmiany preferencji powiadomień. W rezultacie Twoje wrażenia użytkownika zostaną jeszcze bardziej pogorszone, a usługi dostarczania wiadomości e-mail lub SMS-ów mogą zawiesić Twoje konto.
Wachlarz
Fanout kopiuje wiadomość i rozprowadza ją w różnych lokalizacjach. Są niedrogie i bardzo skalowalne. Użyj SNS w AWS. Korzystaj z Pub/Sub na platformie Azure oraz tematów i subskrypcji w Google Cloud Platform.
Aby zapobiec wysyłaniu bezsensownych komunikatów do kolejek zadań wykluczonych kanałów, możesz skonfigurować filtrowanie między kolejkami rozsyłania i kolejkami roboczymi. Na przykład w AWS SNS możesz określić, że kolejka zadań e-mail powinna otrzymać wiadomość fanout tylko wtedy, gdy ma wartość „email” w polu „kanały”.
Nawet gdybyś mógł stworzyć kod wysyłający identyczną wiadomość do wymaganych kolejek zadań, fanout jest bardziej wydajny i wymaga mniej kodowania. Fanout oferuje również wygodę dodawania i usuwania kolejek, co pozwala na rozszerzanie i reorganizację kanałów.
Przetwarzanie zadań
Komunikaty są przechowywane w kolejkach oczekujących na przetworzenie przez procesory zadań. Są również niedrogie i bardzo skalowalne. Procesory zadań to fragmenty kodu, które przetwarzają komunikaty z kolejek zadań. W zależności od ilości komunikatów w kolejce można je skalować.
Procesor zadań powinien wykonać wywołanie interfejsu API do odpowiedniego dostawcy w celu dostarczenia powiadomienia w naszym scenariuszu za pośrednictwem transakcyjnej usługi e-mail.
Większość dostawców poczty e-mail, SMS-ów i podobnych dostawców usług dostarczania wiadomości ma surowe wymagania dotyczące ilości i kalibru wysyłanych wiadomości. Ponadto chcesz je dokładnie przeanalizować i ustalić odpowiednie procedury. Oto nasza rada, jak uniknąć wyrzucenia z AWS SES.
Możesz zdefiniować maksymalną liczbę procesorów zadań, aby zapobiec przekroczeniu limitów stawek usług dostarczania.
Dalsze doskonalenia
Możesz rzucić okiem na kilka z tych przedmiotów.
- Potrzebują własnych interfejsów API, tabel itp., aby mieć skalowalną usługę powiadomień w aplikacji.
- Zebranie i wyświetlenie raportu otwórz/kliknij
- Usunięcie treści powiadomień z kodu i pozwolenie zespołowi produktowemu i projektowemu na wizualną modyfikację alertów bez zmiany kodu
- Bez zmiany żadnego kodu, Twój zespół może używać pulpitu nawigacyjnego do włączania lub wyłączania powiadomień dla określonych kanałów.
Korzyści z powiadomień push
- Zwiększ interakcję użytkownika: Aktualizacje i świeże materiały sprawią, że Twoi użytkownicy będą zainteresowani.
- Zwiększ widoczność komunikacji: Upewnij się, że Twoje wiadomości są odbierane natychmiast, nawet jeśli ludzie nie są aktywni. Wysyłaj pilne powiadomienia i zapewnij użytkownikom płynne działanie.
- Utrzymaj retencję: używaj dobrze widocznych powiadomień push, aby zachęcić użytkowników do powrotu. Możesz zwiększyć retencję użytkowników i zmniejszyć odpływ, zachęcając klientów z powrotem do Twojej witryny i aplikacji.
- Zwiększ konwersje: Tworząc kampanie push wokół nagród w aplikacji, promocji, rabatów lub innych ofert, możesz zwiększyć sprzedaż.
- Skaluj swoje przedsiębiorstwo: Twoje podejście do komunikacji musi być skalowane wraz z powiększaniem się odbiorców. W miarę powiększania się bazy klientów powiadomienia push są skuteczną metodą pozostawania z nimi w kontakcie.
- Spraw, aby doświadczenie użytkownika było połączone (UX): dostarczając konsumentom alerty transakcyjne, aby byli na bieżąco informowani i zapewniając płynną obsługę w wielu kanałach, możesz zmniejszyć tarcia na całej ścieżce klienta.
Wnioski
Podsumowując, zdobyliśmy wiedzę na temat architektury skalowalnej usługi powiadomień push. Przyjrzeliśmy się również narzędziom dostarczanym przez wszystkich głównych dostawców usług w chmurze, abyś mógł na nich opierać swoje powiadomienia.
Pomimo tego, że starałem się jak najlepiej przedstawić przegląd architektury systemu powiadomień push, za kulisami dzieje się o wiele więcej.
Mam szczerą nadzieję, że te informacje okażą się przydatne i dobrze je wykorzystasz.
Dodaj komentarz