> ## 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.

# バナーアプリ内メッセージでユーザーをオンボーディング

> アプリUIをブロックしないコンテキストに応じたトップとボトムのバナーアプリ内メッセージでユーザーをガイドします。

バナーアプリ内メッセージ（IAM）を使用すると、アプリUIをブロックせずにユーザーをガイドできます。ユーザーがアプリを操作し続けている間、画面の上部または下部に短いコンテキストメッセージを表示します。

通常、ユーザーが特定の瞬間に追加のコンテキストを必要とする場合、例えば初めて画面に到達したときや重要なワークフローを開始したときにバナーIAMを使用します。

<Info>
  アプリ内メッセージは、トリガー条件が満たされた場合にのみ表示されます。アプリからトリガーを設定することで、バナーが表示されるタイミングを正確に制御できます。
</Info>

***

## バナーIAMを使用するタイミング

以下の場合にオンボーディングでバナーIAMを使用します：

* ユーザーが画面に到達したときにその画面を説明する
* ユーザーを複数ステップのフローを通じてガイドする
* ユーザーが次に取るべきアクションをハイライトする
* オンボーディングを可視的だが邪魔にならないように保つ

構造化された複数画面のウォークスルーが必要な場合は、代わりにカードまたはカルーセルIAMを使用してください。

***

## オンボーディングフローの例

ユーザーが初めてサイトまたはアプリを開くと、トップバナーがユーザーを歓迎し、探索を促します。ユーザーが製品をタップして詳細を表示すると、ボトムバナーが次に何をすべきかをガイドします。各バナーは、ユーザーが関連する画面に到達した場合にのみ表示されます。

このアプローチにより、ユーザーは関連性のあるときにのみガイダンスを見ることができます。

### ビジュアル例：Eコマースオンボーディング

バナーIAMがEコマースアプリを通じてユーザーをガイドする方法は次のとおりです。この例では**2つの別々のIAM**を使用し、それぞれに**3秒の自動閉じ**を設定しています。最初のバナーが閉じると、2番目のバナーのトリガーがアクティブになり、スムーズなシーケンシャルフローを作成します：

<Columns cols={2}>
  <Card title="初期ウェルカムバナー" icon="hand-wave">
    <Frame>
      <img src="https://mintcdn.com/onesignal/yfdI7grM87DeSRfh/images/iam/iam-onboarding-welcome-banner.png?fit=max&auto=format&n=yfdI7grM87DeSRfh&q=85&s=0870317f04e17618fe31e49a525e3caa" alt="「任意の製品をタップして詳細を確認し、ショッピングを開始しましょう！」と表示するウェルカムバナー" width="819" height="1723" data-path="images/iam/iam-onboarding-welcome-banner.png" />
    </Frame>

    ユーザーが最初にアプリを開くと、ボトムバナーが製品の探索を促します。
  </Card>

  <Card title="製品選択バナー" icon="cart-shopping">
    <Frame>
      <img src="https://mintcdn.com/onesignal/yfdI7grM87DeSRfh/images/iam/iam-onboarding-product-banner.png?fit=max&auto=format&n=yfdI7grM87DeSRfh&q=85&s=dee390192eec8bae2c8da54c4a9ec983" alt="「製品を表示しています！すべての詳細を確認し、準備ができたらカートに追加してください。」と表示する製品バナー" width="776" height="1485" data-path="images/iam/iam-onboarding-product-banner.png" />
    </Frame>

    ユーザーが製品をタップすると、バナーが製品詳細ビューのガイダンスを提供します。
  </Card>
</Columns>

***

## 前提条件

始める前に、以下を確認してください：

* アクティブなOneSignalアプリ
* アプリにOneSignal SDKがインストールされている
* アプリコードからイベントをトリガーしたりメソッドを呼び出したりできる
* OneSignal SDKの[ユーザー同意](./mobile-sdk-reference#privacy)が付与されている（アプリ内メッセージングに必要）

***

## バナーアプリ内メッセージを作成する

<Steps>
  <Step title="アプリ内メッセージに移動">
    OneSignalダッシュボードで、**Messages → In-App Messages**に移動し、**New In-App Message**を選択します。
  </Step>

  <Step title="バナータイプを選択">
    **Message Type**で、**Top**または**Bottom**を選択します。
  </Step>

  <Step title="コンテンツをデザイン">
    画面の目的を説明する短い見出し、必要に応じてオプションのサポートテキスト、次のアクションをガイドするオプションのボタンを含めます。
  </Step>

  <Step title="トリガーを設定">
    バナーが表示されるタイミングを定義する1つ以上の\*\*[アプリ内メッセージトリガー](./iam-triggers)\*\*を追加します。オプションで、メッセージが表示される頻度を制御する条件や制限を追加します。
  </Step>

  <Step title="表示時間を設定">
    自動閉じ（バナーが3〜10秒後に消える）またはユーザー閉じ可能（ユーザーが閉じるをタップするまでバナーが残る）を選択します。
  </Step>

  <Step title="メッセージをアクティブ化">
    バナーアプリ内メッセージを保存してアクティブ化します。
  </Step>
</Steps>

<Note>
  高い視認性のガイダンスにはトップバナーを使用し、主要なアクションに合わせた控えめなプロンプトにはボトムバナーを使用します。オンボーディングでは、ユーザーアクションを必要とせずにフローを進めるために自動閉じを使用します。
</Note>

<Warning>
  長い説明は避けてください。バナーIAMは詳細なオンボーディングやチュートリアル向けに設計されていません。
</Warning>

***

## アプリからバナーをトリガーする

ユーザーが特定の画面に到達したり、アクションを完了したりしたときに、アプリ内メッセージトリガーを使用してバナーIAMをトリガーします。トリガーは、アプリコードから設定するキーと値のペアです。トリガー条件がIAMの表示ルールと一致すると、バナーが表示されます。

<CodeGroup>
  ```javascript JavaScript theme={null}
  // ユーザーがダッシュボードを表示したときにトリガー
  OneSignal.addTrigger('dashboard_viewed', 'true');
  ```

  ```swift iOS theme={null}
  // ユーザーがダッシュボードを表示したときにトリガー
  OneSignal.addTrigger("dashboard_viewed", value: "true")
  ```

  ```kotlin Android theme={null}
  // ユーザーがダッシュボードを表示したときにトリガー
  OneSignal.addTrigger("dashboard_viewed", "true")
  ```
</CodeGroup>

<Info>
  トリガーは、削除または更新しない限りセッション中は持続します。各トリガーが明確で意図的なオンボーディングの瞬間を表すようにしてください。
</Info>

### 不要になったらトリガーを削除

バナーが意図せず再表示されるのを防ぐために、不要になったらトリガーを削除します：

<CodeGroup>
  ```javascript JavaScript theme={null}
  // ユーザーがオンボーディングを完了したらトリガーを削除
  OneSignal.removeTrigger('dashboard_viewed');
  ```

  ```swift iOS theme={null}
  // ユーザーがオンボーディングを完了したらトリガーを削除
  OneSignal.removeTrigger("dashboard_viewed")
  ```

  ```kotlin Android theme={null}
  // ユーザーがオンボーディングを完了したらトリガーを削除
  OneSignal.removeTrigger("dashboard_viewed")
  ```
</CodeGroup>

***

## バナーメッセージをチェーン（オプション）

それぞれ独自のトリガーを持つ**複数のIAM**を作成することで、ユーザーをフローを通じてガイドできます。各バナーを**3秒後に自動閉じ**に設定して、次のバナーが表示されるようにします。バナーの重複を防ぐために、次のトリガーを追加する前に前のトリガーを削除します。

<Tip>
  スムーズなシーケンシャルオンボーディングのために、ステップごとに1つのIAMを作成し、それぞれを3秒後に自動閉じに設定し、次のトリガーを追加するときに前のトリガーを削除してチェーンします。
</Tip>

### 例：Eコマースオンボーディングフロー

1. ページ読み込み → トリガー `iam_welcome` → バナー：「🎉 ようこそ！製品を探索」
2. ユーザーが製品をタップ → トリガー `iam_product_view` → バナー：「👀 ❤️をタップしてお気に入りを保存」
3. ユーザーがカートに追加 → トリガー `iam_add_to_cart` → バナー：「✅ いい選択！いつでもカートを表示」
4. ユーザーがカートを表示 → トリガー `iam_cart_view` → バナー：「🛒 ここでアイテムを確認」
5. ユーザーがチェックアウト → トリガー `iam_checkout` → バナー：「🎊 ご注文ありがとうございます！」

<CodeGroup>
  ```javascript JavaScript theme={null}
  // ステップ1からステップ2へ移動
  OneSignal.removeTrigger('iam_welcome');
  OneSignal.addTrigger('iam_product_view', 'true');
  ```

  ```swift iOS theme={null}
  // ステップ1からステップ2へ移動
  OneSignal.removeTrigger("iam_welcome")
  OneSignal.addTrigger("iam_product_view", value: "true")
  ```

  ```kotlin Android theme={null}
  // ステップ1からステップ2へ移動
  OneSignal.removeTrigger("iam_welcome")
  OneSignal.addTrigger("iam_product_view", "true")
  ```
</CodeGroup>

これにより、ユーザーを圧倒することなく段階的なオンボーディングが作成されます。

***

## セットアップを確認

<Check>
  バナーはトリガーが発火したときにのみ表示され、アプリUIをブロックしません。
</Check>

バナーが表示されない場合：

* トリガーキーと値が正確に一致することを確認（大文字小文字を区別）
* IAMがダッシュボードでアクティブであることを確認
* 頻度制限を確認 - IAMがレート制限されている可能性があります
* ユーザーがターゲティングルールを満たしていることを確認（該当する場合）
* OneSignalトリガーイベントのコンソールログを確認
* アプリ内メッセージングの同意が付与されていることを確認（必要な場合）

***

## 次のステップ

* バナーアプリ内メッセージを使用して新機能を発表
* カードまたはカルーセルIAMで完全なオンボーディング体験を作成
* ユーザーをセグメント化して経験レベルに基づいて異なるオンボーディングメッセージを表示
* 異なるバナーメッセージを[A/Bテスト](./journeys-actions#abn-tests-multivariate-testing)してエンゲージメントを最適化
