> ## 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 のプラットフォーム別セグメントと設定手順を解説します。

アプリ内メッセージを使用して、古いバージョンのアプリを使用しているユーザーに更新が利用可能であることを通知し、インストールを促すことができます。このチュートリアルでは、iOS と Android 向けにプラットフォーム別のセグメントとメッセージを作成する手順を説明します。

## 要件

* OneSignal SDK v5 以降

## セットアップ

**シナリオ例**：アプリの最新バージョンは `1.0.1` です。バージョン `1.0.0` 以前のユーザーをターゲットにして、更新を促すアプリ内メッセージを表示したいと考えています。

### 1. 最新のアプリバージョンを取得する

OneSignal は以下に基づいて `App Version` を検出します：

**iOS**：Xcode の**メインアプリ Target > General > Identity** にある `Version`

<Frame caption="XcodeにあるiOSアプリバージョン">
  <img src="https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/mobile/ios-version.png?fit=max&auto=format&n=FXJz6yFfOqztaEND&q=85&s=4c6582a16d72787f02bce216ff5cd1c4" alt="XcodeのIdentityセクションにVersionフィールドが表示されているプロジェクト設定" width="2104" height="1294" data-path="images/mobile/ios-version.png" />
</Frame>

**Android**：アプリの `build.gradle` ファイルにある `versionCode`

<Frame caption="アプリのbuild.gradleにあるAndroidアプリバージョン">
  <img src="https://mintcdn.com/onesignal/FXJz6yFfOqztaEND/images/mobile/android-version.png?fit=max&auto=format&n=FXJz6yFfOqztaEND&q=85&s=ded4166d51b66edd8727904db655eee7" alt="versionCodeフィールドが表示されているAndroidのbuild.gradleファイル" width="2302" height="1390" data-path="images/mobile/android-version.png" />
</Frame>

<Note>
  Xcode や Android Studio にアクセスできない場合は、開発者にこれらの値を尋ねてください。
</Note>

<Warning>
  iOS と Android はバージョン形式が異なり、ストアリンクもプラットフォームごとに異なります。プラットフォームごとに別々のセグメントとアプリ内メッセージを作成してください。
</Warning>

### 2. セグメントをセットアップする

iOS と Android 用に 2 つのセグメントを作成する必要があります。

**iOS**：

* セグメント名：`iOS App version less than 1.0.1`
* フィルター：`App Version` が `less than`（未満）`1.0.1` AND `Device Type` が `iOS`。

<Frame caption="iOSセグメントフィルター">
  <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/ios-appversion-segment.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=4326713ed20081df29db2b30ce8a0033" alt="App Versionが1.0.1未満、Device TypeがiOSのフィルターが設定されたOneSignalセグメント" width="1300" height="620" data-path="images/segments/ios-appversion-segment.png" />
</Frame>

**Android**：

* セグメント名：`Android App version less than 10001`
* フィルター：`App Version` が `less than`（未満）`10001` AND `Device Type` が `Android`。

<Frame caption="Androidセグメントフィルター">
  <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/android-appversion-segment.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=7684e1d0ec956fe40fc1f46e2359f45b" alt="App Versionが10001未満、Device TypeがAndroidのフィルターが設定されたOneSignalセグメント" width="1302" height="628" data-path="images/segments/android-appversion-segment.png" />
</Frame>

### 3. アプリ内メッセージをセットアップする

**Messages > In-App > New Message > New In-App** に移動します。

事前構築されたデザイン **New Feature Announcement** から開始するか、ゼロから独自に作成します。

<Frame caption="New Feature Announcementテンプレート">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/new-in-app-message-select.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=672e45bec1d7b137040c0e4cfda951a9" alt="New Feature Announcementオプションが表示されたOneSignalアプリ内メッセージテンプレート選択画面" width="2310" height="1888" data-path="images/iam/new-in-app-message-select.png" />
</Frame>

メッセージに iOS ユーザー向けであることを反映する名前を付けます。

#### オーディエンスを追加する

特定のセグメント **iOS App version less than 1.0.1** を選択します。

#### メッセージを更新する

メッセージの内容を必要に応じて更新します。ユーザーをアプリストアのリストに誘導するには、ボタンまたは他の要素に [URL クリックアクション](./iam-click-actions#url) を追加します。

<Frame caption="アプリストアリストにリンクするURLクリックアクション">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/url-click-action.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=c9895a060ca2edb109e395a232b920b5" alt="ボタンにURLクリックアクションが設定されたOneSignalアプリ内メッセージエディター" width="1732" height="1164" data-path="images/iam/url-click-action.png" />
</Frame>

ストアリンクを URL として入力します：

* **iOS**：`https://apps.apple.com/app/idYOUR_APP_STORE_ID` — [Requesting App Store Reviews](https://developer.apple.com/documentation/storekit/requesting_app_store_reviews) を参照
* **Android**：`https://play.google.com/store/apps/details?id=YOUR_PACKAGE_NAME` — [Linking to Google Play](https://developer.android.com/distribute/marketing-tools/linking-to-google-play.html) を参照

### 4. トリガー

ユーザーがアプリを開いたときにメッセージが表示されるようにするため、**On app open** トリガーの使用をお勧めします。

### 5. スケジュールと頻度

アプリの更新を将来の日時にスケジュールしている場合は、その時点でメッセージが表示され始めるようにスケジュールできます。

更新プロンプトをどの程度積極的に表示したいかに応じて、「このメッセージをどのくらいの頻度で表示しますか？」の頻度を設定できます：

* **Every time trigger conditions are satisfied** — この例ではアプリを開くたびに表示されることを意味します。
* **Multiple times** — メッセージを表示する合計回数と間隔を設定します。例えば、3 日間隔で 100 回。メッセージは最大 100 回、3 日ごとに表示されます。

### 6. 下書きとして保存し、Android 用に複製する

**Save as Draft** ボタンをクリックしてメッセージを保存します。

**In-App Messages** ページで、保存したメッセージの横にある **Options > Duplicate** をクリックします。

Android ユーザー向けに以下を更新します：

* IAM 名を Android ユーザー向けであることを反映するように変更
* セグメントを **Android App version less than 10001** に設定
* URL を Android ストアリンクに更新
* Android ユーザー向けにメッセージを独自にするための追加の変更を加える

**Save as Draft** をクリックしてメッセージを保存します。

***

## テスト

メッセージを公開する前に、以下の手順でテストすることをお勧めします：

<Steps>
  <Step title="テストデバイスを見つけてtest userに設定する">
    * テストデバイスを見つけて、[test user](./test-users) として設定します。
    * テストデバイスがアプリの古いバージョンになっていることを確認します。
  </Step>

  <Step title="Test Usersを含めるようにセグメントを更新する">
    * テストしたいアプリ内メッセージを開きます。
    * セグメントをクリックし、**Test Users** の **And** フィルターを追加します。
      * これにより、メッセージがテストデバイスにのみ表示されるようになります
    * 例えば、テストデバイスが iOS の場合、セグメントは次のようになります：
          <Frame caption="Test Usersフィルターが追加されたiOSセグメント">
            <img src="https://mintcdn.com/onesignal/BIUS_wdfwITxcuxQ/images/segments/ios-appversion-testusers-segment.png?fit=max&auto=format&n=BIUS_wdfwITxcuxQ&q=85&s=8ba7a6b64f91409ae8056408fd5dc941" alt="App Version、Device Type、Test UsersのフィルターがあるOneSignalセグメント" width="1292" height="653" data-path="images/segments/ios-appversion-testusers-segment.png" />
          </Frame>
    * **Update Segment** をクリックして変更を保存します。
  </Step>

  <Step title="メッセージを公開する">
    * **Update Message** をクリックしてアプリ内メッセージを更新します。
    * メッセージの横にある **Options > Resume** をクリックして公開します。
  </Step>

  <Step title="メッセージが表示されることを確認する">
    * テストデバイスでアプリを閉じます。
    * 1 分待ちます。
    * テストデバイスでアプリを開きます。
    * 以下の場合にメッセージが表示されるはずです：
      * デバイスが test user である
      * デバイスがアプリの古いバージョンになっている
      * セグメントが **Test Users** に設定されている
  </Step>
</Steps>

***

## 公開チェックリスト

公開する準備ができたら：

* セグメントを更新して `Test Users` フィルターを削除します。
* スケジュールを確認して、正しい日時に設定されていることを確認します。
* **Update Message** をクリックしてアプリ内メッセージを更新します。

<Check>
  完了です！古いバージョンでアプリを開いたユーザーは、アプリの更新について通知を受け取ります。

  しばらくしてからアプリ内メッセージに戻って進捗を確認してください。[Event Streams](./event-streams) またはサードパーティの [Integrations](./integrations) でアプリ内メッセージの分析を取得することもできます。
</Check>

***

## よくある質問

### OneSignal はアプリバージョンを自動的に検出しますか？

はい。OneSignal SDK はアプリバージョンを自動的に OneSignal に報告します。iOS では Xcode の `Version` フィールド、Android では `build.gradle` ファイルの `versionCode` が使用されます。

### iOS と Android で別々のメッセージが必要な理由は何ですか？

iOS と Android はバージョン形式が異なり（例：`1.0.1` と `10001`）、各プラットフォームのストアリンクも異なります。別々のセグメントとメッセージを使用することで、各プラットフォームに適切なバージョンフィルターとストアリンクが使用されます。

### アプリ内トリガーの代わりに Journeys を使用できますか？

はい。同じバージョンベースのセグメントをターゲットにし、ステップとしてアプリ内メッセージを送信する Journey を作成できます。これにより、タイミングとフォローアップアクションをより細かく制御できます。

***

<Info>
  サポートが必要ですか？

  サポートチームとチャットするか、`support@onesignal.com`にメールしてください

  以下を含めてください：

  * 発生している問題の詳細と再現手順（利用可能な場合）
  * OneSignal App ID
  * 該当する場合は、External IDまたはSubscription ID
  * 該当する場合は、OneSignalダッシュボードでテストしたメッセージのURL
  * 関連する[ログまたはエラーメッセージ](/docs/ja/capturing-a-debug-log)

  お気軽にお問い合わせください！
</Info>

<Columns cols={2}>
  <Card title="アプリ内クリックアクション" icon="hand-pointer" href="./iam-click-actions">
    アプリ内メッセージ要素に URL、権限プロンプト、タグ、アウトカム、カスタムクリックアクションを設定します。
  </Card>

  <Card title="セグメント" icon="users" href="./segmentation">
    ユーザープロパティ、行動、デバイス属性に基づいてセグメントを作成します。
  </Card>
</Columns>
