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

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

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

ルールと注意点

こうするこうしない理由
これから表示するプレースメントを取得する。起動時にすべてのプレースメントを並列でプリフェッチする。一括プリフェッチはメインスレッドをブロックし、バースト中にブラックスクリーンが表示される。
アトリビューションが解決される機会を持った後に getPaywall を取得する — たとえば、activate の1〜2秒後、または setOnProfileUpdatedListener が発火した後。Application.onCreate()getPaywall を呼び出す。アトリビューションがまだ反映されていない。ペイウォールはデフォルトのオーディエンスに対して解決され、セグメントやASAのパーソナライゼーションが暗黙的にスキップされる。
loadTimeout を設定し、すべてのプレースメントにフォールバックペイウォールを設定する。getPaywall を無期限に待つ。タイムアウトがないと、接続が不安定なユーザーはネットワークが解決するまで、またはアプリを閉じるまで空白の画面を見続けることになる。

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

接続が不安定な環境向けのチューニング

接続が常に不安定な市場(農村部、交通機関、ルーティングの問題が多い地域)向けには:

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