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

Kotlin Multiplatformでペイウォールを確実に取得するには、3つのことを行う必要があります: 高速にレンダリングする、オーディエンスに合わせたペイウォールを返す、ネットワークが遅いときでも適切にフォールバックする。以下のルールは、これを実現するためのタイミング、キャッシュ、フォールバックパターンをカバーしています。

このルールは、Adapty.activate()Adapty.identify() がすでに完了していることを前提としています。Kotlin Multiplatform SDKでのコール順序を参照してください。

ルールと注意点

推奨非推奨理由
表示しようとしているプレースメントを取得する。起動時にすべてのプレースメントを一括でプリフェッチする。一括プリフェッチはメインスレッドをブロックし、バースト中にブラックスクリーンが発生する。
アトリビューションが解決される機会を与えた後(例: activate から1〜2秒後、または setOnProfileUpdatedListener が発火した後)に getPaywall を取得する。アプリ起動時に getPaywall を呼び出す。アトリビューションがまだ確定していない。ペイウォールがデフォルトのオーディエンスに対して解決され、セグメントやASAのパーソナライゼーションが無効になる。
loadTimeout を設定し、すべてのプレースメントにフォールバックペイウォールを設定する。getPaywall を無期限に待ち続ける。タイムアウトがない場合、接続が悪いユーザーにはネットワークが解決されるまで(またはアプリを閉じるまで)空白の画面が表示される。

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

接続が不安定な環境向けの調整

接続が継続的に不安定な市場(農村地帯、交通機関、ルーティングの影響を受ける地域)向け:

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