ตั้งค่าและจัดการลำดับความสำคัญของข้อความ

คุณมี 2 ตัวเลือกในการกำหนดลำดับความสำคัญของการนำส่งข้อความดาวน์สตรีมใน Android ได้แก่ สำคัญปกติและสำคัญสูง การส่งข้อความที่มีลําดับความสําคัญปกติและสูงทํางานดังนี้

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

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

การเลือกระหว่างข้อความที่มีลำดับความสำคัญสูงและปกติ

แม้ว่าข้อความที่มีลําดับความสําคัญปกติจะเหมาะกับการอัปเดตทั่วไป แต่ให้เลือกลําดับความสําคัญสูงเมื่อคุณต้องการส่งข้อความทันทีสําหรับเรื่องเร่งด่วนหรือการดำเนินการ เนื่องจากเวลานำส่งข้อความที่มีลำดับความสำคัญปกติอาจได้รับผลกระทบจากโหมด "Doze" การตั้งค่าการแจ้งเตือนที่ผู้ใช้มองเห็นส่วนใหญ่ให้มีลำดับความสำคัญสูงจะช่วยให้มั่นใจได้ว่าข้อความเหล่านั้นจะได้รับการนําส่งทันที เช่น การแจ้งเตือนต่างๆ เช่น ข้อความแชท ปัญหาเกี่ยวกับบัญชี หรือการอัปเดตการนำส่งอาหาร ควรตั้งค่าเป็นลำดับความสำคัญสูง

การรับส่งข้อความสำหรับข้อความที่มีลำดับความสำคัญสูงและปกติ

สําหรับการแจ้งเตือนที่มีลําดับความสําคัญสูงและปกติที่ได้รับในอุปกรณ์ Android ระบบจะใช้เวลา 2-3 วินาทีเพื่อประมวลผลเพย์โหลดข้อความในตัวแฮนเดิล onMessageReceived สําหรับการแจ้งเตือนที่ต้องมีการประมวลผลเพย์โหลดข้อความแบบอะซิงโครนัส เราขอแนะนําให้ใช้คอนสตรัคต์ เช่น WorkManager เนื่องจากอาจใช้เวลานานกว่าที่ระบุไว้สําหรับonMessageReceivedตัวแฮนเดิล

สำหรับข้อความที่มีลำดับความสำคัญสูง คุณสามารถตั้งเวลางานด่วนโดยใช้ WorkManager ของ Android เพื่อให้แน่ใจว่าระบบจะจัดลำดับความสำคัญของการแจ้งเตือนเหล่านี้และทำงานจนเสร็จสมบูรณ์

สำหรับข้อความที่มีลำดับความสำคัญปกติ คุณสามารถกำหนดเวลาOneTimeWorkRequest ปกติได้โดยใช้ WorkManager ของ Android วิธีนี้จะช่วยให้มั่นใจได้ว่าระบบจะประมวลผลงานเพิ่มเติมที่จําเป็นโดยไม่ต้องใช้การประมวลผลแบบมีลําดับความสําคัญ

การตั้งค่าลำดับความสำคัญของข้อความ

คุณสามารถส่งการแจ้งเตือนไปยังผู้ใช้ได้โดยใช้ Admin SDK, FCM REST API และคอนโซล Firebase หากต้องการเปลี่ยนการตั้งค่าลําดับความสําคัญจาก Admin SDK และ FCM REST API คุณต้องอัปเดตเพย์โหลด JSON ของข้อความ คุณสามารถใช้โค้ดตัวอย่างต่อไปนี้เพื่อดูวิธีตั้งค่าลําดับความสําคัญเป็นสูง สำหรับข้อความแจ้งที่ส่งจากคอนโซล ระบบจะไม่รองรับการตั้งค่าช่องการแจ้งเตือนสำหรับ Android โดยเฉพาะ

 {
  "message": {
      "notification": {
          "body": "Purchase exceeding $500 detected",
          "title": "Credit card purchase"
      },
      "data": {
          "purchaser": "Your child",
          "items": "Gravity Defier Sneakers"
      },
      "android": {
          "priority": "high"
      },
      "apns": {
          "headers": {
              "apns-priority": "5"
          }
      }
  }
}

ทดสอบการแจ้งเตือนที่มีลำดับความสำคัญสูงในโหมดประหยัดพลังงาน

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

  1. ตั้งค่าอุปกรณ์เป็นโหมด Doze โดยใช้วิธีการในทดสอบแอปด้วยโหมด Doze
  2. เข้าถึงโทเค็นการลงทะเบียน FCM จากแอปในอุปกรณ์ทดสอบ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเข้าถึงโทเค็นได้ที่ส่งข้อความทดสอบไปยังแอปที่ทำงานอยู่เบื้องหลัง
  3. เมื่อคุณมีโทเค็น FCM แล้ว ให้ส่งการแจ้งเตือนที่มีลำดับความสำคัญสูงไปยังอุปกรณ์ทดสอบโดยใช้FCMโค้ดการส่งการแจ้งเตือนหรือคําสั่ง cURL%3B%0A%7D)-,cURL,-curl%20%2DX) ที่มีพารามิเตอร์การกําหนดค่าที่ตรงกับการแจ้งเตือนที่มีลําดับความสําคัญสูง

การจัดลําดับความสําคัญของ FCM ความสําคัญสูงใน Android ให้ลดลง

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

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

การมอบสิทธิ์การแจ้งเตือนด้วยบริการ Google Play

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

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

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

การใช้พร็อกซีข้อความการแจ้งเตือนด้วยวิธีนี้เป็นลักษณะการทำงานเริ่มต้นสำหรับแอปที่ใช้ Android Q ขึ้นไปและบริการ Google Play เวอร์ชัน 19054000 ขึ้นไป ระบบจะใช้พร็อกซีกับข้อความที่ส่งผ่าน HTTP v1 API แต่จะไม่ใช้พร็อกซีกับข้อความที่ส่งผ่านคอนโซล Firebase หรือ API เดิม โปรดทราบว่าฟีเจอร์นี้อยู่ในเวอร์ชันเบต้าและอาจมีการเปลี่ยนแปลง

แม้ว่าเราจะขอแนะนําอย่างยิ่งให้เปิดใช้การมอบสิทธิ์ไว้เพื่อประโยชน์ของแบตเตอรี่และหน่วยความจําของอุปกรณ์ แต่คุณเลือกไม่ใช้ลักษณะการทํางานนี้ได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้

  • ในระดับแอป: เพิ่มคำสั่ง <meta-data android:name= "delivery_metrics_exported_to_big_query_enabled" android:value="false"/> ในไฟล์ Manifest ของแอป
  • ตามอินสแตนซ์แอป: สําหรับอินสแตนซ์แอป ให้ตั้งค่า fun setNotificationDelegationEnabled(disable: Boolean): Task<Void!> ในโฟลว์ UI สําหรับแอป โดยขึ้นอยู่กับ Use Case ที่เฉพาะเจาะจง
  • ตามข้อความ: ตั้งค่าคีย์ proxy เป็น DENY ในออบเจ็กต์ AndroidNotification สำหรับคำขอส่ง

การวัดการลดลำดับความสำคัญของข้อความใน Android

  • ข้อความส่วนบุคคล เมื่อนำส่ง คุณสามารถตรวจสอบได้ว่ามีการลดลำดับความสำคัญของข้อความแต่ละรายการหรือไม่โดยเปรียบเทียบลำดับความสำคัญของข้อความที่ส่งจาก getPriority() กับลำดับความสำคัญเดิมจาก getOriginalPriority()

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

  • การแจ้งเตือนที่ผ่านพร็อกซี ระบบจะไม่นับการแจ้งเตือนพร็อกซีในเมตริกการแสดงโฆษณา FCM หรือ GA ปัจจุบัน คุณจึงอาจเห็นว่าเมตริกการแสดงโฆษณาการแจ้งเตือนลดลงสูงสุด 15% สําหรับการรายงานเกี่ยวกับข้อความที่ส่งผ่านพร็อกซี ให้ใช้ FCM Aggregate Delivery Data API ProxyNotificationInsightPercents จะรายงานเปอร์เซ็นต์ของการแจ้งเตือนที่ส่งผ่านพร็อกซีสำเร็จ รวมถึงรายละเอียดของข้อความที่ส่งผ่านพร็อกซีไม่สำเร็จ

การแก้ปัญหาความล่าช้าในการแจ้งเตือน

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

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

    แต่ให้ใส่เนื้อหาการแจ้งเตือนในข้อความ FCM และแสดงทันที หากต้องการซิงค์เนื้อหาในแอปเพิ่มเติมใน Android คุณสามารถกำหนดเวลางานด้วย WorkManager เพื่อจัดการเนื้อหาดังกล่าวในเบื้องหลัง