Thông báo đẩy là một công cụ tiếp thị quan trọng đối với bất kỳ ai có ứng dụng di động.
Đó là cách tốt nhất để giao tiếp với người dùng của bạn, gửi tin nhắn khẩn cấp đến điện thoại di động của họ.
Ứng dụng dành cho thiết bị di động có thể gửi cho người dùng một thông báo đẩy, là một thông báo bật lên ngắn gọn xuất hiện trên điện thoại thông minh của họ ngay cả khi ứng dụng không mở.
Những cảnh báo này có thể bao gồm lời nhắc, cập nhật, giảm giá, v.v.
Chúng được tạo ra để bắt mắt người dùng. Tiêu đề, tin nhắn, hình ảnh và URL là tất cả các thành phần có thể có của một thông báo đẩy. Biểu tượng cảm xúc, biểu trưng và những thứ khác cũng có thể là một phần của chúng.
Các hệ điều hành như Apple OS và Google Android có giao diện đa dạng cho các thông báo đẩy.
Thông báo đẩy có thể được sử dụng để thúc đẩy mức độ tương tác, tăng mức sử dụng ứng dụng, ảnh hưởng đến chuyển đổi, v.v.
Các tùy chọn thực sự là vô hạn.
Thông báo đẩy cho thiết bị di động, còn được gọi là thông báo đẩy cho thiết bị di động, có thể bổ sung cho việc sử dụng các kênh như email, SMS và thông báo đẩy trực tuyến của bạn với một số lợi thế đặc biệt.
Bạn sẽ nhận được mô tả nhanh về dịch vụ thông báo trong bài đăng này và thông tin về mục tiêu, thiết kế cấp cao, các tính năng đặc biệt và hơn thế nữa.
Mục tiêu
Để phát triển một dịch vụ thông báo có thể phân phối hiệu quả các thông điệp từ sản phẩm đến người dùng trên nhiều kênh khác nhau
Yêu cầu:
- API gửi: Xuất bản điểm cuối được ủy quyền để bất kỳ dịch vụ phụ trợ và dịch vụ vi mô nào đều có thể bắt đầu gửi thông báo.
- Các kênh tương thích: Hỗ trợ gửi cảnh báo đến bất kỳ kênh nào xuất bản API, chẳng hạn như email, tin nhắn văn bản và push.
- Tùy chọn của người dùng: Cho phép người dùng chọn tùy chọn người dùng của họ cho từng kênh và thông báo.
- Giới hạn tuân thủ dịch vụ hạ nguồn: Tránh có e-mail hoặc dịch vụ SMS bị điều chỉnh hoặc dừng lại.
- Khả năng mở rộng: Cho phép (về mặt lý thuyết) chia tỷ lệ ngang vô hạn.
Kiến trúc cấp cao
Giả sử mã của bạn phải thông báo cho ai đó:
- Điểm cuối POST / send được gọi bởi mã của bạn. Đối với mỗi kênh khả dụng, yêu cầu bao gồm userId của người nhận, loại thông báo và nội dung của nó.
- Luồng thông tin xác thực ứng dụng khách OAuth2 được sử dụng bởi điểm cuối / send để xác thực yêu cầu.
- Các lựa chọn thông báo của người dùng sau đó được yêu cầu từ cơ sở dữ liệu. Tùy chọn cho biết người dùng có đăng ký một kênh nhất định hay không và thông báo.
- Từ cơ sở dữ liệu, nó sẽ đọc các đặc điểm của người dùng như địa chỉ email và số điện thoại.
- Điểm cuối này sẽ tạo một đối tượng thông báo bao gồm các đặc điểm của người dùng, kênh và nội dung dành riêng cho kênh. Tuy nhiên, nó sẽ không bao gồm các kênh đã hủy kích hoạt. Sau đó, thông điệp sẽ được chuyển đến một dịch vụ dành cho người hâm mộ.
- Các tin nhắn đến được phổ biến đến các hàng đợi công việc thông qua dịch vụ fanout. Tuy nhiên, bộ lọc được thực hiện để bỏ qua hàng đợi công việc cho các kênh không được chỉ định trong thông báo.
- Mỗi kênh có một bộ xử lý và một hàng đợi công việc. Bộ xử lý nhận nhiệm vụ và sau đó yêu cầu dịch vụ thích hợp, chẳng hạn như email giao dịch hoặc dịch vụ SMS.
Các yếu tố kiến trúc chính
ĐĂNG / gửi
Có thể bạn đã nhận thấy rằng chỉ có userId và cả địa chỉ email cũng như số điện thoại đều không được bao gồm trong yêu cầu đến điểm cuối này. Điều này cho phép các dịch vụ thông báo ẩn danh với người dùng của bạn.
Để đảm bảo khả năng mở rộng, điểm cuối được đặt sau cân bằng tải.
Xác thực hướng tới người dùng thông thường của bạn không cung cấp sự bảo vệ cho điểm cuối.
Bạn phải sử dụng một phương pháp xác thực riêng biệt được gọi là Luồng thông tin xác thực ứng dụng khách OAuth2 được sử dụng để giao tiếp giữa máy chủ với máy chủ vì dịch vụ gửi yêu cầu là chính phần mềm.
Ứng dụng của bạn sẽ cung cấp thông báo ở nhiều nơi khác nhau. Bạn có thể sử dụng chức năng gửi ở hầu hết mọi nơi, chẳng hạn như từ cơ sở mã mới hoặc quy trình xây dựng của bạn, bằng cách triển khai nó như một điểm cuối phía sau bộ cân bằng tải, điều này đảm bảo rằng nó có thể mở rộng một cách độc lập.
PUT / tùy chọn người dùng
Sử dụng cặp khóa / giá trị hoặc cơ sở dữ liệu NoSQL có khả năng mở rộng cực kỳ cao. Định dạng các bản ghi như sau: KEY: id người dùng mẫu: id thông báo mẫu, VALUE: [“email”, “trạng thái: đúng”, “SMS”, “trạng thái: sai”, kênh: “email”, “email”, trạng thái : thật
Nếu các giá trị "sai" có trong các bản ghi, điểm cuối truyền sẽ loại trừ kênh tương ứng khỏi thông báo được gửi đến fanout. Nếu không có bản ghi cho một kênh, người dùng đã không chỉ ra rõ ràng tùy chọn của họ. Bạn phải đồng ý để mặc định trong trường hợp này.
Người dùng có thể sửa đổi dữ liệu trong cơ sở dữ liệu tùy chọn người dùng bằng cách sử dụng giao diện người dùng của bạn và một điểm cuối thông thường được bảo mật bằng các thủ tục xác thực tiêu chuẩn của bạn.
Người dùng sẽ trở nên khó chịu và buộc phải chỉ định các cảnh báo của bạn là spam hoặc tắt tiếng chúng nếu bạn không cung cấp cho họ tùy chọn để thay đổi tùy chọn thông báo của họ. Do đó, trải nghiệm người dùng của bạn sẽ bị tổn hại thêm và các dịch vụ gửi email hoặc SMS có thể tạm ngưng tài khoản của bạn.
Quạt ra
Fanout sao chép một tin nhắn và phân phối nó đến các vị trí khác nhau. Chúng có giá cả phải chăng và rất dễ mở rộng. Sử dụng SNS trong AWS. Sử dụng Pub / Sub trong Azure cũng như các chủ đề và đăng ký trong Google Cloud Platform.
Để ngăn việc gửi các thông báo vô nghĩa đến các hàng đợi công việc kênh bị loại trừ, bạn có thể định cấu hình lọc giữa các hàng đợi công việc và fanout. Ví dụ: trong AWS SNS, bạn có thể chỉ định rằng hàng đợi công việc email sẽ chỉ nhận được thông báo fanout nếu nó có giá trị "email" trong trường "kênh".
Ngay cả khi bạn có thể tạo mã để gửi thông báo giống hệt nhau đến các hàng đợi công việc được yêu cầu, fanout hiệu quả hơn và yêu cầu ít mã hóa hơn. Fanout cũng cung cấp sự tiện lợi của việc thêm và xóa hàng đợi, cho phép bạn mở rộng và tổ chức lại các kênh của mình.
Xử lý công việc
Tin nhắn được lưu trữ trong hàng đợi xử lý bởi bộ xử lý công việc của bạn. Chúng cũng có giá cả phải chăng và rất dễ mở rộng. Bộ xử lý công việc là các đoạn mã xử lý các thông báo từ hàng đợi công việc. Tùy thuộc vào khối lượng thư trong hàng đợi, chúng có thể chia tỷ lệ.
Người xử lý công việc phải thực hiện một cuộc gọi API đến nhà cung cấp thích hợp để gửi thông báo trong trường hợp của chúng tôi thông qua dịch vụ email giao dịch.
Phần lớn các nhà cung cấp dịch vụ gửi email, SMS và các nhà cung cấp dịch vụ gửi tin nhắn tương tự có yêu cầu chặt chẽ về số lượng và quy mô tin nhắn bạn gửi. Ngoài ra, bạn muốn kiểm tra những điều này và thiết lập các quy trình phù hợp một cách kỹ lưỡng. Dưới đây là lời khuyên của chúng tôi về cách tránh bị chấm dứt AWS SES.
Bạn có thể xác định số lượng bộ xử lý công việc tối đa để tránh vượt quá giới hạn tỷ lệ của dịch vụ chuyển phát.
Cải tiến hơn nữa
Bạn có thể xem qua một loạt các mục này.
- Họ cần các API, bảng, v.v. của riêng mình để có dịch vụ thông báo trong ứng dụng có thể mở rộng.
- Thu thập và hiển thị báo cáo mở / nhấp
- Xóa nội dung thông báo khỏi mã và cho phép sản phẩm và nhóm thiết kế của bạn sửa đổi cảnh báo một cách trực quan mà không cần thay đổi mã
- Không cần thay đổi bất kỳ mã nào, nhóm của bạn có thể sử dụng trang tổng quan để kích hoạt hoặc tắt thông báo cho một số kênh nhất định.
Lợi ích của thông báo đẩy
- Tăng tương tác với người dùng: Các bản cập nhật và tài liệu mới sẽ khiến người dùng của bạn quan tâm.
- Tăng khả năng hiển thị giao tiếp: Đảm bảo tin nhắn của bạn được nhận ngay lập tức, ngay cả khi mọi người không hoạt động. Gửi thông báo khẩn cấp và cung cấp cho người dùng trải nghiệm mượt mà.
- Duy trì tỷ lệ giữ chân: Sử dụng thông báo đẩy hiển thị rõ ràng để thúc giục người dùng của bạn quay lại. Bạn có thể tăng tỷ lệ giữ chân người dùng và giảm tình trạng gián đoạn bằng cách đẩy khách hàng trở lại trang web và ứng dụng của bạn.
- Nâng cao chuyển đổi: Bằng cách tạo các chiến dịch đẩy xung quanh giải thưởng trong ứng dụng, khuyến mại, giảm giá hoặc các dịch vụ khác, bạn có thể tăng doanh số bán hàng.
- Quy mô doanh nghiệp của bạn: Phương pháp giao tiếp của bạn phải mở rộng quy mô khi khán giả của bạn mở rộng. Khi cơ sở khách hàng của bạn mở rộng, thông báo đẩy là một phương pháp hiệu quả để giữ liên lạc với họ.
- Làm cho trải nghiệm người dùng được kết nối (UX): Bằng cách cung cấp cảnh báo giao dịch cho người tiêu dùng để thông báo cho họ và cung cấp trải nghiệm đa kênh mượt mà, bạn có thể giảm bớt sự va chạm trong suốt hành trình của khách hàng.
Kết luận
Kết luận, chúng tôi đã có được kiến thức về kiến trúc của dịch vụ thông báo đẩy có thể mở rộng. Chúng tôi cũng đã xem xét các công cụ được cung cấp bởi tất cả các nhà cung cấp dịch vụ đám mây chính để bạn có thể thông báo dựa trên những công cụ này.
Mặc dù thực tế là tôi đã cố gắng hết sức để cung cấp cho bạn cái nhìn tổng quan về kiến trúc hệ thống thông báo đẩy, nhưng còn nhiều điều khác đang diễn ra ở phía sau hậu trường.
Tôi chân thành hy vọng bạn sẽ thấy thông tin này hữu ích và sử dụng nó tốt.
Bình luận