Capacitor SDKでペイウォール取得を最適化する

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

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

ルールと注意点

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

fetchPolicyloadTimeoutMs パラメーターの詳細についてはペイウォールとプロダクトの取得を、適切なプレースメントの選び方についてはプレースメントを参照してください。

通信状態が悪い場合のチューニング

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

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