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

Capacitor で確実なペイウォールフェッチを実現するには、高速なレンダリング、オーディエンスターゲティングに対応したペイウォールの返却、そしてネットワークが遅い場合のグレースフルなフォールバックという3つの要件を満たす必要があります。以下のルールでは、それを達成するためのタイミング、キャッシュ、フォールバックのパターンについて説明します。
:::tip
以下のルールは、`adapty.activate()` と `adapty.identify()` がすでに完了していることを前提としています。詳しくは [Capacitor SDK の呼び出し順序](capacitor-sdk-call-order) を参照してください。
:::

以下のアドバイスでは v3 のメソッド名を使用しています。SDK v4 では `getPaywall` が `getFlow` に改名されています（[移行ガイド](migration-to-capacitor-sdk-v4) 参照）が、すべてのルールはそのまま適用されます。
## ルールと注意事項 \{#rules-and-pitfalls\}
| すること | しないこと | 理由 |
|---|---|---|
| 表示しようとしているプレースメントを取得する。                                                                                                                | 起動時にすべてのプレースメントを並行してプリフェッチする。        | 一括プリフェッチはメインスレッドをブロックし、バースト中に黒画面を引き起こす。                                                  |
| アトリビューションが解決される機会を得た後に `getPaywall` を取得する — たとえば、`activate` の 1〜2 秒後、または `onLatestProfileLoad` リスナーが発火した後。 | `App.tsx` のアプリ起動時に `getPaywall` を呼び出す。          | アトリビューションがまだ反映されていないため、ペイウォールはデフォルトのオーディエンスに対して解決され、セグメントや ASA パーソナライズが暗黙的にスキップされる。 |
| `loadTimeoutMs` を設定し、すべてのプレースメントに[フォールバックペイウォール](fallback-paywalls)を設定する。                                                          | `getPaywall` を無制限に待機する。                     | タイムアウトを設定しないと、接続が不安定なユーザーはネットワークが解決するまで空白画面を見続けるか、アプリを閉じてしまう。     |
詳細については、[ペイウォールとプロダクトの取得](fetch-paywalls-and-products-capacitor)（`fetchPolicy` および `loadTimeoutMs` パラメータのリファレンス）と[プレースメント](placements)（適切なプレースメントの選択方法）を参照してください。
## 通信状態が悪い場合のチューニング \{#tune-for-poor-connectivity\}

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

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