您可以為 Android 上的下游訊息指派傳送優先順序,有兩種方式:一般和高優先順序。一般和高優先順序訊息的傳送方式如下:
一般優先順序。這是 資料訊息的預設優先順序。裝置未處於休眠狀態時,系統會立即傳送一般優先層級訊息。當裝置處於打盹模式時,系統可能會延遲傳送,以節省電力,直到裝置退出打盹模式為止。如果是較不緊急的訊息,例如新電子郵件的通知、保持 UI 同步,或在背景同步處理應用程式資料,請選擇一般傳送優先順序。
在 Android 上收到要求應用程式背景資料同步作業的一般優先順序訊息時,您可以使用 WorkManager 安排工作,以便在網路可用時處理。
高優先順序。FCM 會嘗試立即傳送高優先順序訊息,讓 FCM 在必要時喚醒休眠中的裝置,並執行一些受限的處理作業 (包括非常有限的網路存取)。高優先順序訊息通常應促使使用者與應用程式或其通知互動。
在 Android 上處理及降低訊息優先順序
Android 上的高優先順序訊息適用於時間敏感且使用者可見的內容,應會產生面向使用者的通知。如果 FCM 偵測到訊息不會產生使用者通知的模式,系統可能會將您的訊息降為一般優先順序,或委派給 Google Play 服務處理。
FCM 會使用 7 天的訊息行為,判斷是否要降低訊息優先順序或使用訊息代理程式;它會針對應用程式的每個執行個體獨立做出這項判斷。如果您在回應高優先順序訊息時,以使用者可見的方式顯示通知,日後的高優先順序訊息就不會受到影響。
使用 Google Play 服務的通知委派功能
符合特定條件的高優先順序通知訊息 (不是資料訊息) 會由 Google Play 服務進行 Proxy,而不會降低優先順序。也就是說,Google Play 服務會代替應用程式顯示通知,無須啟動應用程式。這麼做可在 Android 裝置上提供更優質的整體使用者體驗。
請注意,代理通知訊息會改變與收到訊息相關的報表分析方式:
- 如要回報代理通知的數據分析資料,應用程式必須使用 FCM SDK 24.0.0 以上版本。
- 您可能會發現,與導入 Proxy 通知前相比,收到的訊息數量有所延遲或減少。這是因為代理通知的數據分析只有在應用程式啟動時才會回報,如果通知並未導致應用程式開啟,可能就不會回報。
對於使用 Android Q 以上版本和 Google Play 服務 19054000 以上版本的應用程式,以這種方式代理通知訊息是預設行為。透過 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 裝置上的訊息降優先順序
個別訊息。在傳送時,您可以比較 getPriority() 所提供的傳送優先順序,與 getOriginalPriority() 所提供的原始優先順序,判斷個別訊息是否已降級。
所有訊息。FCM Aggregate Delivery Data API 可回報所有傳送至 Android 的訊息中,有多少百分比遭到降優先順序。匯總資料報表可能會略過部分郵件,但整體而言,這些報表應可提供郵件降優先順序率的全球概況。如需查詢 API 的詳細資訊和程式碼範例,請參閱「匯總提交資料」一文。您也可以透過 API Explorer 探索這項功能。
經過 Proxy 處理的通知。代理通知不會計入目前的 FCM 或 GA 提交指標,因此通知提交指標可能會下降最多 15%。如要回報 Proxy 訊息,請使用 FCM Aggregate Delivery Data API。
ProxyNotificationInsightPercents
會回報成功轉送的通知百分比,以及無法成功轉送的訊息詳細資料。
疑難排解
確認應用程式執行個體已啟用通知功能。如果使用者已停用應用程式的通知權限,系統就不會發布任何通知,因此您的訊息會降低優先順序。請先確認已啟用通知功能,再將高優先順序訊息傳送至應用程式執行個體。
請勿在發布通知前撥打回家電話。由於 Android 行動裝置使用者中有小部分使用高延遲網路,因此請勿在顯示通知前開啟與伺服器的連線。在允許的處理時間結束前回撥至伺服器,可能會對高延遲網路的使用者造成風險。請改為在 FCM 訊息中加入通知內容,並立即顯示。如果您需要在 Android 上同步處理其他應用程式內容,可以使用 WorkManager 安排工作,在背景處理這項工作。