> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# プッシュ通知のアクションボタン

> iOS、Android、ウェブのプッシュ通知にインタラクティブなアクションボタンを追加します。ダッシュボードとAPIによるセットアップ、サポートされているプラットフォーム、クリック処理、アイコン、イベント追跡について学びます。

<Frame caption="iOSのアクションボタンを示す画像">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/c40c0d1-ios15-action-icons--1.jpeg?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=51965abdd020931ca08de3f44dd96370" width="1000" height="580" data-path="images/docs/c40c0d1-ios15-action-icons--1.jpeg" />
</Frame>

<Info>
  このガイドはプッシュ通知にのみ適用されます。アプリ内メッセージについては、[アプリ内メッセージ：クリックアクションを追加する方法](./iam-click-actions)を参照してください。
</Info>

アクションボタンを使用すると、単一のプッシュ通知に複数のラベル付きアクションを追加できるため、ユーザーは最初にアプリやサイトを開かずに応答できます。オペレーティングシステムとデバイスに応じて、ユーザーは通知を展開することでボタンを表示します（長押し、スワイプ + 表示、または展開アフォーダンス）。

***

## アクションボタンを追加する

アクションボタンは、[テンプレート](./templates)で設定するか、ダッシュボードでメッセージを作成する際に直接設定するか、[API](/reference/push-notification)経由で設定できます。

### ダッシュボードとテンプレートのセットアップ

プッシュを作成する際、**詳細オプション > アクションボタン**を開きます。

<Frame caption="iOSとAndroid用に追加されるアクションボタンを示す画像">
  <img src="https://mintcdn.com/onesignal/MUgio66t0sYhGEvj/images/docs/64712e6-Screenshot_2023-06-02_at_1.53.48_PM.png?fit=max&auto=format&n=MUgio66t0sYhGEvj&q=85&s=b2bb426793efd74cf713471e75894fc3" width="1614" height="1588" data-path="images/docs/64712e6-Screenshot_2023-06-02_at_1.53.48_PM.png" />
</Frame>

### APIのセットアップ

* **モバイルアプリ**：`buttons`パラメータを使用します。`id`、`text`、`icon`を持つ最大3つのオブジェクトの配列を渡します。
* **ウェブ（Chrome）**：`web_buttons`を使用し、`id`、`text`、`icon`、`url`を持つ最大2つのオブジェクトを渡します。

***

## アクションボタンのプロパティ

* **Action ID**：特定のボタンアクションの一意の識別子。クリックされたボタンのIDが渡されるため、どのボタンがクリックされたかを識別できます。（例：'accept-button'）

  * ボタンごとに一意である必要があります。
  * OSNotificationペイロードで利用可能で、SDK Notification Opened Event Handler内でアクセスできます。
  * API：`id`プロパティ

* **Label**：ボタンがユーザーに表示するテキスト。（例：'Accept'）

  * API：`text`プロパティ

* **Icon**：ボタンラベルと一緒に表示されるオプションのアイコン。すべてのプラットフォームとオペレーティングシステムで利用できるわけではありません。詳細については、以下のFAQを参照してください。

  * モバイルアプリでは、ボタンを画像リソースに含める必要があります。詳細については、以下のアクションボタンアイコンを参照してください。
  * ウェブサイトでは、アイコンへの有効な公開アクセス可能なURLを使用できます。通知が表示されるたびにダウンロードされるため、小さく保つようにしてください。（例：`http://site.com/icon.png`）
  * API：`icon`プロパティ

* **Button URL**：通知がクリックされたときに開くURL。URLを開かないようにするには、`'do_not_open'`を渡します。（例：'do\_not\_open'）

  * ウェブのみ
  * API：`url`プロパティ

### アクションボタンアイコン

* iOSはiOS 15以降のアクションボタンアイコンをサポートしています
* Androidは[Android N（別名7）](https://android-developers.googleblog.com/2016/06/notifications-in-android-n.html)以降、アクションボタンアイコンのサポートを停止しました

***

## アクションボタンのクリックを処理する

ユーザーがボタンをタップすると、OneSignalはアプリ/サイトにAction IDを配信します。デフォルトの動作（アプリ/サイトを開く）を使用するか、オーバーライドできます。

### デフォルトの動作（アプリ/サイトを開いてから処理）

1. アプリ/サイトが開きます（ウェブではフォーカスされます）。
2. クリック/オープンリスナーがAction IDを含むイベントを受信します。（クリックリスナーの詳細については、[モバイルSDKリファレンス](./mobile-sdk-reference#addclicklistener-push)または[ウェブSDKリファレンス](./web-sdk-reference#addeventlistener-notifications)を参照してください。）

### アクションボタンのクリックからアプリの起動を防ぐ

* **Android**：[Android SDKセットアップ > デフォルトの開く動作を無効にする](./android-sdk-setup#disable-default-open-behavior)に従ってください。これにより、[Service Extensions](./service-extensions)でクリックをインターセプトし、アプリを開かずにカスタムロジック（例：APIを呼び出す）を実行できます。
* **iOS**：[UNNotificationCategory Object](https://developer.apple.com/documentation/usernotifications/unnotificationcategory)を介してアクションを関連付けるために、通知に`ios_category`を含めます。詳細については、Appleの[Declaring Your Actionable Notification Types](https://developer.apple.com/documentation/usernotifications/declaring_your_actionable_notification_types)を参照してください。
* **Web（Chrome）**：`_osp=do_not_open`マジック文字列を使用して、URLを開かないようにします。これはChromeとFirefoxでサポートされていますが、Safariウェブブラウザではサポートされていません。

***

## サポートされているプラットフォームと制限

| プラットフォーム                  | サポートされるボタン | 注意事項                                               |
| ------------------------- | ---------- | -------------------------------------------------- |
| iOS                       | 最大4つ       | iOS 15以降でアイコン対応。バックグラウンド処理にはカテゴリが必要です。             |
| Android / Amazon / Huawei | 最大3つ       | Android 7以降、ボタンアイコンはありません。                         |
| Web – Chrome              | 最大2つ       | ボタンとアイコンがサポートされています。`_osp=do_not_open`がサポートされています。 |
| Web – Firefox             | ボタンなし      | `_osp=do_not_open`は起動URLのみで機能します。                  |
| Web – Safari              | ボタンなし      | `_osp=do_not_open`はサポートされていません。実際のURLを提供してください。    |

<Note>ユーザーは、ボタンを表示するために通知を**展開**する必要がある場合が多くあります（例：iOSでの長押し、一部のAndroid OEMでのスワイプ + **表示**）。</Note>

***

## トラブルシューティング

### ボタンが表示されない

* 通知を展開します（長押し、スワイプ + 表示、または展開）。
* 各ボタンにAction IDとLabelを追加したことを確認してください。
* プラットフォームの制限を確認してください（例：Chromeでは2つのボタンのみ）。

### モバイルウェブでボタンをクリックしてもブラウザが開かない

ブラウザがバックグラウンドにあるか完全に閉じている場合、クリックイベントがサービスワーカーで依然としてトリガーされても、ほとんどのモバイルブラウザ（Chromeを含む）はフォアグラウンドに移動したりURLを開いたりしません。これは、バックグラウンドアプリがユーザーを中断するのを防ぐための意図的なブラウザの動作です。

* ほとんどのモバイルブラウザは、バックグラウンドサービスワーカーから自身をフォアグラウンドにしません。クリックはワーカーで依然として発生しますが、タブは開きません。これは意図的なものです。
* 新しいタブを開く代わりにタブをフォーカスすることを期待する場合は、起動URLとボタンURLが完全に一致していることを確認してください（末尾のスラッシュを含む）。

### アイコンが表示されない

* iOSはボタンアイコンのためにiOS 15以降である必要があります。
* Android 7以降は、アクションボタンアイコンをレンダリングしません。
* ウェブでは、アイコンURLが公開アクセス可能で小さい（ダウンロードが速い）ことを確認してください。

### なぜ閉じるアクションボタンがあるのですか？

デフォルトでは、Windows 10のウェブプッシュ通知には閉じるボタンが含まれています。ただし、独自のアクションボタンを追加すると、この閉じるボタンは削除されます。したがって、いずれの場合も、ユーザーが通知と対話するまで、通知は画面上に残ります。これは、ユーザーに通知と対話する機会を与えるためにGoogleによって設計されています。

<Info>
  Need help?

  Chat with our Support team or email `support@onesignal.com`

  Please include:

  * Details of the issue you're experiencing and steps to reproduce if available
  * Your OneSignal App ID
  * The External ID or Subscription ID if applicable
  * The URL to the message you tested in the OneSignal Dashboard if applicable
  * Any relevant [logs or error messages](/docs/en/capturing-a-debug-log)

  We're happy to help!
</Info>

***
