設定及管理訊息優先順序

您可以透過兩種方式,為 Android 上的下游訊息指派傳送優先順序:一般和高優先順序。一般和高優先順序訊息的傳送方式如下:

  • 一般優先順序。這是資料訊息的預設優先順序。裝置未休眠時,會立即傳送一般優先順序的訊息。裝置處於打盹模式時,為了節省電池電力,裝置可能會延遲送達,直到裝置結束打盹模式。對於較不具時效的郵件 (例如收到新電子郵件的通知、讓 UI 保持同步,或是在背景同步處理應用程式資料),請選擇一般傳送優先順序。

    當 Android 收到要求應用程式背景資料同步處理作業的一般優先順序訊息時,您可以使用 WorkManager 排定工作,在網路可用時處理這項工作。

  • 高優先順序,FCM 會嘗試立即傳送高優先順序的訊息,讓 FCM 可以在必要時喚醒處於休眠狀態的裝置,並執行部分受限的處理程序 (包括非常有限的網路存取)。高優先順序訊息通常應讓使用者與您的應用程式或應用程式通知互動。

在 Android 上處理訊息及降低優先順序

Android 上優先順序高的訊息只代表具有時效性的使用者可見內容,因此應向使用者顯示通知。如果 FCM 偵測到訊息不會收到面向使用者通知的模式,則您的訊息優先順序可能會降低為一般優先順序,或委派供 Google Play 服務處理。

FCM 會根據 7 天的訊息行為,判斷是否要依重要性排序訊息或代理訊息;應用程式的每個執行個體都可以獨立進行此決定。如果為了回應高優先順序訊息,通知會以使用者能看見的方式顯示,那麼日後的高優先順序訊息不會受到影響。

Google Play 服務的通知委派

符合特定條件的高優先順序通知訊息 (而非資料訊息) 會由 Google Play 服務進行 Proxy 處理,而不會降低優先順序。也就是說,Google Play 服務會代表應用程式顯示通知,完全不必啟動應用程式。這是為了在 Android 裝置提供更優質的整體使用者體驗。

請注意,代理通知訊息會改變系統回報與接收訊息相關的數據分析方式:

  • 如要回報透過 Proxy 傳送的通知,您的應用程式必須使用 FCM SDK 24.0.0 以上版本。
  • 相較於開始使用 Proxy 通知前,接收到的訊息數量可能會延遲或減少。這是因為系統僅會在應用程式啟動後回報 Proxy 通知的分析,如果通知並未開啟應用程式,可能根本不會回報。

對於使用 Android Q+ 和 Google Play 服務 19054000 以上版本的應用程式,這種 Proxy 通知訊息的預設行為。透過 HTTP v1 API 傳送的訊息會進行 Proxy 處理,但透過 Firebase 控制台或舊版 API 傳送的訊息不會透過 Proxy 處理。請注意,這項功能目前為 Beta 版,可能會有所變動。

雖然我們強烈建議您保持啟用委派功能,以保護裝置電池和記憶體的效益,但您可以選擇透過下列任一方式停用此行為:

  • 在應用程式層級設定:在應用程式資訊清單中新增 <meta-data android:name= "delivery_metrics_exported_to_big_query_enabled" android:value="false"/> 指令。
  • 在應用程式執行個體上:針對應用程式執行個體,根據特定用途,在應用程式的 UI 流程中設定 fun setNotificationDelegationEnabled(disable: Boolean): Task<Void!>
  • 針對個別訊息:針對傳送要求,將 AndroidNotification 物件中的 proxy 鍵設為 DENY

在 Android 裝置上評估訊息優先順序

  • 個別訊息。傳送時,您可以從 getOriginalPriority() 比較個別訊息的傳送優先順序 (取自 getPriority() 及其原始優先順序),藉此判斷個別訊息是否遭到降低優先順序。

  • 所有訊息。FCM Aggregate Delivery Data API 可以回報所有傳送給 Android 訊息的優先順序在降低的優先順序。匯總資料報表可能會省略部分訊息,但整體來說,這些訊息應可讓您全盤掌握訊息降低的優先順序率。如要進一步瞭解相關資訊和用於查詢 API 的程式碼範例,請參閱匯總傳送資料一文。此外,您也可以透過 API Explorer 探索。

  • 透過 Proxy 傳送的通知:目前的 FCM 或 Google Analytics (分析) 放送指標不會納入 Proxy 通知,因此通知傳送指標最多可能會下降 15%。如要製作 Proxy 訊息的報表,請使用 FCM Aggregate Delivery Data APIProxyNotificationInsightPercents 會回報成功 Proxy 通知的百分比,以及無法成功代理的訊息詳細資料。

疑難排解

  • 確認應用程式執行個體已啟用通知功能。如果使用者已停用應用程式的通知權限,系統就不會發布任何通知,並降低您訊息的優先順序。建議您先確認通知功能已啟用,再傳送高優先順序訊息至應用程式執行個體。

  • 發布通知前請勿致電住家。由於 Android 行動裝置人口中只有一小部分連上高延遲網路,因此在顯示通知前,請避免連線至伺服器。如果在允許的處理時間結束前回呼伺服器,使用高延遲網路的使用者可能會面臨風險。請改為在 FCM 訊息中加入通知內容,並立即顯示。如果您需要同步處理 Android 上的其他應用程式內內容,可以使用 WorkManager 排定工作,以便在背景處理。