Tích Hợp Push Notification (FCM): Giữ Chân Khách Hàng Bằng Thông Báo Đẩy
Bạn có để ý rằng các ông lớn như Shopee, Lazada luôn "spam" bạn bằng những thông báo: "Freeship đang chờ bạn!" ngay trên màn hình điện thoại? Đó chính là sức mạnh của Push Notification.
Với tỷ lệ mở (Open Rate) cao gấp 5 lần Email Marketing, thông báo đẩy là vũ khí tối thượng để lôi kéo khách hàng quay lại App hoặc Website của bạn. Và tuyệt vời nhất: Firebase Cloud Messaging (FCM) của Google cho phép làm điều đó hoàn toàn miễn phí.
1. Cơ Chế Hoạt Động Của FCM
Hệ thống gồm 3 thành phần chính:
- Client (App/Web): Đăng ký nhận tin và gửi <code>Device Token</code> về cho Server.
- Server (Backend): Lưu trữ <code>Device Token</code> của khách hàng và gửi yêu cầu bắn tin sang Firebase.
- Firebase (Google): Trung gian vận chuyển tin nhắn đến thiết bị người dùng (ngay cả khi họ đã tắt ứng dụng).
2. Tích Hợp Web Push (Service Worker)
Web Push phức tạp hơn App vì cần HTTPS và Service Worker. Dưới đây là các bước cốt lõi:
Bước 1: Cấu hình Client (JavaScript)
<code>// File: firebase-messaging-sw.js (Đặt ở root thư mục) importScripts('https://www.gstatic.com/firebasejs/9.0.0/firebase-app-compat.js'); importScripts('https://www.gstatic.com/firebasejs/9.0.0/firebase-messaging-compat.js');
firebase.initializeApp({ apiKey: "YOUR_API_KEY", projectId: "YOUR_PROJECT_ID", messagingSenderId: "YOUR_SENDER_ID", appId: "YOUR_APP_ID" });
const messaging = firebase.messaging();
// Xử lý khi nhận tin ở background messaging.onBackgroundMessage((payload) => { const notificationTitle = payload.notification.title; const notificationOptions = { body: payload.notification.body, icon: '/logo.png' };
self.registration.showNotification(notificationTitle, notificationOptions); });</code></pre>
Bước 2: Xin quyền và Lấy Token
<pre><code>Notification.requestPermission().then((permission) => { if (permission === 'granted') { messaging.getToken().then((currentToken) => { if (currentToken) { // Gửi token này về database của bạn để lưu lại sendTokenToServer(currentToken); } }); } });</code></pre>
Bước 3: Gửi tin từ PHP (HTTP v1 API)
<p>Lưu ý: API Legacy cũ đã bị Google khai tử. Bạn bắt buộc phải dùng HTTP v1 (yêu cầu OAuth 2.0 Access Token).
<code>// Bạn cần dùng thư viện Google Auth để lấy Access Token từ file JSON Service Account $accessToken = getGoogleAccessToken();
$url = 'https://fcm.googleapis.com/v1/projects/YOUR_PROJECT_ID/messages:send'; $headers = [ 'Authorization: Bearer ' . $accessToken, 'Content-Type: application/json' ];
$data = [ 'message' => [ 'token' => 'DEVICE_TOKEN_CUA_KHACH', 'notification' => [ 'title' => 'Giảm giá sốc 50%!', 'body' => 'Chỉ duy nhất hôm nay. Mua ngay kẻo lỡ.' ], 'webpush' => [ 'fcm_options' => [ 'link' => 'https://jaybranding.com/khuyen-mai' ] ] ] ];
// Gửi cURL POST...</code></pre>
3. iOS - Nỗi Ám Ảnh Của Web Push
<p>Trước đây, iPhone không hỗ trợ Web Push. Nhưng tin vui là từ iOS 16.4, Apple đã cho phép Web Push hoạt động NẾU người dùng cài website ra màn hình chính (Add to Home Screen - PWA).
4. Chiến Lược Push Thông Minh Của JAYbranding
Tích hợp kỹ thuật thì dễ, nhưng gửi sao để khách không xóa app mới khó. JAYbranding tư vấn:
- ✅ Cá nhân hóa: Thay vì gửi "Có sản phẩm mới", hãy gửi "Sản phẩm bạn yêu thích đang giảm giá".
- ✅ Đúng thời điểm: Dùng AI phân tích giờ online của từng user để gửi đúng lúc họ cầm điện thoại.
- ✅ Deep Link: Bấm vào thông báo phải mở đúng màn hình sản phẩm, không mở trang chủ chung chung.
📞 Tăng tương tác App/Web với Push Notification! Hotline: 0899991131
FAQ Về Firebase FCM
[faqs]
#### FCM có giới hạn số lượng tin nhắn không?
Không. Bạn có thể gửi hàng tỷ tin nhắn mỗi ngày. Tuy nhiên, gửi quá nhiều trong thời gian ngắn có thể bị delay.
#### Tại sao tôi gửi mà không nhận được thông báo?
Kiểm tra xem trình duyệt có chặn thông báo không. Trên Android, một số hãng (Xiaomi, Oppo) có chế độ tiết kiệm pin tự động giết tiến trình chạy ngầm (Service Worker), cần hướng dẫn user cấp quyền "Autostart".
[/faqs]