您可以為 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%。如要回報代理訊息,請使用 FCM Aggregate Delivery Data API。
ProxyNotificationInsightPercents
會回報成功 Proxy 通知的百分比,以及無法成功代理的訊息詳細資料。
疑難排解
確認應用程式執行個體已啟用通知功能。如果使用者已停用應用程式的通知權限,系統就不會發布任何通知,因此您的訊息會降低優先順序。請先確認已啟用通知功能,再將高優先順序訊息傳送至應用程式執行個體。
請勿在發布通知前撥打回家電話。由於 Android 行動裝置人口中只有一小部分連上高延遲網路,因此在顯示通知前,請避免連線至伺服器。在允許的處理時間結束前回撥至伺服器,可能會對高延遲網路的使用者造成風險。請改為在 FCM 訊息中加入通知內容,並立即顯示。如果您需要在 Android 上同步處理其他應用程式內容,可以使用 WorkManager 安排工作,在背景處理這項工作。