การแจ้งเตือนแบบพุชในการพัฒนามือถือ: สาระสำคัญ ประเภท และวิธีการทำงาน

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-03-15 เวลาอ่าน: 9 นาที

การแจ้งเตือนแบบพุชเป็นหนึ่งในวิธีที่มีประสิทธิภาพที่สุดในการโต้ตอบกับผู้ใช้หลังจากติดตั้งแอป ช่วยให้แจ้งเกี่ยวกับข้อความใหม่ ส่วนลด การอัปเดตเนื้อหา หรือเตือนเกี่ยวกับตะกร้าสินค้าที่ถูกละทิ้ง การแจ้งเตือนแบบพุช (push notifications) ทำงานผ่านบริการคลาวด์: Firebase Cloud Messaging (FCM) บน Android และ Apple Push Notification Service (APNS) บน iOS ในบทความนี้เราจะวิเคราะห์สถาปัตยกรรมการแจ้งเตือน ประเภท และขั้นตอนการตั้งค่าสำหรับทั้งสองแพลตฟอร์ม ดูรายละเอียดเพิ่มเติมได้ใน เอกสารทางการของ FCM

ประเด็นสำคัญ

  • FCM — บริการสากลสำหรับ Android และ iOS (ผ่านพร็อกซี APNS)
  • APNS — บริการดั้งเดิมของ Apple สำหรับ iOS, macOS, watchOS
  • Rich Notifications มีเนื้อหามัลติมีเดีย (รูปภาพ ปุ่ม เสียง) ผ่าน App Extensions
  • Silent Push อัปเดตข้อมูลในพื้นหลังโดยไม่แสดงให้ผู้ใช้เห็น
  • Device Token — ตัวระบุอุปกรณ์ที่ไม่ซ้ำกัน; ต้องจัดเก็บและอัปเดตบนเซิร์ฟเวอร์
  • Notification Channels (Android) และ Notification Categories (iOS) — การจัดกลุ่มและปรับแต่งการแจ้งเตือนโดยผู้ใช้

การแจ้งเตือนแบบพุชคืออะไร?

การแจ้งเตือนแบบพุชคือข้อความที่เซิร์ฟเวอร์ส่งไปยังอุปกรณ์มือถือโดยไม่มีการร้องขอจากแอป ข้อความผ่านบริการคลาวด์ (FCM หรือ APNS) ซึ่งจะส่งไปยังอุปกรณ์แม้ว่าแอปจะปิดอยู่ การแจ้งเตือนแบ่งออกเป็นสองประเภท: การแจ้งเตือนแบบแสดงผล (แสดงให้ผู้ใช้เห็น) และการแจ้งเตือนแบบข้อมูล (ส่งข้อมูลสำหรับการประมวลผลพื้นหลัง)

สถาปัตยกรรมการแจ้งเตือนแบบพุชประกอบด้วยสามองค์ประกอบ: (1) เซิร์ฟเวอร์แอป — ส่งคำขอไปยัง FCM/APNS; (2) บริการคลาวด์ — เส้นทางการแจ้งเตือน; (3) แอปไคลเอนต์ — รับและประมวลผลการแจ้งเตือน เซิร์ฟเวอร์ต้องทราบ Device Token ของอุปกรณ์เพื่อส่งการแจ้งเตือนไปยังอุปกรณ์นั้นโดยเฉพาะ สำหรับการส่งจำนวนมากใช้ Topic Subscription — การสมัครรับอุปกรณ์ในช่องตามหัวข้อ (ข่าวสาร โปรโมชั่น สภาพอากาศ)

บนแต่ละอุปกรณ์ การแจ้งเตือนจะถูกประมวลผลโดยระบบปฏิบัติการ: Android — ผ่าน NotificationManager และ NotificationChannel, iOS — ผ่าน UNUserNotificationCenter ผู้ใช้สามารถกำหนดค่าพฤติกรรมการแจ้งเตือนสำหรับแต่ละช่อง: อนุญาตเสียง แบนเนอร์ แสดงบนหน้าจอล็อก หรือปิดทั้งหมด การกำหนดค่าช่องที่ถูกต้อง ช่วยเพิ่มการมีส่วนร่วมและลดอัตราการยกเลิกการสมัคร

ที่ IT Sectr เราออกแบบระบบการแจ้งเตือนแบบพุชโดยคำนึงถึงคุณสมบัติเฉพาะของแพลตฟอร์มตั้งแต่เริ่มต้น การตัดสินใจหลัก: การเลือกระหว่าง FCM และ APNS โดยตรง รูปแบบเพย์โหลด ความถี่ในการส่ง และกลไกการสมัครรับข้อมูล ช่วยหลีกเลี่ยงสถานการณ์ที่การแจ้งเตือนไม่ถึงหรือถูกบล็อกโดยระบบ

FCM vs APNS

Firebase Cloud Messaging (FCM) คือบริการข้ามแพลตฟอร์มของ Google สำหรับส่งการแจ้งเตือน FCM รองรับ Android, iOS, Web และ Flutter บน iOS FCM ทำงานผ่าน APNS: FCM ส่งคำขอไปยัง APNS ซึ่งส่งการแจ้งเตือนไปยังอุปกรณ์ ข้อดีของ FCM: API เดียวสำหรับทั้งสองแพลตฟอร์ม การวิเคราะห์ในตัว การทดสอบ A/B หัวข้อและกลุ่มผู้ชม

Apple Push Notification Service (APNS) คือบริการดั้งเดิมของ Apple ทำงานบนอุปกรณ์ Apple เท่านั้น (iOS, macOS, watchOS, tvOS) ต้องการการอนุญาตโดยตรงผ่านใบรับรอง TLS หรือโทเค็น (JWT) APNS ให้ ความหน่วงในการส่งน้อยที่สุดและการรวมโดยตรงกับฟีเจอร์ iOS: PushKit, Notification Service Extension และการแจ้งเตือนที่สำคัญ

การเลือกระหว่าง FCM และ APNS ขึ้นอยู่กับสถาปัตยกรรมของโปรเจกต์ หากแอปสำหรับ iOS เท่านั้น — APNS ให้การควบคุมมากขึ้น หากข้ามแพลตฟอร์ม — FCM สะดวกกว่าด้วย API เดียว หลายโปรเจกต์ใช้ FCM เป็นบริการหลักและตั้งค่า PushKit เพิ่มเติมสำหรับ VoIP บน iOS แนวทางแบบไฮบริด ช่วยให้ได้รับสิ่งที่ดีที่สุดจากทั้งสองระบบ

คุณลักษณะ FCM APNS
แพลตฟอร์มAndroid, iOS, Web, FlutteriOS, macOS, watchOS, tvOS
การอนุญาตคีย์เซิร์ฟเวอร์ (Firebase Console)ใบรับรอง TLS หรือโทเค็น JWT
เพย์โหลดสูงสุด4 KB (data), 2 KB (notification)4 KB
หัวข้อในตัว (Topic Messaging)ไม่มี (ดำเนินการฝั่งเซิร์ฟเวอร์)
Silent Pushรองรับรองรับ (content-available)
PushKitไม่มีมี (VoIP, กิจกรรมสด)
การวิเคราะห์Firebase Analyticsไม่มีในตัว
การส่งไปยังอุปกรณ์ที่ปิดจำกัด (ขึ้นอยู่กับผู้ผลิต)ได้ ผ่าน PushKit

ประเภทของการแจ้งเตือน (Rich, Silent, Interactive)

Rich Notification (การแจ้งเตือนแบบสื่อสมบูรณ์)

Rich Notification คือการแจ้งเตือนที่มีไม่เพียงแค่ข้อความแต่ยังมีเนื้อหามัลติมีเดีย: รูปภาพ วิดีโอ เสียง และปุ่มดำเนินการ บน Android ดำเนินการผ่านสไตล์ NotificationCompat: BigPictureStyle (รูปภาพขนาดใหญ่), BigTextStyle (ข้อความย่อ/ขยาย), InboxStyle (รายการข้อความ), MediaStyle (ควบคุมการเล่น) บน iOS ใช้ Notification Content Extension — เป้าหมายแยกต่างหากพร้อม UI ที่กำหนดเองสำหรับการแจ้งเตือนแบบขยาย

Silent Push (การแจ้งเตือนแบบเงียบ)

Silent Push (content-available บน iOS) คือการแจ้งเตือนที่ส่งโดยไม่แสดงให้ผู้ใช้เห็น มีไว้สำหรับการอัปเดตข้อมูลพื้นหลัง: การซิงค์เนื้อหา การโหลดล่วงหน้า การอัปเดตวิดเจ็ต บน iOS Silent Push ต้องการเปิด Background Modes → Remote notifications บน Android ใช้ FirebaseMessagingService กับ onMessageReceived สำหรับจัดการการแจ้งเตือนพื้นหลัง สำคัญ: บน iOS Silent Push มีข้อจำกัดความถี่และไม่รับประกันการส่งหากแอปไม่ได้อยู่เบื้องหน้า

Interactive Notification (การแจ้งเตือนแบบโต้ตอบ)

Interactive Notification ช่วยให้ผู้ใช้ดำเนินการโดยไม่ต้องเปิดแอป บน Android คือปุ่ม (Action) ในการแจ้งเตือน: "ตอบกลับ", "อนุมัติ", "ปฏิเสธ" การดำเนินการประมวลผลผ่าน PendingIntent ซึ่งเริ่ม BroadcastReceiver หรือ Service บน iOS Notification Action ลงทะเบียนผ่าน UNNotificationAction และ UNNotificationCategory ปุ่มสามารถเป็น foreground (เปิดแอป), background (ทำงานในพื้นหลัง) หรือ destructive (การดำเนินการที่ไม่สามารถย้อนกลับ — ลบ, บล็อก)

Notification Content Extension และ Service Extension

Notification Content Extension (iOS) — ตัวควบคุมมุมมองที่กำหนดเองสำหรับแสดงเนื้อหาการแจ้งเตือนแบบขยายเมื่อกดค้างหรือ 3D Touch Notification Service Extension (iOS) — มิดเดิลแวร์สำหรับแก้ไขเนื้อหาการแจ้งเตือนก่อนแสดง: ถอดรหัสข้อความ E2E โหลดรูปภาพ ทำให้ข้อมูลลับไม่ชัดเจน บน Android ไม่มีสิ่งที่คล้ายคลึงกันโดยตรง — การแก้ไขทั้งหมดทำใน FirebaseMessagingService

การตั้งค่าการแจ้งเตือนบน Android และ iOS

การตั้งค่าบน Android

สำหรับ Android จำเป็นต้อง: (1) เพิ่ม Firebase SDK ในโปรเจกต์ (google-services.json); (2) สร้าง NotificationChannel (Android 8+) สำหรับแต่ละหมวดหมู่การแจ้งเตือน; (3) ดำเนินการ FirebaseMessagingService เพื่อรับโทเค็นและข้อความขาเข้า Notification Channel จำเป็น — หากไม่มี การแจ้งเตือนจะไม่แสดงบน Android 8+ ช่องมีลำดับความสำคัญ (IMPORTANCE_HIGH — เสียง + ป๊อปอัป, IMPORTANCE_LOW — ไม่มีเสียง) และผู้ใช้สามารถกำหนดค่าได้ในการตั้งค่าระบบ

การตั้งค่าบน iOS

สำหรับ iOS จำเป็นต้อง: (1) เปิดความสามารถ Push Notifications ใน Xcode; (2) กำหนดค่าคีย์ APNS บน Apple Developer Portal; (3) ขออนุญาตผ่าน UNUserNotificationCenter.requestAuthorization — นี่คือกล่องโต้ตอบระบบที่แสดงครั้งเดียว การตอบสนองของผู้ใช้ สำคัญมาก: หากไม่ได้รับอนุญาต การแจ้งเตือนจะไม่ถูกส่ง ขอแนะนำให้อธิบายให้ผู้ใช้ทราบว่าทำไมต้องมีการแจ้งเตือนก่อนแสดงกล่องโต้ตอบระบบ (pre-permission prompt)

เครื่องมือและโทเค็น

Device Token (iOS) และ Registration Token (Android) คือตัวระบุอุปกรณ์ที่ไม่ซ้ำกันสำหรับการแจ้งเตือนแบบพุช โทเค็นถูกสร้างขึ้นเมื่อเปิดแอปครั้งแรกและสามารถเปลี่ยนแปลงได้: เมื่อติดตั้งใหม่ ล้างข้อมูล รีเซ็ตการตั้งค่าความเป็นส่วนตัว เซิร์ฟเวอร์ต้องอัปเดตโทเค็นเป็นประจำ Firebase มี API ที่สะดวกสำหรับการจัดการโทเค็นผ่าน onNewToken รวมถึงแผงสำหรับส่งการแจ้งเตือนทดสอบ (Firebase Console → Cloud Messaging)

Topic Subscription เป็นหนึ่งในกลไกที่มีประสิทธิภาพที่สุดของ FCM อุปกรณ์สมัครรับหัวข้อ (เช่น "news", "promo_users_ios") และเซิร์ฟเวอร์ส่งการแจ้งเตือนตามหัวข้อโดยไม่ต้องเก็บรายการโทเค็น Firebase Topics รองรับผู้สมัครรับสูงสุดหนึ่งล้านคนต่อหัวข้อและการส่งแบบมีเงื่อนไข (Condition) ผ่านภาษานิพจน์: "'news' in topics && ('US' in topics || 'UK' in topics)"

Notification Payload คือโครงสร้าง JSON ที่ส่งผ่าน FCM/APNS สำหรับ FCM: แยก notification (ส่วนที่มองเห็น — หัวเรื่อง เนื้อหา รูปภาพ) และ data (ฟิลด์ที่กำหนดเองสำหรับแอป) สำหรับ APNS: พจนานุกรม aps พร้อม alert, badge, sound, category และ content-available โครงสร้างเพย์โหลดที่ถูกต้อง สำคัญมาก: หาก notification + data มาถึงพร้อมกัน แอปในพื้นหลังอาจไม่ได้รับ data ขอแนะนำให้ใช้เฉพาะข้อความ data สำหรับ Android และส่งฟิลด์ที่มองเห็นแยกต่างหากผ่าน FCM Console

คำถามที่พบบ่อย

ความแตกต่างระหว่าง FCM และ APNS คืออะไร?

FCM (Firebase Cloud Messaging) คือบริการของ Google สำหรับ Android และการแจ้งเตือนข้ามแพลตฟอร์ม APNS (Apple Push Notification Service) คือบริการของ Apple สำหรับ iOS/macOS เท่านั้น FCM สามารถส่งการแจ้งเตือน ผ่าน APNS บน iOS โดยทำหน้าที่เป็นพร็อกซีเซิร์ฟเวอร์

Rich Notification คืออะไร?

Rich Notification คือการแจ้งเตือนขั้นสูงพร้อมเนื้อหามัลติมีเดีย: รูปภาพ วิดีโอ เสียง ปุ่มดำเนินการ บน iOS ดำเนินการผ่าน Notification Content Extension; บน Android ผ่าน BigPictureStyle และ InboxStyle

Device Token ทำงานอย่างไร?

Device Token คือตัวระบุอุปกรณ์ที่ไม่ซ้ำกันสำหรับส่งการแจ้งเตือนแบบพุช บน Android คือ Registration Token จาก FCM; บน iOS คือ Device Token จาก APNS โทเค็นสามารถเปลี่ยนแปลงได้ เมื่อติดตั้งแอปใหม่หรือรีเซ็ตการตั้งค่า ดังนั้นจึงต้องอัปเดตบนเซิร์ฟเวอร์

Silent Push คืออะไรและจำเป็นเพราะอะไร?

Silent Push (การแจ้งเตือนแบบเงียบ) คือการแจ้งเตือนที่ไม่แสดงให้ผู้ใช้เห็น ใช้สำหรับอัปเดตข้อมูลพื้นหลัง: การซิงค์เนื้อหา การอัปเดตวิดเจ็ต การดึงข้อมูลล่วงหน้า บน iOS ต้องเปิด Background Modes → Remote notifications

PushKit แตกต่างจากการแจ้งเตือนแบบพุชทั่วไปอย่างไร?

PushKit คือเฟรมเวิร์กของ Apple สำหรับส่งการแจ้งเตือนลำดับความสำคัญสูงที่ใช้ในแอป VoIP (การโทร ข้อความ) PushKit ส่งการแจ้งเตือน แม้ว่าแอปจะถูกปิดและรับประกันการเปิดแอปสำหรับการประมวลผล

สรุป

  • FCM — บริการข้ามแพลตฟอร์มของ Google; APNS — บริการดั้งเดิมของ Apple
  • Rich Notification รวมสื่อและปุ่ม; Silent Push อัปเดตข้อมูลโดยไม่แสดงให้ผู้ใช้เห็น
  • Notification Channel (Android) และ Notification Category (iOS) — จำเป็นสำหรับการจัดกลุ่มการแจ้งเตือน
  • Device Token — ตัวระบุที่ไม่ซ้ำกัน; ต้องอัปเดตบนเซิร์ฟเวอร์เป็นประจำ
  • Topic Subscription ทำให้การส่งจำนวนมากง่ายขึ้นโดยไม่ต้องเก็บรายการโทเค็น
  • PushKit — สำหรับการแจ้งเตือนที่สำคัญ (VoIP, การแจ้งเตือนสำคัญ)
  • Notification Payload ต้องมีโครงสร้างตามแพลตฟอร์ม: notification + data สำหรับ FCM, aps สำหรับ APNS

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ