通知

通知は、アプリを使用していないときに、関連する情報を簡潔かつタイムリーに提供するものです。

通知のさまざまな側面は Android OS によって制御されますが、それ以外の要素はユーザーが制御できます。通知を実装する手順は次のとおりです。

  1. 通知の構造を理解する
  2. ユースケースの通知タイプを選択します。
  3. 選択した通知の種類と一致する通知カテゴリを設定します。

テイクアウェイ

  • 通知の目的(ユーザーに警告する理由)を検討します。
  • 通知権限のパターンを判断し、アプリにとっての通知の重要性と、ユーザー ジャーニーのどこに通知を依頼するかを検討します。
  • 通知テンプレートを選択します。
  • 通知コンテンツを作成します。
    • ヘッダー テキストは通知を簡潔に要約する必要があります。
    • コンテンツ テキストで通知をプレビューする必要があります。
    • 画像コンテンツ(アプリのコンテンツに適用できる場合)。
    • メディア テンプレートのメディア キーアートとメタデータ。
  • テキストボタン、入力、メディア コントロールなど、コンテンツに応じたアクションを提供することで、ユーザーが通知でできることを明確にします。
  • アプリアイコンを追加し、アプリアイコンの背景色を設定します。
  • 通知のチャンネルとカテゴリを設定します。これにより、システムとユーザーは受信する通知をカスタマイズし、優先動作を提供できます。
  • アプリで一度に複数の通知を配信する場合は、通知をグループ化します。
  • 通知テンプレートについては、Figma の Android UI Kit をご覧ください。

通知の構造

通知は、通知の最も重要な要素を簡単にスキャンして使用できるように設計されています。次の要素があります。

  • プライマリ コンテンツ: 通知の最も重要な要素です。タイムスタンプなどの付随情報は、より小さく、プライマリ コンテンツの上に統合されます。
  • 人物: 通知に人物が関与している場合、アバターが他のコンテンツよりも目立ちます。
  • アクション: インジケーター アイコンをタップして通知を開くことができます。アクションは、別の背景色と位置にテキストラベルとともに表示されます。
図 1: 折りたたみ通知

通知ヘッダーとコンテンツ

折りたたまれているとき、通知にはアプリアイコン、ヘッダー テキスト、タイムスタンプ、展開インジケーター、コンテンツ テキストが表示されます。必要に応じて、大きなアイコンを表示することもできます。

図 2: 通知ヘッダーの領域

1 アプリアイコン: アプリアイコンは、アプリの ID を 2 次元で表したものです。ステータスバーにモノクロで表示されます。アプリがさまざまな通知を送信する場合は、その種類の通知を区別するために、アプリアイコンをシンボルに置き換えることを検討してください。詳しくは、アイコンの色を適用するをご覧ください。

2 ヘッダー テキスト: 通知またはソースの短い見出し(ユーザーのアカウント名など)。コンテンツは通知の中で 最も目立つ要素です

3 タイムスタンプ: 不在着信の時刻など、通知が送信された時刻を示します。

4 展開インジケーター: 通知が折りたたまれた状態か展開された状態かを示します。

5 コンテンツ テキスト: 補足情報。

6 大きなアイコン(省略可): 送信者のアバターを含むメッセージなど、意味のある方法で通知を強化するために画像を追加できます。

アイコンの色を適用する

Android 12(API レベル 31)以降では、アプリで設定した通知の色からアイコンの色がシステムにより取得されます。アプリで色を設定しない場合は、システムのテーマカラーが使用されます。これまではグレーでした。

図 3: スタイル設定されたアプリアイコンの色

ほとんどのスタイルでは、通知がフォアグラウンド サービス通知用である場合にのみ、この色が適用されます。ただし、メディア セッションがアタッチされている MediaStyle 通知と DecoratedMediaCustomViewStyle 通知にはそのような要件はありません。

次のスニペットは、アイコンの色を適用する方法を示しています。

val notification = Notification.Builder()
    .setColor(Color.GREEN)
    .setColorized(true)
    .setSmallIcon(R.drawable.app_icon)
    .setStyle(Notification.DecoratedCustomViewStyle())
    .build()

通知の操作

図 4: 通知のアクション エリア

1 テキストボタンの操作

2 塗りつぶしの操作ボタン

3 件の返信文の候補

4 返信テキスト フィールド

Android 7.0(API レベル 24)以降では、より多くのテキストに対応するために、アイコンなしでアクションが表示されます。Android Wear デバイスと、Android 6.0(API レベル 23)以前を搭載しているデバイスに対応するため、アプリはアイコンを提供する必要があります。

展開後のビュー

展開ビューを使用すると、通知から移動することなく、ユーザーに詳細情報を表示できます。

通知を開くと、以下の種類のアクションが 3 つまで表示されます。

  • 返信文の候補
  • 強調された操作(丸形のボタン)
  • 標準のテキスト操作
通知本文をタップする動作と同じテキスト アクションを含める。
ユーザーが通知を操作できるようにします。Google 時計アプリにはタイマーの実行中が表示されますが、ユーザーは通知から直接一時停止したり、1 分追加したりできます。

通知の入力を有効にする

返信アクションを含めることで、ユーザーが通知に直接入力できるようにします。これは、テキスト メッセージへの返信や簡単なメモの作成など、少量のテキストを入力するように設計されています。

長時間の入力では、ユーザーをアプリに移動して、テキストを表示、編集するためのスペースを確保します。

メッセージ アプリの場合、ユーザーが返信した後も通知を表示し、会話が一時停止するまで待ってから自動的に閉じることをおすすめします。

図 5: [返信] をタップした後、通知から離れることなく Android メッセージで直接返信するユーザー

ユースケースに応じて通知タイプを選択します

Google の Android アプリでは次の通知テンプレートを使用しています。これらのテンプレートは、アプリに合わせてある程度カスタマイズできます。

通知テンプレートについては、Figma の Android UI Kit をご覧ください。

標準テンプレート

標準テンプレートは、簡潔なテキスト、大きなアイコン(該当する場合)、アクションが可能で、ほとんどの通知に適しています。

図 6: 標準通知テンプレート

大きなテキスト テンプレート

大きなテキストのテンプレートは、長いテキストのブロックを表示する場合に最適です。これにより、ユーザーは通知を展開した後に、より多くのテキストをプレビューできます。

図 7: 大きなテキスト テンプレートとオプションの大きなアイコン

全体像テンプレート

全体像テンプレートは、画像を含む通知用に設計されています。閉じると、画像の大きなサムネイル アイコン サムネイルが表示されます。開くと、はるかに大きなプレビューが表示されます。

図 8: 全体像のテンプレート

進行状況のテンプレート

進行状況テンプレートは、ユーザーが開始するアクティビティの完了に時間がかかる場合に適しています。このテンプレートを使用する通知を開くと、進行状況バーが表示され、ユーザーがこのアクティビティを終了できる「キャンセル」アクションが表示されます。(キャンセル不可のアクティビティは、通知を保証するものではありません)。

図 9: 進行状況のテンプレート

メディア テンプレート

メディア テンプレートは、ユーザーが現在再生中のメディアをアプリから操作できるようにするためのものです。

  • 折りたたまれているとき、通知には最大 3 つのアクションが表示されます。大きなアイコンは、アルバムカバーなどの関連画像を表示できます。
  • 通知を展開すると、大きな画像の場合は最大 5 つのアクションが表示され、画像がない場合は最大 6 つのアクションが表示されます。通知の背景などの要素には、画像から自動的に色が継承されます。
図 10: メディア テンプレート

メッセージ テンプレート

MessagingStyle テンプレートは、リアルタイムのコミュニケーションを目的として設計されています。このテンプレートを使用して通知を展開すると、ユーザーは通知内からメッセージに返信できます。

図 11: メッセージ テンプレート

通話テンプレート

CallStyle テンプレートを使用して、大きな画像形式の通知を生成します。この通知には、大きな画像を添付して、着信または発信を示します。

図 12: 通話テンプレート

通知権限

通知は可能な限り適切でタイムリーであるものの、ほとんどの通知は免除対象外です。つまり、ユーザーはアプリからの通知の受信に同意する必要があります。

ただし、Android 13(API レベル 33)以降では、通話を管理するメディア セッションとアプリはユーザーの同意を求めることを除外しています。ユーザーがすでに通知をオンにしている場合、既存のアプリも対象となる可能性があります。詳しくは、除外をご覧ください。

アプリの通知設定に通知オプションを提供し、ユーザーが通知設定を更新できるようにすることを強くおすすめします。

免除対象外の通知を有効にするようユーザーに促す

免除対象外の通知の場合は、通知の受信を有効にするかどうかを示すようユーザーに求めます。ユーザーが通知を受信することを明示的に選択した場合は、通知がより便利でわずらわしさを感じにくくなる可能性があります。

図 13: 免除対象外の通知についてユーザーの同意を求める

通知ダイアログのプロンプトが表示されるまで待ちます。

  • 通知が提供するメリットと、通知の権限を付与しなかった場合の結果について説明します。
  • コンテキストに応じた UI を提供し、通知とその機能や影響を関連付けます。この UI は、料金、ボトムシート、オンボーディング画面内のカードなど、アプリ内に最適に統合するための任意の形式にできます。いずれも閉じることができます。
  • ユーザーが UI を閉じた場合、通知権限ダイアログを表示しません。

Android 13 以降では、通知権限の再プロンプトをユーザーが受け取れます。

必要な通知

フォアグラウンド サービスは、アプリを直接操作していないものの、ユーザーが認識できるオペレーションを実行します。これらのサービスは、ステータスバーの通知を表示して、アプリがフォアグラウンドでタスクを実行していて、システム リソースを消費していることをユーザーに知らせます。

図 14: フィットネス アプリのフォアグラウンド サービス通知の例

これらのプロセスはバッテリーと、場合によってはデータを使用するため、アプリは閉じることができない通知を表示することで、ユーザーがそれを認識できるようにする必要があります。ユーザーは通知を閉じることができないため、サービスを停止するためのアクションをユーザーに提供する必要があります。

次の例は、フィットネス アプリからの通知を示しています。ユーザーがアクティブなワークアウト セッションを開始し、ワークアウト セッションを追跡するフォアグラウンド サービスがインスタンス化されます。アプリに、ウォーキングを追跡していることを示す通知が表示され、ワークアウトを確認するオプションが表示されます。

通知を使用しないタイミング

次のいずれのユースケースでも、通知を使用しないでください。

  • 相互プロモーションや別の商品の広告(Google Play ストアで固く禁じられています
  • ユーザーがアプリを一度も起動したことがない場合
  • ユーザーとのコミュニケーションの主な手段として
  • ユーザーにアプリに戻るように促すが、直接的な価値は提供しない(例: 「しばらく会っていない!」)
  • アプリの評価をリクエストした場合
  • 情報の同期など、ユーザーの関与を必要としないオペレーション向け
  • ユーザー操作なしでアプリが回復する可能性があるエラー状態を通知するため
  • 祝日や誕生日のメッセージの場合
祝日や誕生日の挨拶は通知の形式で送信します。
うまくいっているかどうかを確認するためだけに、タスクの途中でユーザーを中断すること。

動作

次の通知動作と、特定のコンテキストでの通知方法に注意してください。

通知の到着

通知が届くと、Android によって通知ドロワーに追加されます。設定したパラメータとデバイスの現在の状態に応じて、通知は次のいずれかのアクションを実行します。

  • 音を鳴らす、またはスマートフォンが振動する。
  • ステータスバーにアイコンを表示します。これは通常、アプリアイコンですが、通知の種類が複数ある場合は、通知の目的を示すシンボルを使用します。
  • ヘッドアップ通知として現在の画面を覗き込んでユーザーの注意を引く。

ユーザーは、通常どおり、設定した通知の動作を変更できます。

図 15: 通知の到着

1 ステータスバーの通知インジケーター。通知ドロワーに通知があることを示します。

2 タスクの途中でユーザーの注意を引くために、現在の画面に「覗き見る」通知。

通知ドロワー

Android の通知ドロワーには通常、通知が新しい順に表示されます。調整には以下の条件があります。

  • アプリの通知の優先度または重要度
  • 通知で最近音やバイブレーションで通知されたかどうか
  • 誰かが通知に関連付けられているかどうか、その人の連絡先がスター付きかどうか
  • 通知が重要な進行中のアクティビティ(通話中や音楽の再生など)を示しているかどうか
  • リストの一番上と一番下に、Android OS による一部の通知の強調または非強調を追加して表示を変更する(ユーザーがコンテンツをスキャンしやすくする)

古い通知を処理する

通知ドロワーは、その時点に関連する情報を表示するように設計されています。以前の通知が古い、つまり関連性がなくなった場合は、ユーザーに表示されないように閉じます。

図 16: 到着したばかりのテキストが通知ドロワーの上部に表示され、写真の追加に関する優先度の低い通知が下部に表示される

新しい通知はアプリアイコン バッジで示されます

Android 8.0(API レベル 26)以降を搭載しているデバイスでサポートされているランチャーでは、新しい通知がアプリに関連付けられていることを示す通知ドットがアプリアイコンに表示されます。これらのドットは、これらをサポートするランチャー アプリにデフォルトで表示されるため、アプリ側で必要な操作はありません。バッジは無効にしたり、制限したりすることもできます。

図 17: アプリアイコン上の通知ドット。アプリに新しい通知が関連付けられている

通知に対してユーザーが実行できる操作

通知により、ユーザーは次の操作を行うことができます。

  • デスティネーションに移動する: 移動するには、ユーザーが通知をタップします。ロック画面に通知が表示される場合、ユーザーは通知をダブルタップして、PIN、パターン、またはパスワードを入力する必要があります。

    ユーザーが通知をタップしたとき、アプリはその通知に直接関連する UI を表示し、ユーザーがすぐに操作できるようにする必要があります。たとえば、2 人プレイのゲームで順番が来たことが通知に書かれている場合、通知をタップすると、そのゲームに直接移動します。

  • 通知を展開すると、ヘッダーに展開インジケーターが表示されます。ユーザーは、インジケーターをタップするか、通知本文を下にスワイプして開きます。

    図 18: 展開された通知
  • 通知を閉じる(許可されている場合): ユーザーは左または右にスワイプすることで通知を閉じることができます。

音楽の再生など、バックグラウンドでの継続的なプロセスを示す進行中の通知は、スワイプして閉じることはできません。

  • ヘッドアップ通知をスヌーズする: ユーザーはヘッドアップ通知を上にスワイプすると、そのイベントからの通知が 1 分間点滅しなくなります。

  • 今後、同様の通知を制御します。ユーザーは次の方法で通知コントロールにアクセスできます。

    • 個々の通知を長押しします。
    • 通知を左右にスワイプして、設定アイコンをタップする

表示されるコントロールは、Android のバージョンと、アプリに通知チャンネルがあるかどうか(Android 8.0 以降)によって異なります。

複数の通知をグループ化する

同じタイプの通知を複数生成するアプリの場合、Android ではユーザーに負担がかかることを避けるため、通知をグループ化しています。

アプリは、次の階層に従って複数の通知を表示できます。

  • 親通知には、子通知の概要が表示されます。
  • ユーザーが親通知を展開すると、すべての子通知が表示されます。
  • 子通知を展開すると、その内容全体が表示されます。

Android は、ヘッダー情報が重複しない子通知を表示します。たとえば、子通知に親と同じアプリアイコンがある場合、子のヘッダーにアイコンは含まれません。

通知が単独で表示される場合は、グループ外でも通知が表示される可能性があるため、子通知は理解しやすいものにする必要があります。

図 19: グループ化された通知の折りたたみビューと展開ビュー

設定

チャンネル

Android 8.0(API レベル 26)以降では、すべての通知をチャンネルに割り当てる必要があります。チャンネルごとに、そのチャンネルのすべての通知に適用される表示と聴覚の動作を設定できます。ユーザーは、これらの設定を変更し、アプリからのどの通知チャンネルを、煩わしい、または表示されるかを決定できます。

実装方法の詳細については、通知チャンネルの作成と管理をご覧ください。

重要度は、ユーザーの時間と注意を考慮して選択する必要があります。重要でない通知が緊急に偽装されると、不要なアラームが生成される可能性があります。

重要度 動作 Usage
HIGH 音が鳴って画面に表示されます ユーザーがすぐに把握して対処する必要がある、時間のかかる重要な情報 テキスト メッセージ、アラーム、電話
DEFAULT 音を鳴らす ユーザーの作業に支障をきたさないが、ユーザーの都合のよいときに表示されるべき情報 交通情報、タスク リマインダー
LOW 音声が再生されない 他の重要度の要件を満たしていない通知チャンネル ユーザーが登録した新しいコンテンツ、ソーシャル ネットワークへの招待
MIN 音声や画面表示を使用しない 待つ可能性がある、またはユーザーに特に関係のない、重要でない情報 付近の注目スポット、天気情報、プロモーション用コンテンツ

事前定義済みのカテゴリ

チャネルを使用しているかどうかにかかわらず、各通知は事前定義された最も適切なカテゴリに割り当ててください。Android は、この情報を使用してランキングやフィルタリングを決定することがあります。

カテゴリ 説明
CATEGORY_CALL 通話の着信(音声またはビデオ)、あるいはそれに類する同期的な通信リクエスト
CATEGORY_MESSAGE 直接メッセージの受信(SMS、インスタント メッセージなど)
CATEGORY_EMAIL 非同期的なメッセージ(メール)
CATEGORY_EVENT カレンダーのイベント
CATEGORY_PROMO プロモーションや広告
CATEGORY_ALARM アラームやタイマー
CATEGORY_PROGRESS 長時間実行されているバックグラウンド処理の進行状況
CATEGORY_SOCIAL ソーシャル ネットワークや共有の更新
CATEGORY_ERROR バックグラウンド処理のエラーや認証ステータス
CATEGORY_TRANSPORT 再生のメディア トランスポート コントロール
CATEGORY_SYSTEM システムやデバイスのステータス更新(システム使用のため予約済み)
CATEGORY_SERVICE バックグラウンド サービスが実行中であることを示す通知
CATEGORY_RECOMMENDATION 具体的なおすすめをタイミングよく知らせる通知(例: ニュースアプリで、ユーザーが次に読みたいと思うような記事をすすめる)
CATEGORY_STATUS デバイスや文脈的なステータスに関する進行中の情報

ロック画面の通知

ユーザーが画面がロックされているときに通知を表示することを選択している場合、これらの通知によって、アプリが機密とマークするコンテンツが隠される可能性があります。Android は、各通知の公開設定レベルを評価して、安全に表示できる内容を決定します。

ロック画面のコンテンツの感度レベルを設定する

ユーザーのプライバシーは極めて重要であるため、ロック画面に表示される通知にはさまざまなレベルがあることに留意してください。作成する通知ごとに、公開レベルを public、private、または secret に設定する必要があります。

  • 公開通知は、安全なロック画面に完全に表示されます。
  • 非公開の通知は非表示になります。
  • 非公開通知は中央にあり、通知を投稿したアプリの名前とアイコンなどの基本情報のみが表示されます。非表示になっている通常のコンテンツの代わりに、必要に応じて、個人情報を開示しないテキスト(2 new messages など)を表示できます。

次の例では、Gmail アプリとフォトアプリのロック画面通知で、ユーザーがロック画面にこの情報を表示するよう選択した後、すべてのコンテンツが表示されます。

図 20: さまざまな感度レベルのロック画面

1 ロック画面に表示されるすべての通知内容

2 ロック画面にプライベートな通知内容は表示されません

スタイル

明確で簡潔なテキスト

Android では、コンテンツ タイトルは(展開された場合でも)1 行で切り捨てられます。

適切なコンテンツ タイトルは次のガイドラインを遵守します。

  • 30 文字以内である
  • 最も重要な情報が含まれている
  • 変数を使用しない(数値または短いテキスト文字列が含まれる場合、または変数の前にテキストがある場合を除く)
  • すでにヘッダーに表示されているアプリ名を除く
コンテンツ タイトルにアプリ名を表示する。ヘッダー領域と重複し、使用可能な文字が使用される。
コンテンツ タイトルには最も重要な情報を含めます。

良いコンテンツとは、以下のガイドラインに準拠するテキストのことです。

  • 半角 40 文字(全角 20 文字)の文字数制限を超えないようにする
  • コンテンツのタイトルと重複を避ける

大きなアイコン

通知のコンテンツを画像によって有意義に強調するユースケースには、大きなアイコンを使用します。以下にいくつか例を示します。

  • 他のユーザーからのメッセージ(メッセージを送信している人の画像など)
  • コンテンツのソース(ユーザーが登録している YouTube チャンネルのロゴなど)が、通知を送信するアプリと異なる場合
  • 通知に関する意味のある記号(運転ルートの矢印記号など)

大きいアイコンは、人物を表示する場合は円形にする必要がありますが、それ以外は正方形にする必要があります。

ブランディングに大きいアイコンを使用する。
大きなアイコンを使用すると、たとえばメッセージ通知に人物の写真を添付するなど、通知の内容を意味のある方法で目立たせることができます。

Android バージョン アップデート

Android 通知システムの UI と通知関連の API は、絶えず進化しています。これらの変更の一覧については、通知の互換性をご覧ください。

プラットフォームに関する考慮事項

Wear

ペア設定済みの Wear OS デバイスがある場合は、展開可能な詳細情報や操作ボタンなど、すべての通知がそこに自動的に表示されます。詳細については、Wear の通知のデザインページをご覧ください。