---
title: "Capacitor SDKでペイウォール取得を最適化する"
description: "Capacitorでの信頼性の高いAdaptyペイウォール取得：タイミング、キャッシュ、フォールバックパターン。"
---

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

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

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

| 推奨 | 非推奨 | 理由 |
|---|---|---|
| これから表示するプレースメントのみを取得する。                                                                                                                | 起動時にすべてのプレースメントをまとめてプリフェッチする。        | 一括プリフェッチはメインスレッドをブロックし、その間に画面が真っ暗になる。                                                  |
| アトリビューションが解決される時間を確保してから `getPaywall` を呼び出す（例：`activate` の1〜2秒後、または `onLatestProfileLoad` リスナーが発火した後）。 | `App.tsx` のアプリ起動時に `getPaywall` を呼び出す。          | アトリビューションがまだ反映されていないため、ペイウォールがデフォルトのオーディエンスで解決され、セグメントやASAのパーソナライズが無効にバイパスされる。 |
| `loadTimeoutMs` を設定し、すべてのプレースメントに[フォールバックペイウォール](fallback-paywalls)を設定する。                                                          | `getPaywall` を無制限に待ち続ける。                     | タイムアウトがないと、通信状態の悪いユーザーはネットワークが回復するまで空白画面を見続けるか、アプリを閉じてしまう。     |

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

## 通信状態が悪い場合のチューニング \{#tune-for-poor-connectivity\}

通信状態が常に悪い市場（地方エリア、移動中、ルーティングの問題がある地域）向けには：

- 初回以外のすべての取得で `fetchPolicy: 'return_cache_data_else_load'` を設定する。
- Adapty ダッシュボードですべてのプレースメントに[フォールバックペイウォール](fallback-paywalls)を設定する。
- `loadTimeoutMs` を3000〜5000ミリ秒に設定し、タイムアウト時はフォールバックを受け入れる。
- `adapty.getProfile()` の完了をペイウォール表示の条件にしない。プロファイルの遅延でUIがブロックされないよう、`getPaywall` は独立して呼び出す。