メッセージの優先度を設定、管理する

Android では、ダウンストリーム メッセージに配信の優先度を割り当てるオプションとして、標準(normal)と高(high)の 2 つの優先度があります。標準の優先度と高い優先度のメッセージの配信は、次のように行われます。

  • 優先度: 標準。データ メッセージのデフォルトの優先度です。デバイスがスリープしていない場合、優先度が標準のメッセージはすぐに配信されます。デバイスが Doze モードの場合は、バッテリーを節約するために Doze モードが終了するまで配信が延期されることがあります。新着メールの通知、UI の同期の維持の通知、バックグラウンドでのアプリデータの同期の通知など、緊急度の低いメッセージでは、標準の配信優先度を選択します。

    バックグラウンドでのデータ同期をアプリにリクエストする標準優先度のメッセージを Android で受け取る場合は、WorkManager を使用してタスクのスケジュールを設定し、ネットワークが利用可能になったときにその処理を行えます。

  • 優先度: 高。優先度の高いメッセージは、FCM によって即時配信が試みられます。その際に FCM は、スリープ状態のデバイスを必要に応じてアクティブにしたり、限られた処理(ごく限定的なネットワーク アクセスなど)を行ったりすることが可能です。通常、優先度の高いメッセージが配信されると、ユーザーによるアプリの操作やその通知の操作が行われることになります。

Android における優先度の高いメッセージの使用

Android において優先度の高いメッセージは、なるべく早くユーザーに確認してもらう必要のあるコンテンツ向けであり、ユーザーに対する通知の表示が行われます。ユーザーに対する通知の表示を行うべきでないメッセージのパターンが FCM によって検出された場合、そのメッセージの優先度は通常の優先度に下げられることがあります。FCM がメッセージの優先度を下げるかどうかを判断する際には、過去 7 日間のメッセージの動作が使用されます。この決定はアプリケーションのインスタンスごとに独立して行われます。優先度の高いメッセージに対応して、ユーザーに対する通知の表示が行われた場合、その後の優先度の高いメッセージの優先度が下げられることはありません。このことは、FCM SDK を使用した通知メッセージの通知、デベロッパーが生成したデータ メッセージの通知のいずれにも適用されます。

Android 向けメッセージの優先度低下の測定

  • 個々のメッセージ。配信時に、配信優先度(getPriority() によって取得)と元の優先度(getOriginalPriority() によって取得)を比較することで、個々のメッセージの優先度が下げられたかどうかを確認できます。

  • すべてのメッセージ。FCM Aggregate Delivery Data API を使用して、Android 向けのすべてのメッセージのうち優先度が下げられたメッセージの割合を確認できます。メッセージによっては集計データのレポートから除外されるものもありますが、全体的に見れば、メッセージの優先度低下の割合に関する包括的な情報が得られます。配信の集計データに関する記事をご覧になり、詳細情報、および API のクエリを実行するサンプルコードを確認してください。また、API Explorer でクエリを試すこともできます。

トラブルシューティング