---
title: "フォールバックフロー"
description: "デバイスがオフラインのときもフローを表示し続けるために、Adapty でローカルのフォールバックフローを設定します。"
---

スムーズなユーザー体験を維持するために、[フロー](adapty-flow-builder)の**フォールバックバージョン**を設定しておくことが重要です。

アプリがフローをリクエストすると、Adapty SDK はサーバーに接続してその設定を取得しようとします。デバイスが Adapty に接続できない場合（ネットワーク障害やサーバー停止など）、SDK はローカルデータにフォールバックします。

- ユーザーがすでにそのフローを一度見たことがある場合、SDK はキャッシュされたコピーを表示します。
- キャッシュが存在しない場合、SDK はアプリにバンドルされたフォールバック設定ファイルを読み込みます。

Adapty はこれらのフォールバックファイルを自動的に生成します。フローのフォールバックバンドルはペイウォールと共有されており、プラットフォームごとの単一の JSON ファイルに両方のフォールバックバリアントが含まれています。SDK は必要なセクションを読み込みます。

:::important
フローのフォールバックは **Adapty SDK 4.0 以降**のバンドルに含まれています。ダウンロードダイアログで古い SDK バージョンを選択した場合、ファイルにはペイウォールとオンボーディングのバリアントのみが含まれており、フローは含まれません。フローのフォールバックを利用する前に、アプリがフロー対応の SDK リリースを使用していることを確認してください。
:::

## 始める前に \{#before-you-start\}

1. フロービルダーで[フロー](adapty-flow-builder)を作成します。
2. フロー用の[プレースメントを作成](create-placement)します。

## フォールバックファイルのダウンロード \{#download-the-fallback-file\}

1. **[Placements](https://app.adapty.io/placements)** ページを開きます。
2. 右上の **Fallbacks** ボタンをクリックします。
3. ドロップダウンからターゲットプラットフォームを選択します。
4. アプリに組み込んでいる SDK バージョンに合ったものを選びます。フローを含むバンドルを受け取るには、**Adapty SDK v4.0.0 and higher**（またはそれ以降のオプション）を選択してください。

ブラウザがプラットフォームごとの JSON ファイル（例：`ios_4_0_0_fallback.json`）をダウンロードします。

<details>
   <summary>フローフォールバックエントリの例（クリックして展開）</summary>

```json
"PLACEMENT_ID": {
  "data": [
    {
      "developer_id": "PLACEMENT_ID",
      "variation_id": "cb1c0ef8-aecd-4a53-a6f3-b98266e66884",
      "flow_id": "daf25858-3fa2-4981-8500-9c8a30e5b7e6",
      "flow_name": "FLOW_NAME",
      "flow_version_id": "FLOW_VERSION_ID",
      "placement_audience_version_id": "a9eb3ab8-3178-477d-84d4-ef9d3978e48b",
      "audience_name": "All Users",
      "ab_test_name": "",
      "cross_placement_info": null,
      "weight": 100,
      "variations": [
        {
          "variation_id": "cb1c0ef8-aecd-4a53-a6f3-b98266e66884",
          "paywall_id": "PAYWALL_ID",
          "paywall_name": "PAYWALL_NAME",
          "ab_test_name": "",
          "products": [],
          "revision": 1,
          "custom_payload": null,
          "weight": 100
        }
      ],
      "remote_configs": []
    }
  ],
  "meta": {
    "placement": {
      "developer_id": "PLACEMENT_ID",
      "is_tracking_purchases": true,
      "audience_name": "All Users",
      "placement_audience_version_id": "a9eb3ab8-3178-477d-84d4-ef9d3978e48b",
      "revision": 0,
      "ab_test_name": ""
    }
  }
}
```

正確な構造は SDK バージョンによって異なる場合があります。手動で作成するのではなく、必ず Adapty が生成したファイルをご使用ください。
</details>

## ダウンロード後の手順 \{#after-the-download\}

ファイルをアプリのコードに追加し、プラットフォーム固有のセットアップガイドに従ってください。ペイウォールのフォールバックを読み込む API は、アプリがフロー対応 SDK リリースになった時点でフローのフォールバックも読み込みます。

- [iOS](ios-use-fallback-paywalls)

## 制限事項 \{#limitations\}

フォールバックフローはハードコードされてローカルに保存されるため、ライブフローの完全な動的機能は利用できません。

- **プレースメントごとに 1 つのバリアント。** プレースメントに複数のフロー（異なるオーディエンス、A/B テストのバリアント）がある場合、フォールバックファイルは最も高いウェイトを持つバリアント、または最も広いオーディエンスのバリアントを使用します。
- **A/B テストなし。** ライブフローの A/B テストはサーバー側で解決されますが、フォールバックは常に単一の選択されたバリアントを表示します。
- **リモート更新なし。** フォールバックを更新するには新しいアプリのリリースが必要です。リモートコンフィグで通常行うような実行時の更新は、ライブフローを通じて行ってください。
- **デフォルトロケールのみ。** フォールバックは `en` ロケールを使用します。ローカライズされたバリアントはバンドルされません。