> ## 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、Huawei、Amazon 全体で OneSignal を使用してモバイルプッシュ通知を設定するためのエンドツーエンドチェックリスト。

プッシュ通知は、ユーザーがアプリをアクティブに使用していないときに再エンゲージします。テキストや画像、ボタン、サウンドなどのリッチコンテンツを表示できます。

<Frame caption="iOS と Android のプッシュ通知の例。">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/d6ba464616e546aaf62a5bda18adb4422d036815db4b2454e8a8b6a4dcf67706-channel-setup-mobile-push.jpg?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=63d1840679897262b47a004375a1bb33" alt="リッチコンテンツを表示する iOS と Android のモバイルプッシュ通知の例" width="1280" height="720" data-path="images/docs/d6ba464616e546aaf62a5bda18adb4422d036815db4b2454e8a8b6a4dcf67706-channel-setup-mobile-push.jpg" />
</Frame>

モバイルでプッシュが機能するには：

* ユーザーがモバイルアプリをインストールしている必要があります
* 正しいプラットフォーム認証情報を設定する必要があります（Android の FCM、iOS の APNs、Huawei の HMS、Amazon の ADM）
* ユーザーが通知を受信する権限を付与する必要があります

このガイドでは、SDK セットアップからパーソナライズされたプッシュメッセージの送信まで、すべてのステップを説明します。

***

## SDK セットアップと移行

アプリに OneSignal SDK を統合してデバイスを登録し、プッシュメッセージングを有効にします。別のプロバイダーから移行する場合、OneSignal は Firebase、Airship、Braze などからの移行をサポートしています。

<Columns cols={2}>
  <Card title="モバイル SDK セットアップ" icon="mobile" href="./mobile-sdk-setup">
    アプリに OneSignal SDK を統合してデバイスを登録し、プッシュメッセージングを有効にします。
  </Card>

  <Card title="別のプロバイダーからの移行" icon="arrow-right-arrow-left" href="./migrating-to-onesignal">
    Firebase、Airship、Braze、またはその他のプッシュプロバイダーから移行します。
  </Card>
</Columns>

***

## プッシュ権限プロンプト

モバイルプラットフォームでは、プッシュ通知を受信する前にユーザーがオプトインする必要があります。Apple の[Human Interface Guidelines](https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/notifications) では、送信したい情報の種類を説明し、ユーザーにオプトインまたはオプトアウトする明確な方法を提供することを推奨しています。

OneSignal のアプリ内メッセージを使用して、システムプロンプトをトリガーする前に価値を説明する事前権限プロンプトを構築できます。

<Frame caption="アプリ内メッセージで構築されたカスタム事前権限プッシュプロンプト。">
  <img src="https://mintcdn.com/onesignal/l4Z9oMlZl9nJOS_T/images/push/mobile-push-setup-ask-users-for-permission-to-send-push.jpg?fit=max&auto=format&n=l4Z9oMlZl9nJOS_T&q=85&s=aa31e67179d80c4b99c2d86102091d60" alt="プッシュ通知の事前権限プロンプトとして使用されている OneSignal アプリ内メッセージ" width="2136" height="1338" data-path="images/push/mobile-push-setup-ask-users-for-permission-to-send-push.jpg" />
</Frame>

<Columns cols={2}>
  <Card title="プッシュ権限のプロンプト" icon="bell" href="./prompt-for-push-permissions">
    アプリ内メッセージを使用してカスタム事前権限プロンプトを構築します。
  </Card>

  <Card title="モバイル SDK リファレンス" icon="code" href="./mobile-sdk-reference">
    SDK でプログラム的に権限リクエストをトリガーします。
  </Card>

  <Card title="iOS プロビジョナルプッシュ" icon="apple" href="./ios-provisional-push-notifications">
    プロンプトを表示する前に通知センターにサイレント通知を表示します。
  </Card>
</Columns>

***

## ユーザーとサブスクリプション

SDK がアクティブになると、ユーザーがアプリを開くたびに OneSignal は自動的にユーザーとサブスクリプションレコードを作成します。

モバイルサブスクリプションは次の場合に作成されます：

* デバイスで初めてアプリを開く
* アプリをアンインストールして再インストールし、再度アプリを開く

各デバイスは個別のサブスクリプションを作成します。サブスクリプションは、`OneSignal.login` を介して[外部 ID](./users#external-id) を割り当てるまで匿名のままです。

<Frame caption="OneSignal ダッシュボード：Audience > Users">
  <img src="https://mintcdn.com/onesignal/ciRrThfP6xMpI7GY/images/dashboard/users-page.png?fit=max&auto=format&n=ciRrThfP6xMpI7GY&q=85&s=8992ef97cf3c9f336078f9dbf8a6374e" alt="サブスクリプション詳細を含むユーザーリストを表示する OneSignal ダッシュボードユーザーページ" width="2316" height="858" data-path="images/dashboard/users-page.png" />
</Frame>

<Columns cols={2}>
  <Card title="ユーザー" icon="users" href="./users">
    ユーザーを管理し、外部 ID を割り当て、匿名ユーザーと識別済みユーザーを理解します。
  </Card>

  <Card title="サブスクリプション" icon="address-book" href="./subscriptions">
    サブスクリプションがデバイスとチャネル全体でどのように作成・管理されるか。
  </Card>

  <Card title="セグメント" icon="chart-pie" href="./segmentation">
    ターゲットメッセージングのためにユーザーを動的セグメントにグループ化します。
  </Card>
</Columns>

***

## プッシュ通知のデザイン

効果的なプッシュ通知を作成するには、テキストを書く以上のことが必要です。すべてのプッシュ通知を最大限に活用する方法をご覧ください。その後、以下のデザイン要素を確認してください。

<Frame caption="すべてのプッシュ通知を最大限に活用する方法">
  <iframe width="560" height="315" src="https://www.youtube.com/embed/mlXEsZA2qlM?si=tIstWJYNFOzrtMR5" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />
</Frame>

<Frame caption="iOS と Android のモバイルプッシュ通知の構造。">
  <img src="https://mintcdn.com/onesignal/l4Z9oMlZl9nJOS_T/images/push/ios-and-android-mobile-push-expanded.jpg?fit=max&auto=format&n=l4Z9oMlZl9nJOS_T&q=85&s=5f0a3048b1b945ce1c960807992e4c74" alt="iOS と Android のプッシュ通知の構造を示す注釈図" width="1467" height="726" data-path="images/push/ios-and-android-mobile-push-expanded.jpg" />
</Frame>

1. [タイトル](./push#title)：注意を引く見出し（推奨：50 文字以内）
2. [メッセージ](./push#message)：メイン通知コンテンツ（推奨：120 文字以内）
3. [アイコン](./notification-icons)：ブランドアイコンまたは通知固有の画像
4. [大きな画像](./push#image)：目を引くビジュアルコンテンツ
5. [アクションボタン](./action-buttons)：行動を促すボタン
6. プッシュが受信されたときのタイムスタンプ
7. [アプリ名](./push#app-name)：アプリの名前

<Columns cols={2}>
  <Card title="プッシュ概要" icon="bell" href="./push">
    プッシュ通知の作成、オプション、配信動作の完全な概要。
  </Card>

  <Card title="テンプレート" icon="clone" href="./templates">
    一貫したメッセージングのために再利用可能なテンプレートで時間を節約します。
  </Card>
</Columns>

### パーソナライゼーションとローカライゼーション

汎用プッシュ通知を高パフォーマンスメッセージに変える方法をご覧ください。その後、以下のパーソナライゼーションオプションを確認してください。

<Frame caption="汎用プッシュ通知を高パフォーマンスメッセージに変える方法">
  <iframe width="560" height="315" src="https://www.youtube.com/embed/Rf6N_rezxuk?si=8t2pd1bxKeN5ofq-" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />
</Frame>

<Columns cols={2}>
  <Card title="メッセージのパーソナライゼーション" icon="wand-magic-sparkles" href="./message-personalization">
    名前や好みなどの動的変数を挿入してメッセージを調整します。
  </Card>

  <Card title="多言語メッセージング" icon="language" href="./multi-language-messaging">
    各ユーザーの優先言語でメッセージを自動的に配信します。
  </Card>
</Columns>

***

## プッシュ動作の設定

配信後の通知の動作を制御します。タイミング、表示設定、ユーザーのインタラクションが含まれます。

### 配信、表示、却下設定

<Columns cols={2}>
  <Card title="スロットリング" icon="gauge-high" href="./throttling">
    大規模なオーディエンスに対する通知配信速度を制御します。
  </Card>

  <Card title="頻度制限" icon="hand" href="./frequency-capping">
    同じユーザーへの通知の過剰送信を防ぐために制限を設定します。
  </Card>

  <Card title="Time to live (TTL)" icon="clock" href="./push#time-to-live-ttl">
    デバイスがオフラインのときにプッシュサービスがメッセージを保持する期間を定義します。
  </Card>

  <Card title="Collapse ID" icon="layer-group" href="./push#collapse-id-mobile-push">
    通知の混雑を減らすために前のメッセージを新しいものに置き換えます。
  </Card>

  <Card title="Android 通知カテゴリ" icon="android" href="./android-notification-categories">
    重要度レベル（バナー、サイレント）およびその他の表示方法を制御します。
  </Card>

  <Card title="iOS フォーカスモードと中断レベル" icon="apple" href="./ios-focus-modes-and-interruption-levels">
    iOS の優先度レベル（パッシブ、時間に敏感）を制御します。
  </Card>

  <Card title="通知サウンド" icon="volume-high" href="./notification-sounds">
    各プラットフォームの通知オーディオを設定します。
  </Card>

  <Card title="バッジ" icon="circle-1" href="./badges">
    iOS でアプリアイコンのバッジカウント動作を管理します。
  </Card>
</Columns>

### データとバックグラウンド通知

アプリが可視通知を表示せずに処理できるカスタムデータをプッシュペイロードに含めます。

<Columns cols={2}>
  <Card title="データとバックグラウンド通知" icon="database" href="./data-notifications">
    視覚的な通知なしでカスタムペイロードを送信します。
  </Card>

  <Card title="追加データ" icon="brackets-curly" href="./push#additional-data">
    アプリ内処理のためにプッシュペイロードにキーと値のデータを添付します。
  </Card>
</Columns>

### クリック動作とディープリンク

ユーザーが通知をタップしたときに何が起こるかを制御します。

<Columns cols={2}>
  <Card title="URL、リンク、ディープリンク" icon="link" href="./links">
    ディープリンクとトラッキング URL を使用して、関連するコンテンツやページにユーザーをルーティングします。
  </Card>

  <Card title="ディープリンク" icon="arrow-up-right-from-square" href="./deep-linking">
    プラットフォーム固有のディープリンク実装の詳細。
  </Card>

  <Card title="アクションボタン" icon="hand-pointer" href="./action-buttons">
    通知からユーザーがすぐにアクションを実行できるようにします。
  </Card>

  <Card title="通知イベントオブザーバー" icon="code" href="./mobile-sdk-reference#push-notification-events">
    クリックイベントをリッスンし、カスタムコードでアプリ内動作をトリガーします。
  </Card>
</Columns>

***

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

通知のパフォーマンスを測定し、一般的な配信の問題を解決します。

<Columns cols={2}>
  <Card title="プッシュメッセージレポート" icon="chart-line" href="./push-notification-message-reports">
    各メッセージの配信、開封率、クリックスルーメトリクスを表示します。
  </Card>

  <Card title="分析概要" icon="chart-bar" href="./analytics-overview">
    チャネル全体のエンゲージメントとユーザー行動メトリクスを探索します。
  </Card>

  <Card title="通知が表示されないまたは遅延している" icon="circle-exclamation" href="./notifications-show-successful-but-are-not-being-shown">
    メッセージがデバイスに表示されない場合のトラブルシューティングチェックリスト。
  </Card>

  <Card title="通知画像が表示されない" icon="image" href="./notification-images-not-showing">
    プラットフォーム全体の画像レンダリングの問題を修正します。
  </Card>

  <Card title="重複通知" icon="copy" href="./duplicated-notifications">
    重複通知が表示される理由をトラブルシューティングします。
  </Card>
</Columns>

***

## 次のステップ

<Columns cols={2}>
  <Card title="A/B テスト" icon="flask" href="./ab-testing">
    実験でメッセージを最適化し、エンゲージメントを促進する要因を見つけます。
  </Card>

  <Card title="Journey" icon="route" href="./journeys-overview">
    ユーザー行動によってトリガーされる自動化されたマルチステップメッセージングフローを構築します。
  </Card>

  <Card title="タグ" icon="tags" href="./add-user-data-tags">
    パーソナライゼーションとターゲティングのためにユーザーレベルのデータを追加します。
  </Card>

  <Card title="アプリ内メッセージ" icon="window-maximize" href="./in-app-messages-setup">
    アプリ内でリッチでインタラクティブなメッセージでユーザーにリーチします。
  </Card>
</Columns>

***

## よくある質問

### ユーザーはプッシュ通知を受け取るためにオプトインする必要がありますか？

はい。iOS と Android はどちらも、プッシュ通知を受信する前にユーザーが権限を付与する必要があります。iOS では、システムプロンプトを表示する必要があります。Android 13+ では、`POST_NOTIFICATIONS` 権限が必要です。システムダイアログをトリガーする前に価値を説明するために、[事前権限プロンプト](./prompt-for-push-permissions)を使用してください。

### FCM、APNs、HMS、ADM とは何ですか？

これらはプラットフォーム固有のプッシュ配信サービスです。**FCM**（Firebase Cloud Messaging）は Android と Web に配信します。**APNs**（Apple プッシュ通知サービス）は iOS と macOS に配信します。**HMS**（Huawei Mobile Services）は Huawei デバイスに配信します。**ADM**（Amazon Device Messaging）は Amazon Fire デバイスに配信します。[SDK セットアップ](./mobile-sdk-setup)中に OneSignal ダッシュボードでそれぞれの認証情報を設定します。

### なぜプッシュ通知が表示されないのですか？

一般的な原因には、プラットフォーム認証情報の欠如または有効期限切れ、ユーザーが権限を付与していない、またはサイレントモードやフォーカスモードなどのデバイスレベルの設定があります。完全なトラブルシューティングチェックリストについては、[通知が表示されないまたは遅延している](./notifications-show-successful-but-are-not-being-shown)を参照してください。

### 可視通知なしでプッシュ通知を送信できますか？

はい。[データとバックグラウンド通知](./data-notifications)を使用して、アプリがサイレントに処理するカスタムペイロードを送信します。これらはバックグラウンド同期のトリガー、ローカルデータの更新、またはユーザーを中断せずにコンテンツを更新するのに役立ちます。
