Android SDKでペイウォールの取得を最適化する
Android上での信頼性の高いペイウォール取得は、3つのことを実現します:高速なレンダリング、オーディエンスターゲティングされたペイウォールの返却、そしてネットワークが遅い場合のグレースフルなフォールバック。以下のルールは、これを実現するためのタイミング、キャッシュ、フォールバックのパターンをカバーしています。
これらのルールは、Adapty.activate() と Adapty.identify() がすでに完了していることを前提としています。Android SDKの呼び出し順序を参照してください。
ルールと注意点
| こうする | こうしない | 理由 |
|---|---|---|
| これから表示するプレースメントを取得する。 | 起動時にすべてのプレースメントを並列でプリフェッチする。 | 一括プリフェッチはメインスレッドをブロックし、バースト中にブラックスクリーンが表示される。 |
アトリビューションが解決される機会を持った後に getPaywall を取得する — たとえば、activate の1〜2秒後、または setOnProfileUpdatedListener が発火した後。 | Application.onCreate() で getPaywall を呼び出す。 | アトリビューションがまだ反映されていない。ペイウォールはデフォルトのオーディエンスに対して解決され、セグメントやASAのパーソナライゼーションが暗黙的にスキップされる。 |
loadTimeout を設定し、すべてのプレースメントにフォールバックペイウォールを設定する。 | getPaywall を無期限に待つ。 | タイムアウトがないと、接続が不安定なユーザーはネットワークが解決するまで、またはアプリを閉じるまで空白の画面を見続けることになる。 |
fetchPolicy と loadTimeout パラメーターのリファレンスはペイウォールとプロダクトの取得を、適切なプレースメントの選び方はプレースメントを参照してください。
接続が不安定な環境向けのチューニング
接続が常に不安定な市場(農村部、交通機関、ルーティングの問題が多い地域)向けには:
- 最初の取得を除くすべての取得で、
fetchPolicyをAdaptyPlacementFetchPolicy.ReturnCacheDataElseLoadに設定する。 - Adapty ダッシュボードのすべてのプレースメントにフォールバックペイウォールを設定する。
loadTimeoutを3〜5秒に設定し、タイムアウト発生時はフォールバックを受け入れる。getProfileにペイウォールの表示を依存させない。getPaywallは独立して呼び出し、プロファイルの取得が遅くてもUIをブロックしないようにする。