การแจ้งเตือน Push ในการพัฒนามือถือ — สาระสำคัญ ประเภทต่าง ๆ และวิธีการทำงาน

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

การแจ้งเตือน Push คือข้อความที่เซิร์ฟเวอร์ส่งไปยังอุปกรณ์มือถือแม้ในขณะที่แอปพลิเคชันปิดอยู่ ตามข้อมูลของ Google Firebase, 2024 การแจ้งเตือน Push จะถูกประมวลผลผ่านบริการเฉพาะทาง — FCM บน Android และ APNS บน iOS ซึ่งรองรับ การส่งแบบเรียลไทม์ ไปยังอุปกรณ์นับล้านเครื่องพร้อมกัน การแจ้งเตือนเหล่านี้กลายเป็นส่วนสำคัญของประสบการณ์ผู้ใช้ในแอปพลิเคชันมือถือสมัยใหม่

สาระสำคัญ

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

การแจ้งเตือน Push คืออะไร?

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

ความหมายและวัตถุประสงค์

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

สถิติการใช้งานแสดงให้เห็นว่าการแจ้งเตือน Push ที่กำหนดค่าอย่างถูกต้องจะเพิ่ม retention ของแอปพลิเคชันได้ 30-60% อย่างไรก็ตามความถี่ที่มากเกินไปของการแจ้งเตือนทำให้เกิดการยกเลิก — ผู้ใช้มากกว่า 60% ปิดการแจ้งเตือนหากถูกส่งบ่อยกว่าสามครั้งต่อวัน

สถาปัตยกรรมของระบบ Push

ระบบ Push ประกอบด้วยสามองค์ประกอบ: เซิร์ฟเวอร์แอปพลิเคชัน (app server), บริการของแพลตฟอร์ม (FCM/APNS) และแอปพลิเคชันไคลเอนต์บนอุปกรณ์ เซิร์ฟเวอร์ส่งคำขอไปยังบริการของแพลตฟอร์ม ซึ่งจะส่งการแจ้งเตือนไปยังอุปกรณ์เป้าหมายผ่านการเชื่อมต่อถาวรกับระบบปฏิบัติการ

การแจ้งเตือน Push ทำงานอย่างไร?

กลไกการส่ง ของการแจ้งเตือน Push ขึ้นอยู่กับการเชื่อมต่อถาวรระหว่างอุปกรณ์และบริการของแพลตฟอร์ม ระบบปฏิบัติการจะรักษาช่องทางการสื่อสารที่เข้ารหัสไว้ ซึ่งข้อความ Push ทั้งหมดจะถูกส่งผ่าน

การลงทะเบียนและการรับโทเค็น

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

kotlin
class FirebaseMessagingService :
    FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        sendTokenToServer(token)
    }

    override fun onMessageReceived(
        message: RemoteMessage
    ) {
        showNotification(message.notification)
    }
}

การส่งผ่านเซิร์ฟเวอร์แอปพลิเคชัน

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

js
fetch("https://fcm.googleapis.com/fcm/send", {
    method: "POST",
    headers: {
        "Authorization": "key=AIzaSy...",
        "Content-Type": "application/json"
    },
    body: JSON.stringify({
        to: "device_token_here",
        notification: {
            title: "ข้อความใหม่",
            body: "คุณมีการแจ้งเตือนใหม่!"
        }
    })
})

FCM vs APNS: เปรียบเทียบแพลตฟอร์ม

การเลือกระหว่าง FCM และ APNS ขึ้นอยู่กับแพลตฟอร์มเป้าหมาย FCM รองรับ Android และ iOS ส่วน APNS รองรับเฉพาะระบบนิเวศของ Apple มาดูความแตกต่างที่สำคัญซึ่งสำคัญสำหรับการพัฒนาแอปพลิเคชันมือถือแบบข้ามแพลตฟอร์ม

Firebase Cloud Messaging (FCM)

FCM เป็นบริการของ Google ที่ทำงานบน Google Play Services รองรับรูปแบบการส่งสองแบบ: การแจ้งเตือนแบบแสดงผลอัตโนมัติ (display notifications) และ การแจ้งเตือนแบบข้อมูล ซึ่งแอปพลิเคชันจะจัดการด้วยตนเอง FCM ใช้งานได้ฟรีและไม่มีข้อจำกัดเกี่ยวกับจำนวนข้อความที่ส่ง

Apple Push Notification Service (APNS)

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

คุณลักษณะFCMAPNS
แพลตฟอร์มAndroid, iOS, WebiOS, macOS, watchOS
ข้อกำหนดGoogle Play ServicesApple Developer Program
สื่อสูงสุด 4 KB (data)สูงสุด 10 MB (attachments)
ลำดับความสำคัญnormal/highimmediate/power-saving
ค่าใช้จ่ายฟรีฟรี (ต้องมีบัญชี)

ประเภทของการแจ้งเตือน Push

การแจ้งเตือน Push ถูกจำแนกตามวิธีการแสดงผลและวัตถุประสงค์ การเข้าใจประเภทต่าง ๆ ช่วยในการเลือกกลยุทธ์ที่เหมาะสมสำหรับแต่ละสถานการณ์การโต้ตอบกับผู้ใช้

การแจ้งเตือนแบบข้อความ (Display Notifications)

ประเภทที่พบบ่อยที่สุดคือ การแจ้งเตือนแบบแสดงผล พร้อมหัวเรื่องและเนื้อหา ระบบปฏิบัติการจะแสดงในแผงแจ้งเตือนโดยอัตโนมัติ บนหน้าจอล็อก และในรูปแบบแบนเนอร์ นักพัฒนาสามารถกำหนดค่าเสียง การสั่น ไอคอน และปุ่มปฏิบัติการสำหรับการดำเนินการโดยตรง (ตอบกลับ เปิด ปฏิเสธ)

การแจ้งเตือนแบบข้อมูล (Data Notifications)

การแจ้งเตือนแบบข้อมูล มี เฉพาะ payload โดยไม่มีการแสดงผลทางภาพ แอปพลิเคชันจะประมวลผลในพื้นหลัง: ซิงค์ข้อมูล อัปเดตแคช หรือเริ่มการดาวน์โหลด บน Android การแจ้งเตือนแบบข้อมูล จะถูกส่งอย่างแน่นอน ส่วนบน iOS — เฉพาะเมื่อแอปพลิเคชันทำงานอยู่หรือผ่าน background fetch

การแจ้งเตือนแบบมัลติมีเดียและ rich

ระบบปฏิบัติการมือถือสมัยใหม่รองรับ การแจ้งเตือนแบบขยายและสื่อ พร้อมรูปภาพ GIF วิดีโอและเสียง บน iOS ทำได้ผ่าน UNNotificationAttachment บน Android — ผ่าน BigPictureStyle และ InboxStyle สำหรับการปรับแต่งลักษณะการแจ้งเตือนในแผงแจ้งเตือนของระบบ

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

การแจ้งเตือนแบบเงียบ ไม่แสดงต่อผู้ใช้ และใช้สำหรับการซิงค์พื้นหลัง บน iOS มีลำดับความสำคัญสูงสำหรับงานประเภทการอัปเดตข้อมูลก่อนเปิดแอปพลิเคชัน Android ถือว่าเป็น การแจ้งเตือนแบบข้อมูล ที่มีลำดับความสำคัญต่ำ

การตั้งค่าการแจ้งเตือน Push ในโปรเจกต์

การตั้งค่าการแจ้งเตือน Push ต้องดำเนินการในระดับโครงสร้างพื้นฐาน ส่วนของเซิร์ฟเวอร์ และโค้ดไคลเอนต์ มาดูกระบวนการทั่วไปสำหรับโปรเจกต์มือถือแบบข้ามแพลตฟอร์ม

การตั้งค่า FCM สำหรับ Android

สำหรับ Android จำเป็นต้องสร้างโปรเจกต์ใน Firebase Console เพิ่ม google-services.json ในโปรเจกต์ และกำหนดค่า FirebaseMessagingService โทเค็นอุปกรณ์จะได้รับผ่าน FirebaseInstanceId หรือ FirebaseMessaging.getInstance().token จากนั้นส่งไปยังเซิร์ฟเวอร์ผ่าน API เมื่อเปิดใช้งานครั้งแรกหรือเมื่อมีการเปลี่ยนแปลง

การตั้งค่า APNS สำหรับ iOS

สำหรับ iOS จำเป็นต้องสมัครสมาชิก Apple Developer Program สร้าง ใบรับรอง Push หรือ คีย์ APNS ใน Developer Portal และเปิดใช้งาน Capability Push Notifications ใน Xcode การลงทะเบียนการแจ้งเตือนทำผ่าน UIApplication.shared.registerForRemoteNotifications โดยรับ deviceToken ใน AppDelegate

swift
import UIKit
import UserNotifications

@main
class AppDelegate: UIResponder,
    UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        didRegisterForRemoteNotificationsWithDeviceToken
        deviceToken: Data
    ) {
        let token = deviceToken
            .map { String.format("%02x", $0) }
            .joined()
        // ส่ง token ไปยังเซิร์ฟเวอร์ของคุณ
    }
}

การส่งจากฝั่งเซิร์ฟเวอร์

ในฝั่งเซิร์ฟเวอร์ การแจ้งเตือน Push จะถูกส่งผ่าน REST API หรือ Admin SDK สำหรับ FCM ใช้ Firebase Admin SDK (พร้อมใช้งานสำหรับ Node.js, Java, Python, Go) สำหรับ APNS ใช้ไลบรารี pusher (pushy สำหรับ Java, apn2 สำหรับ Node.js) แนะนำให้เก็บโทเค็นในฐานข้อมูลพร้อมtimestamp ของการอัปเดตล่าสุด

ความปลอดภัยของการแจ้งเตือน Push

ความปลอดภัยของการแจ้งเตือน Push มีความสำคัญอย่างยิ่ง เนื่องจากข้อมูลที่ละเอียดอ่อนอาจถูกส่งผ่านทางนั้น ทั้งสองแพลตฟอร์มมีกลไกการป้องกันพื้นฐาน แต่นักพัฒนามีหน้าที่ต้องใช้อย่างถูกต้อง

การเข้ารหัส payload

Payload ของการแจ้งเตือน Push อาจมี ข้อมูลส่วนบุคคล ของผู้ใช้: ชื่อ จำนวนเงินธุรกรรม ลิงก์ไปยังข้อความ แม้ว่าช่องทางการสื่อสารระหว่าง FCM/APNS และอุปกรณ์จะถูกเข้ารหัส ข้อมูลอาจถูกดักจับในระดับแอปพลิเคชันเมื่อมีการดักจับการแจ้งเตือนโดยซอฟต์แวร์ของบุคคลที่สาม แนะนำให้เข้ารหัส payload ที่ละเอียดอ่อนบนเซิร์ฟเวอร์ด้วยอัลกอริทึม AES-256 และถอดรหัสบนอุปกรณ์ด้วยคีย์ที่เก็บไว้ใน Keychain (iOS) หรือ EncryptedSharedPreferences (Android)

การตรวจสอบโทเค็นบนเซิร์ฟเวอร์

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

การป้องกันสแปมจากการแจ้งเตือน

หากไม่มีการควบคุมความถี่ การแจ้งเตือน Push อาจกลายเป็น เครื่องมือสแปม ที่ทำให้ผู้ใช้รำคาญและลด retention ให้ตั้งค่าขีดจำกัดบนเซิร์ฟเวอร์: ไม่เกิน 5 การแจ้งเตือนต่อชั่วโมงต่อผู้ใช้หนึ่งคน และไม่เกิน 3 ข้อความที่เหมือนกัน สำหรับการแจ้งเตือนทางธุรกรรม (ยืนยันคำสั่งซื้อ เปลี่ยนรหัสผ่าน) ขีดจำกัดอาจสูงกว่า — ถึง 10 ต่อชั่วโมง เนื่องจากเป็นข้อมูลที่สำคัญอย่างยิ่ง ใช้ rate limiting ในระดับ API การส่งเพื่อป้องกันไม่ให้ผู้ไม่หวังดีเรียกส่งจำนวนมากผ่านเซิร์ฟเวอร์ของคุณ

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

สามารถส่งการแจ้งเตือน Push โดยไม่ใช้ FCM บน Android ได้หรือไม่?

ได้ ผ่าน การเชื่อมต่อตรงไปยัง APNS ไม่รองรับบน Android — สำหรับอุปกรณ์ที่ไม่มี Google Play Services จะใช้ทางเลือกอื่นเช่น Huawei Mobile Services (HMS) และการเชื่อมต่อ WebSocket ของตัวเอง อย่างไรก็ตาม FCM ยังคงเป็นมาตรฐานสำหรับแอปพลิเคชันส่วนใหญ่เนื่องจากใช้งานฟรีและมีความน่าเชื่อถือ

การส่ง Push ทำงานอย่างไรเมื่ออินเทอร์เน็ตถูกปิด?

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

ทำไมการแจ้งเตือน Push ถึงไม่มาถึงบน iOS?

สาเหตุที่พบบ่อยที่สุดคือ ใบรับรอง Push หมดอายุ (มีอายุ 1 ปี) โทเค็นอุปกรณ์ไม่ถูกต้อง ปิดการแจ้งเตือนในการตั้งค่า หรือเปิดโหมดประหยัดพลังงาน ตรวจสอบใบรับรอง ใน Apple Developer Console และตรวจสอบให้แน่ใจว่าแอปพลิเคชันขออนุญาตผ่าน UNUserNotificationCenter

จะติดตามได้อย่างไรว่าผู้ใช้เปิดการแจ้งเตือน Push แล้ว?

บน Android ใช้ PendingIntent ใน NotificationCompat.Builder พร้อมติดตามการเปิดผ่าน Intent บน iOS — ใช้เมธอด UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:) FCM ให้รายงานการส่งและการเปิดสำหรับการแจ้งเตือนแต่ละครั้ง

การแจ้งเตือน Push ส่งผลต่อแบตเตอรี่หรือไม่?

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

สรุป

  • การแจ้งเตือน Push — ข้อความจากเซิร์ฟเวอร์ไปยังอุปกรณ์ผ่าน FCM หรือ APNS
  • โทเค็นอุปกรณ์ — ตัวระบุเฉพาะสำหรับการส่ง Push แบบระบุตำแหน่ง
  • FCM รองรับ Android, iOS และ Web ส่วน APNS — เฉพาะระบบนิเวศของ Apple
  • การแจ้งเตือนแบบข้อมูล จะถูกประมวลผลในพื้นหลังโดยไม่แสดงต่อผู้ใช้
  • การแจ้งเตือนแบบสื่อ บน iOS รองรับไฟล์แนบสูงสุด 10 MB ส่วนบน Android — ผ่านสไตล์แบบขยาย
  • ใบรับรอง APNS ต้องต่ออายุทุกปีใน Apple Developer Portal
  • Rate limiting ของ FCM และ APNS ปกป้องผู้ใช้จากสแปมการแจ้งเตือน โดยจำกัดความถี่ในการส่งต่อแต่ละอุปกรณ์

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

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

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

อ่านเพิ่มเติม