Cập nhật lần cuối:

Giới hạn ký tự thông báo đẩy - Hướng dẫn iOS & Android

15 phút đọc

Thông báo đẩy phải cạnh tranh sự chú ý trong khay thông báo đông đúc. Việc hiểu giới hạn ký tự theo từng nền tảng và thiết kế văn bản để đạt tác động tối đa trong những ràng buộc đó là điều thiết yếu cho tương tác người dùng. Những giới hạn này không chỉ xuất phát từ lựa chọn thiết kế UI mà còn từ các ràng buộc kỹ thuật về kích thước payload của APNs (Apple Push Notification service) và FCM (Firebase Cloud Messaging).

Giới hạn payload APNs và FCM - Nguyên nhân kỹ thuật gốc

Nguyên nhân cơ bản khiến văn bản thông báo đẩy bị giới hạn nằm ở giới hạn kích thước payload. Với API HTTP/2 hiện hành, APNs cho phép payload tối đa 4.096 byte (4 KB). Đây là giá trị của giao diện hiện tại: kết nối nhị phân kiểu cũ chỉ cho phép 2 KB và đã ngừng hoạt động từ tháng 3 năm 2021, nên các tài liệu cũ ghi 2 KB không còn phản ánh thực tế. Tin nhắn thông báo FCM cũng có cùng mức trần 4.096 byte, trong khi tin nhắn dữ liệu bị giới hạn ở 4.000 byte.

Payload chứa nhiều hơn chỉ tiêu đề và nội dung. Cài đặt âm thanh, số huy hiệu và dữ liệu tùy chỉnh (URL deep-link, ID chiến dịch, v.v.) đều chiếm không gian trong cùng một envelope được mã hóa JSON. Vì UTF-8 mã hóa ký tự đa byte ở mức 2–4 byte mỗi ký tự, số ký tự hiệu quả thay đổi theo ngôn ngữ. Sau khi trừ đi metadata và các trường tùy chỉnh, ngân sách văn bản thực tế thường ít hơn một nửa giới hạn payload thô.

Giới hạn ký tự theo nền tảng

Ngoài giới hạn payload, mỗi hệ điều hành áp đặt các ràng buộc hiển thị riêng. Trước khi xem bảng, cần lưu ý một điểm: tài liệu chính thức của các nền tảng quy định lượng nội dung hiển thị theo số dòng, chứ không quy định theo số ký tự. Tài liệu của Android chỉ nói rằng nội dung ở trạng thái thu gọn được cắt cho vừa một dòng, và không nêu bất kỳ ngưỡng ký tự nào.

Vì vậy, các con số trong bảng dưới đây là mức tham chiếu thực tế tính đến tháng 8 năm 2026, dựa trên cỡ chữ mặc định của hệ thống, và bao gồm cả những hạng mục không được nhà cung cấp công bố. Hãy đọc chúng như quan hệ tương đối giữa các khung hiển thị (khung nào rộng hơn khung nào) thay vì như những giá trị tuyệt đối cần tuân thủ chính xác. Cỡ chữ do người dùng đặt, ngôn ngữ và phiên bản hệ điều hành đều làm con số thực tế xê dịch.

Nền tảngGiới hạn tiêu đềGiới hạn nội dungGhi chú
iOS (Màn hình khóa)~50 ký tự~178 ký tự~4 dòng trước khi bị cắt
iOS (Banner)~50 ký tự~80 ký tự2 dòng, biến mất nhanh
iOS (Trung tâm thông báo)~50 ký tự~178 ký tựNhấn giữ để mở rộng toàn bộ văn bản
Android (Thu gọn)~65 ký tự~45 ký tựMột dòng
Android (Mở rộng)~65 ký tự~240 ký tựBigTextStyle hiển thị toàn bộ văn bản
Web Push (Chrome)~50 ký tự~120 ký tựThay đổi theo hệ điều hành
Web Push (Firefox)~50 ký tự~140 ký tựTrung tâm thông báo
macOS~40 ký tự~130 ký tựToàn bộ văn bản trong Trung tâm thông báo
Apple Watch~20 ký tự~60 ký tựShort Look biến mất trong vài giây
Wear OS~30 ký tự~80 ký tựCó thể cuộn để xem toàn bộ văn bản

Một chi tiết quan trọng: ngay cả trên cùng một hệ điều hành, ngữ cảnh hiển thị cũng ảnh hưởng rất lớn. Banner iOS hiển thị khoảng 80 ký tự nội dung trước khi biến mất, trong khi màn hình khóa hiển thị khoảng 178 ký tự trên bốn dòng. Trung tâm thông báo cho phép người dùng nhấn giữ để xem toàn bộ văn bản payload.

Cùng một thông báo bị cắt ở đâu - mô phỏng khung hiển thị

Màn hình khóa iOS (nội dung ~178 ký tự)

Thông báo cửa hàng

Chỉ đến 23h hôm nay: giỏ hàng giảm tới 50%

Sản phẩm bạn đã lưu vừa giảm giá. Nhập mã SAVE20 khi thanh toán để giảm thêm 20%. Một số kích cỡ còn rất ít hàng, hãy kiểm tra trước 23h hôm nay.

Cả 145 ký tự nội dung đều đọc được

Banner iOS (nội dung ~80 ký tự)

Thông báo cửa hàng

Chỉ đến 23h hôm nay: giỏ hàng giảm tới 50%

Sản phẩm bạn đã lưu vừa giảm giá. Nhập mã SAVE20 khi thanh toán để giảm thêm…

Con số 20% và hạn 23h đều bị cắt

Android thu gọn (nội dung ~45 ký tự)

Thông báo cửa hàng

Chỉ đến 23h hôm nay: giỏ hàng giảm tới 50%

Sản phẩm bạn đã lưu vừa giảm giá. Nhập mã…

Mất luôn mã giảm giá ngay sau chữ "Nhập mã"

Cùng một thông báo (tiêu đề 42 ký tự, nội dung 145 ký tự) đặt vào ba khung hiển thị. Tiêu đề nằm dưới cả mức ~50 ký tự của iOS và 65 ký tự của Android nên đọc được ở mọi khung, còn nội dung bị cắt ở 45, 80 hoặc 178 ký tự tùy khung. Đọc bảng trên theo cách "câu văn dừng lại ở đâu" sẽ thấy rõ vì sao phải đặt kết luận lên đầu.

Phân bổ số ký tự theo loại thông báo

Thay vì tìm một con số "chuẩn" dùng cho mọi thông báo, hãy chia thông báo theo mục đích rồi phân bổ số ký tự khác nhau cho từng loại. Cách chia đơn giản nhất là hai loại sau.

Cái bẫy thường gặp là dùng chung một mẫu (template) cho cả hai loại. Khi mẫu được thiết kế cho thông báo khuyến mãi, thông báo xác nhận sẽ bị chèn thêm phần chào hỏi mở đầu và con số quan trọng bị đẩy ra khỏi khung hiển thị thu gọn; ngược lại, khi mẫu được thiết kế cho thông báo xác nhận, thông báo dẫn dắt lại mất phần điều kiện nên người dùng không hiểu vì sao phải mở. Với mỗi mẫu đang dùng, hãy kiểm tra một điều: dữ kiện quan trọng nhất có nằm trong phạm vi hiển thị của khung hẹp nhất hay không.

Giống như email doanh nghiệp, sự ngắn gọn là thiết yếu, nhưng thông báo đẩy đòi hỏi nén nhiều hơn nữa. Với chế độ xem thu gọn chỉ hiển thị 1–2 dòng, 40 ký tự đầu tiên của nội dung phải chứa thông điệp cốt lõi.

Tại sao giới hạn ký tự khác nhau giữa các nền tảng

Thông báo banner iOS bị giới hạn ở hai dòng theo thiết kế. Thông báo vốn được thiết kế như một sự ngắt quãng đối với việc người dùng đang làm, nên vùng hiển thị được giữ nhỏ một cách có chủ đích: nó phải đủ để nhận ra nội dung mà không chiếm lấy toàn bộ màn hình. Bắt đầu từ iOS 16, thông báo màn hình khóa được chuyển xuống cuối màn hình để ưu tiên hiển thị hình nền, càng thu hẹp thêm vùng hiển thị.

Chế độ xem mở rộng của Android đi theo cách nghĩ về giao diện thường được gọi là tiết lộ dần dần (progressive disclosure). Trạng thái thu gọn hiển thị tóm tắt một dòng; nếu người dùng quan tâm, họ có thể mở rộng để đọc toàn bộ tin nhắn. Kể từ Android 13, quyền thông báo đã chuyển sang mô hình đồng ý chủ động yêu cầu sự đồng ý rõ ràng của người dùng thông qua quyền POST_NOTIFICATIONS - tương tự hành vi iOS. Thay đổi này đã làm giảm tỷ lệ đồng ý trên Android, khiến việc cung cấp thông báo chất lượng cao cho những người dùng đã cấp quyền trở nên quan trọng hơn bao giờ hết.

Giới hạn ký tự thông báo đa phương tiện và cân nhắc thiết kế

Thông báo đa phương tiện - sử dụng Notification Content Extensions của iOS và BigPictureStyle / BigTextStyle của Android - hỗ trợ hình ảnh, nút hành động và carousel. Tuy nhiên, chúng tạo ra các ràng buộc văn bản khác với thông báo văn bản thuần.

Ràng buộc hiển thị thiết bị đeo - Trường hợp biên bị bỏ qua

Apple Watch và thiết bị Wear OS áp đặt giới hạn ký tự chặt hơn cả điện thoại thông minh. Trên Apple Watch, Short Look (hiển thị trong vài giây khi nhận thông báo) chỉ hiển thị tên ứng dụng và một phần tiêu đề - nội dung không hiển thị cho đến khi người dùng chuyển sang Long Look. Ngay cả trong Long Look, màn hình nhỏ khiến văn bản xuống dòng ở khoảng 60 ký tự.

Trên Wear OS, thông báo xuất hiện dưới dạng thẻ mà người dùng có thể cuộn qua, nhưng chế độ xem ban đầu chỉ hiển thị tiêu đề và khoảng 30 ký tự đầu tiên của nội dung. Vì người dùng thiết bị đeo thường kiểm tra thông báo khi đang di chuyển hoặc tập thể dục, chỉ riêng tiêu đề phải truyền tải thông tin thiết yếu. Đối với thông báo tối ưu cho thiết bị đeo, hãy giữ tiêu đề dưới 20 ký tự và đặt thông điệp cốt lõi trong 30 ký tự đầu tiên của nội dung.

Ràng buộc thông báo đẩy Web

Thông báo đẩy web khác biệt đáng kể giữa các tổ hợp trình duyệt và hệ điều hành. Chrome, Firefox và Safari mỗi trình duyệt hiển thị số ký tự và kiểu trực quan khác nhau, vì vậy thiết kế cho môi trường hạn chế nhất là cách tiếp cận an toàn nhất.

Safari bắt đầu hỗ trợ Web Push từ macOS Ventura, nhưng trên iOS, Web Push chỉ khả dụng từ iOS 16.4 trở đi và chỉ dành cho PWA (ứng dụng được thêm vào màn hình chính). Các tab trình duyệt thông thường không thể gửi Web Push trên iOS, điều này hạn chế khả năng tiếp cận người dùng iOS.

Theo nguyên tắc chung, tiêu đề dưới 30 ký tự và nội dung dưới 80 ký tự sẽ hiển thị không bị cắt trên các tổ hợp trình duyệt-hệ điều hành chính. Với Web Push, tên nguồn gửi được hiển thị theo tên miền hoặc tên trình duyệt nên người dùng khó nhận ra ngay đó là thông báo của trang nào; vì vậy biểu tượng và hình huy hiệu nên được đặt để nhận diện nguồn gửi, và nếu tên thương hiệu chưa xuất hiện ở đâu khác thì hãy đưa nó vào đầu tiêu đề.

Thiết kế A/B Test cho thông báo đẩy

A/B test thông báo đẩy đòi hỏi cách tiếp cận khác với A/B test email. Thông báo không thể thu hồi sau khi gửi, và phản ứng của người dùng tập trung trong vài phút, vì vậy thiết kế thử nghiệm phải tính đến những ràng buộc này.

Chiến lược ký tự thông báo cá nhân hóa

Thông báo cá nhân hóa chèn dữ liệu động - tên người dùng, tên sản phẩm hoặc số dư tài khoản - vào mẫu, nghĩa là phần văn bản cố định phải được điều chỉnh kích thước để chứa các phần chèn có độ dài thay đổi. Ví dụ, một mẫu như "{username}, bạn đã để lại sản phẩm trong giỏ hàng" sẽ thay đổi tổng độ dài tùy thuộc vào tên người dùng.

Tên người dùng thường chỉ gồm vài ký tự, nhưng cũng có những trường hợp vượt quá 20 ký tự. Khi thiết kế mẫu, hãy giữ phần cố định dưới 25 ký tự và dành ít nhất 15 ký tự cho phần động, để tiêu đề vẫn hiển thị không bị cắt cả với tên dài.

Điều dễ bị bỏ qua khi cá nhân hóa là chuyện phần chèn thất bại. Nếu dữ liệu chưa có hoặc không lấy được, mẫu có thể hiện ra dạng "{username}, bạn đã để lại sản phẩm..." hoặc mất hẳn phần tên và trở thành một câu vô nghĩa. Vì vậy hãy chuẩn bị một văn bản thay thế cho mọi phần chèn (ví dụ: "Bạn" thay cho tên) và trước khi phát hành hãy kiểm tra hiển thị với hai trường hợp biên: giá trị dài nhất có thể, và chuỗi rỗng. Chỉ cần xem hai trường hợp này trên khung hiển thị hẹp nhất là đã chặn được phần lớn sự cố.

Ngăn chặn mệt mỏi thông báo - Tần suất và số ký tự

Với thông báo đẩy, "không gửi quá nhiều" là điều tối quan trọng. Gửi nhiều lần trong một ngày làm tăng rủi ro người dùng tắt thông báo hoặc gỡ ứng dụng. Việc tắt thông báo là một dạng rời đi gần như không thể đảo ngược: rất khó chờ người dùng tự bật lại, và phía gửi lại khó nhận ra rằng thông báo "không còn đến được" nữa. Nếu chỉ theo dõi tỷ lệ mở, bạn sẽ không thấy được việc tổng số người nhận đang âm thầm giảm đi.

Tần suất và số ký tự có mối tương quan. Khi gửi thường xuyên (một lần mỗi ngày trở lên), hãy giữ mỗi thông báo cực ngắn (tiêu đề dưới 15 ký tự, nội dung dưới 30) để giảm thiểu tải nhận thức. Khi gửi ít hơn (1–2 lần mỗi tuần), nội dung dài hơn một chút (60–80 ký tự) với chi tiết phong phú hơn có thể chấp nhận được mà không gây mệt mỏi.

Loại thông báo cũng quan trọng. Thông báo giao dịch (xác nhận đơn hàng, cập nhật vận chuyển) được miễn giới hạn tần suất vì người dùng mong đợi chúng theo thời gian thực. Tuy nhiên, thông báo quảng cáo nên giới hạn ở mức 2–5 lần mỗi tuần cho hầu hết ứng dụng. Triển khai giới hạn tần suất theo người dùng (số lần gửi tối đa trong một khoảng thời gian cuộn) cung cấp biện pháp bảo vệ có hệ thống chống lại mệt mỏi thông báo.

Sự khác biệt tỷ lệ cấp quyền iOS và Android

iOS từ đầu đã yêu cầu người dùng cấp quyền thông báo một cách rõ ràng, trong khi Android 12 trở về trước bật thông báo theo mặc định cho mọi ứng dụng. Từ Android 13, quyền POST_NOTIFICATIONS cần được người dùng đồng ý rõ ràng, nên hiện nay cả hai hệ điều hành đều có cùng tiền đề: thông báo chỉ đến được với những người đã cấp quyền. Sau thay đổi này, tỷ lệ đồng ý trên Android có xu hướng giảm.

Đối với ứng dụng iOS, thời điểm và cách diễn đạt yêu cầu cấp quyền rất quan trọng. Thay vì yêu cầu ngay lần khởi chạy đầu tiên, mô hình "tiền cấp quyền" - hỏi sau khi người dùng đã trải nghiệm giá trị (ví dụ: sau lần mua đầu tiên hoặc thêm mục yêu thích) - hiệu quả hơn nhiều. Hãy dùng một hộp thoại trong ứng dụng để giải thích lợi ích của thông báo trước, và chỉ khi người dùng chọn "nhận thông báo" thì mới gọi hộp thoại cấp quyền của hệ điều hành. Lý do là hộp thoại của hệ điều hành chỉ hiện được một lần: khi đã bị từ chối, ứng dụng không thể gọi lại mà phải hướng dẫn người dùng vào tận màn hình cài đặt. Đặt hộp thoại trong ứng dụng lên trước chính là để dành cơ hội một lần đó cho những người thực sự quan tâm.

Các lỗi thường gặp

Kỹ thuật thông báo chuyên nghiệp

Kết luận

Giới hạn ký tự thông báo đẩy được định hình bởi cả giới hạn payload APNs/FCM và triết lý thiết kế UI của mỗi hệ điều hành. Ràng buộc hiển thị khác nhau không chỉ giữa iOS và Android mà còn giữa màn hình khóa, banner, trung tâm thông báo và thiết bị đeo. Để an toàn đa nền tảng, hãy giữ tiêu đề dưới 20 ký tự và nội dung dưới 40. Việc phân bổ số ký tự theo loại thông báo (để xác nhận, hay để dẫn dắt hành động), cải thiện liên tục bằng A/B test, và thiết kế cá nhân hóa có tính đến cả trường hợp phần chèn bị thất bại là những yếu tố quyết định hiệu quả của thông báo. Sử dụng Bộ đếm ký tự để xác minh văn bản thông báo của bạn phù hợp trước khi gửi.

Câu hỏi thường gặp

Thông báo đẩy trên iOS hiển thị được bao nhiêu ký tự?
Trên màn hình khóa và Trung tâm thông báo, mức tham khảo là tiêu đề khoảng 50 ký tự và nội dung khoảng 178 ký tự; ở dạng banner thì nội dung khoảng 80 ký tự trên hai dòng. Trong Trung tâm thông báo, người dùng có thể nhấn giữ để mở rộng toàn bộ văn bản. Thông báo kèm hình ảnh làm vùng hiển thị nội dung thu nhỏ khoảng 30%, chỉ còn lại khoảng 120 ký tự trên màn hình khóa.
Thông báo đẩy trên Android hiển thị được bao nhiêu ký tự?
Tiêu đề là 65 ký tự, còn nội dung ở trạng thái thu gọn bị lược bớt sau khoảng 45 ký tự (một dòng). Khi mở rộng bằng BigTextStyle, có thể hiển thị tối đa 240 ký tự. Thông tin chắc chắn muốn người đọc thấy nên đặt trong khoảng 40 ký tự đầu tiên, phần vẫn hiện khi thu gọn.

Chia sẻ bài viết này