Unity SDKでのペイウォール取得を最適化する
Unity でペイウォールを確実に取得するには、次の3つが必要です: 高速な表示、オーディエンスにターゲティングされたペイウォールの返却、そしてネットワークが遅い場合のグレースフルなフォールバック。以下のルールでは、そのためのタイミング、キャッシュ、フォールバックのパターンについて説明します。
これらのルールは、Adapty.Activate() と Adapty.Identify() がすでに解決済みであることを前提としています。詳細は Unity SDK のコール順序 を参照してください。
ルールと注意点
| このようにする | このようにしない | 理由 |
|---|---|---|
| 表示しようとしているプレースメントを取得する。 | 起動時にすべてのプレースメントを並行してプリフェッチする。 | 一括プリフェッチはメインスレッドをブロックし、バースト中にブラックスクリーンが発生する。 |
アトリビューションが解決する時間を確保した後で GetPaywall を取得する(例: Activate から 1〜2 秒後、または OnLoadLatestProfile が発火した後)。 | Awake() で GetPaywall を呼び出す。 | アトリビューションがまだ到達していない。ペイウォールはデフォルトのオーディエンスに対して解決され、セグメントや ASA パーソナライゼーションがサイレントにバイパスされる。 |
loadTimeout を設定し、すべてのプレースメントにフォールバックペイウォールを設定する。 | GetPaywall を無期限に待機する。 | タイムアウトを設定しない場合、接続品質の低いユーザーはネットワークが解決するまで空白画面を見続けるか、アプリを閉じてしまう。 |
fetchPolicy と loadTimeout パラメータのリファレンスは ペイウォールとプロダクトの取得 を参照してください。また、適切なプレースメントの選び方は プレースメント を参照してください。
接続が不安定な環境向けの調整
接続品質が一貫して低い市場(農村部、交通機関内、ルーティングの影響を受ける地域)向け:
- 最初のフェッチ以外のすべてのフェッチで
fetchPolicyをAdaptyPlacementFetchPolicy.ReturnCacheDataElseLoadに設定する。 - Adapty ダッシュボードですべてのプレースメントにフォールバックペイウォールを設定する。
loadTimeoutを 3〜5 秒に設定し、タイムアウト発生時はフォールバックを受け入れる。- ペイウォールの表示を
GetProfileに依存させない。GetPaywallを独立して呼び出すことで、プロファイルの取得が遅くても UI がブロックされないようにする。