คู่มือฉบับสมบูรณ์เกี่ยวกับ Notification Badge: ฟีเจอร์สำคัญเพื่อเพิ่ม Engagement ของแอป
ภาพรวมของค่า Badge
Notification Badge คือฟีเจอร์หลักที่ช่วยเพิ่มการมีส่วนร่วมของผู้ใช้ในแอปมือถือ
โดยจะแสดงจำนวนข้อความที่ยังไม่ได้อ่านบนไอคอนแอปโดยตรง Badge ช่วยกระตุ้นให้ผู้ใช้กลับมาใช้งานแอปและเพิ่มอัตราการเปิดการแจ้งเตือนได้อย่างมีประสิทธิภาพ
EngageLab ให้บริการโซลูชัน Badge ข้ามแพลตฟอร์มแบบครบวงจร เพื่อช่วยให้นักพัฒนาสร้างประสบการณ์ผู้ใช้ที่ดีที่สุด
ภาพรวมการรองรับของแต่ละ Channel
เนื่องจากข้อจำกัดของระบบในแต่ละผู้ผลิตมือถือ ช่องทาง push notification บางรายเท่านั้นที่รองรับการแสดง Badge สถานะการรองรับมีดังนี้:
| Vendor | รองรับ Badge / ตัวเลข Badge | หมายเหตุการใช้งาน | ข้อจำกัดของ Badge |
|---|---|---|---|
| Google FCM | รองรับ Badge | แสดงเป็นจุด (dot) ตามค่าเริ่มต้น ตามพฤติกรรมของระบบ | ไม่มีการกำหนดขีดจำกัดสูงสุดที่ชัดเจน |
| Huawei / Honor | รองรับ Badge แบบตัวเลข | ตัวเลข Badge เพิ่มขึ้นเมื่อมีการแจ้งเตือนใหม่ | โดยปกติจำกัดที่ 99 |
| Xiaomi | รองรับ Badge แบบตัวเลข | ทำงานตามตรรกะของระบบ แต่ละการแจ้งเตือนใหม่จะเพิ่มขึ้น 1 | ขีดจำกัดขึ้นกับระบบ ไม่มีระบุไว้อย่างชัดเจน |
| OPPO | รองรับการตั้งค่าแบดจ์ตัวเลขบนเดสก์ท็อปผ่านช่องทางผู้ผลิต | เปิดความสามารถแบดจ์ตัวเลขบนเดสก์ท็อปใน OPPO Open Platform และตั้งค่าด้วย badge_operation_type กับ badge_message_count หากยังไม่เปิดสิทธิ์ คำขออาจสำเร็จแต่แบดจ์อาจไม่แสดงผล |
ขีดจำกัดการแสดงผลสุดท้ายและนโยบายเดสก์ท็อปเป็นไปตาม OPPO |
| VIVO | รองรับการเพิ่มอัตโนมัติผ่านช่องทางผู้ผลิต และการตั้งค่าแบดจ์ด้วย SDK | ช่องทางผู้ผลิตใช้ add_badge การแจ้งเตือนในเครื่องและ setNotificationBadge/resetNotificationBadge ของ SDK ก็รองรับเช่นกัน ต้องเปิดสิทธิ์แบดจ์ vivo และเปิดแบดจ์เดสก์ท็อป |
ขีดจำกัดการแสดงผลสุดท้ายและพฤติกรรมขึ้นกับเวอร์ชันระบบและนโยบายเดสก์ท็อป |
| Meizu | ไม่รองรับ Badge แบบตัวเลข | รองรับเฉพาะจุดสีแดง (red dot) | – |
| iOS | รองรับ Badge แบบตัวเลข | สามารถจัดการตัวเลข Badge ผ่าน push payload หรือ SDK API | สูงมาก; ไม่มีขีดจำกัดที่ระบุไว้ |
ตัวอย่างการใช้งานที่พบบ่อย
- แอปโซเชียล: ซิงโครไนซ์จำนวนข้อความที่ยังไม่ได้อ่านแบบเรียลไทม์
- แอปอีคอมเมิร์ซ: แจ้งเตือนคำสั่งซื้อหรือรายการที่ต้องดำเนินการ
- แอปข่าว: แสดงจำนวนบทความที่ยังไม่ได้อ่าน
iOS Badge: การจัดการ Badge อย่างแม่นยำ
สถาปัตยกรรมทางเทคนิค

การตั้งค่า Badge ฝั่ง Client
ตั้งค่า Badge (พร้อม Callback)
รองรับตั้งแต่เวอร์ชัน: v5.2.0
+ (void)setBadge:(NSInteger)value completion:(void (^)(NSError *error))completion
ล้างค่า Badge
ใช้สำหรับลบค่า Badge ที่เก็บไว้บนเซิร์ฟเวอร์ MTPush เทียบเท่ากับการเรียก:
setBadge: 0
+ (void)resetBadge
การตั้งค่า Badge ฝั่ง Server
เมื่อส่ง push notification ต้องกำหนด field badge ใน payload ของ ios
| Field | Type | Optional | คำอธิบาย | หมายเหตุ |
|---|---|---|---|---|
| badge | Int หรือ String | Optional | ตัวเลข Badge บนไอคอนแอป | • สามารถตั้งค่าเป็น N, +N, หรือ -N โดยที่ N อยู่ในช่วง [0, 99]• หากค่าเป็น 10 Badge อาจถูกตีความเป็น N, 10+N หรือ 10-N (ค่าต่ำกว่า 0 จะล้าง Badge)• หากกำหนดเป็น 0 หรือค่าว่าง จะล้าง Badge• หากไม่กำหนด Badge จะคงค่าเดิม • MTPush API (SDK) กำหนดค่า Badge เริ่มต้นเป็น "+1" |
Huawei / Honor Badge
การตั้งค่าฝั่ง Client
<!-- การกำหนด permission ใน AndroidManifest.xml -->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<uses-permission android:name="com.hihonor.android.launcher.permission.CHANGE_BADGE"/>
การตั้งค่าบน Portal
สำคัญ:
ต้องกำหนด Activity หลัก (entry Activity) ของแอปให้ถูกต้อง Huawei และ Honor ใช้ตรรกะเดียวกัน
พารามิเตอร์ขั้นสูงฝั่ง Server
| พารามิเตอร์ | คำอธิบาย | คุณค่าทางธุรกิจ |
|---|---|---|
badge_add_num |
เพิ่มตัวเลข Badge | เหมาะกับแอปแชทเพื่อป้องกัน Badge ไม่ตรงกับสถานะจริง |
badge_set_num |
กำหนด Badge เป็นค่าเฉพาะ | เหมาะกับการแสดงสถานะ เช่น งานที่ต้องดำเนินการ |
badge_class |
ระบุ Activity ที่ใช้ Badge | เพื่อให้ Badge แสดงผลกับแอปเป้าหมายได้ถูกต้อง |
Xiaomi Badge
อุปกรณ์ที่ใช้ MIUI 6 ขึ้นไป รองรับ Badge แบบตัวเลข
ระบบ MIUI จะจัดการตรรกะ Badge ให้อัตโนมัติ:
📱 รับการแจ้งเตือน → badge +1 (นักพัฒนาไม่ต้องเขียนโค้ดเพิ่ม)
🔄 เปิดแอป → badge ถูกล้างโดยอัตโนมัติ
⚡ MIUI 6+ รองรับทุกรุ่น ครอบคลุมผู้ใช้ Xiaomi ส่วนใหญ่
แบดจ์ OPPO: การตั้งค่าฝั่งเซิร์ฟเวอร์ของผู้ผลิต
ตั้งค่าใน options.third_party_channel.oppo ของคำขอ push:
{
"badge_operation_type": 1
}
badge_operation_type=1: เพิ่มแบดจ์ทีละ 1 ไม่ต้องใช้badge_message_countbadge_operation_type=0: เขียนทับแบดจ์ปัจจุบันด้วยbadge_message_countค่า0คือล้างแบดจ์- ก่อนส่ง ต้องเปิดความสามารถแบดจ์ตัวเลขบนเดสก์ท็อปให้แอปใน OPPO Open Platform ฝั่งแอปไม่ต้องผสานโค้ดแบดจ์เพิ่ม
แบดจ์ vivo: ช่องทางผู้ผลิตและการควบคุมด้วย SDK
เพิ่มแบดจ์อัตโนมัติผ่านช่องทางผู้ผลิต:
{
"add_badge": true
}
ฟิลด์นี้อยู่ที่ options.third_party_channel.vivo สำหรับการแจ้งเตือนในเครื่องหรือการซิงก์จำนวนที่ยังไม่อ่านจากฝั่งธุรกิจ ให้เรียก MTPushPrivatesApi.setNotificationBadge เพื่อตั้งค่า และเรียก resetNotificationBadge เพื่อล้างค่า ผลลัพธ์จริงขึ้นกับสิทธิ์แบดจ์ vivo เวอร์ชันระบบ และสวิตช์แบดจ์เดสก์ท็อปของผู้ใช้ บน OriginOS การ +1 ใช้ API ระบบ add_badge ส่วน +N (N > 1) จะตั้งเป็นค่าเป้าหมายสะสม
ข้อแนะนำการใช้งานที่ดีที่สุด
กลยุทธ์ข้ามแพลตฟอร์มแบบรวมศูนย์
- แบ่งระดับการรองรับ: ให้ความสำคัญกับการรองรับ Badge แบบตัวเลขเต็มรูปแบบบน iOS, Huawei, Xiaomi
- สำรองความเข้ากันได้: ใช้จุดสีแดง (red dot) สำหรับ OPPO, VIVO และแพลตฟอร์มที่ไม่รองรับ
- ประสบการณ์ผู้ใช้สม่ำเสมอ: พยายามให้ตรรกะของ Badge เหมือนกันมากที่สุดในทุกแพลตฟอร์ม











