---
title: "Flutter SDKでペイウォールの取得を最適化する"
description: "Adapty ペイウォールを確実に取得する: Flutter向けのタイミング、キャッシュ、フォールバックパターン。"
---

Flutter での確実なペイウォール取得には、高速なレンダリング、オーディエンスターゲットされたペイウォールの返却、そしてネットワークが遅い場合のグレースフルなフォールバックという3つの要素が必要です。以下のルールでは、それを実現するためのタイミング、キャッシュ、フォールバックパターンについて説明します。

:::tip
これらのルールは、`Adapty().activate()` と `Adapty().identify()` がすでに解決済みであることを前提としています。[Flutter SDK のコール順序](flutter-sdk-call-order)を参照してください。
:::

## ルールと注意点 \{#rules-and-pitfalls\}

| こうする | こうしない | 理由 |
|---|---|---|
| 表示しようとしているプレースメントを取得する。                                                                                  | 起動時にすべてのプレースメントを同時にプリフェッチする。        | 一括プリフェッチはメインスレッドをブロックし、バースト中にブラックスクリーンが発生する。                                  |
| アトリビューションが解決される機会を得た後（例: `activate` から1〜2秒後、または `didUpdateProfileStream` が発火した後）に `getPaywall` を呼び出す。 | `runApp` の前に `main()` で `getPaywall` を呼び出す。         | アトリビューションがまだ反映されていない。ペイウォールがデフォルトのオーディエンスに対して解決され、セグメントやASAのパーソナライゼーションが暗黙的にバイパスされる。 |
| `loadTimeout` を設定し、すべてのプレースメントに対して[フォールバックペイウォール](fallback-paywalls)を構成する。                             | `getPaywall` を無期限に待機する。                     | タイムアウトがない場合、接続状況の悪いユーザーはネットワークが解決されるまで（またはアプリを閉じるまで）白紙の画面を見続ける。     |

`fetchPolicy` および `loadTimeout` パラメーターのリファレンスについては[ペイウォールとプロダクトの取得](fetch-paywalls-and-products-flutter)を、適切なプレースメントの選択については[プレースメント](placements)を参照してください。

## 接続状況が悪い環境向けのチューニング \{#tune-for-poor-connectivity\}

接続状況が慢性的に悪い市場（農村部、移動中、ルーティングの問題がある地域）向けには:

- 最初の取得以外のすべての取得で `fetchPolicy: AdaptyPaywallFetchPolicy.returnCacheDataElseLoad` を設定する。
- Adapty ダッシュボードですべてのプレースメントに[フォールバックペイウォール](fallback-paywalls)を設定する。
- `loadTimeout` を3〜5秒に設定し、タイムアウトが発火した場合はフォールバックを受け入れる。
- `getProfile()` にペイウォールの表示を依存させない。`getPaywall` を独立して呼び出すことで、プロファイルの取得が遅くてもUIをブロックしないようにする。