Capacitor SDKでペイウォール取得を最適化する
Capacitorで信頼性の高いペイウォール取得を実現するには、次の3つが重要です。高速なレンダリング、オーディエンスターゲティングされたペイウォールの返却、そしてネットワークが遅い場合のグレースフルなフォールバックです。以下のルールでは、それを実現するためのタイミング、キャッシュ、フォールバックパターンについて説明します。
これらのルールは、adapty.activate() と adapty.identify() がすでに解決済みであることを前提としています。詳しくはCapacitor SDKでの呼び出し順序を参照してください。
ルールと注意点
| 推奨 | 非推奨 | 理由 |
|---|---|---|
| これから表示するプレースメントのみを取得する。 | 起動時にすべてのプレースメントをまとめてプリフェッチする。 | 一括プリフェッチはメインスレッドをブロックし、その間に画面が真っ暗になる。 |
アトリビューションが解決される時間を確保してから getPaywall を呼び出す(例:activate の1〜2秒後、または onLatestProfileLoad リスナーが発火した後)。 | App.tsx のアプリ起動時に getPaywall を呼び出す。 | アトリビューションがまだ反映されていないため、ペイウォールがデフォルトのオーディエンスで解決され、セグメントやASAのパーソナライズが無効にバイパスされる。 |
loadTimeoutMs を設定し、すべてのプレースメントにフォールバックペイウォールを設定する。 | getPaywall を無制限に待ち続ける。 | タイムアウトがないと、通信状態の悪いユーザーはネットワークが回復するまで空白画面を見続けるか、アプリを閉じてしまう。 |
fetchPolicy と loadTimeoutMs パラメーターの詳細についてはペイウォールとプロダクトの取得を、適切なプレースメントの選び方についてはプレースメントを参照してください。
通信状態が悪い場合のチューニング
通信状態が常に悪い市場(地方エリア、移動中、ルーティングの問題がある地域)向けには:
- 初回以外のすべての取得で
fetchPolicy: 'return_cache_data_else_load'を設定する。 - Adapty ダッシュボードですべてのプレースメントにフォールバックペイウォールを設定する。
loadTimeoutMsを3000〜5000ミリ秒に設定し、タイムアウト時はフォールバックを受け入れる。adapty.getProfile()の完了をペイウォール表示の条件にしない。プロファイルの遅延でUIがブロックされないよう、getPaywallは独立して呼び出す。