Android の遅延読み込み
遅延読み込み機能では、サードパーティのトラッカーや Mobile SDK トラッカーなど、すべてのトラッカーが発生したタイミングを管理するための新しい API 呼び出しが提供されます。 また、必要な場合と必要な直前にホスト アプリが Web ビューを読み込みることができるようにすることで、Banner AdUnit を最適化します。 この機能を有効にすると、従来の loadAd メソッドの後に 2 番目のメソッド loadLazyAd が続きます。
発射トラッカー
遅延読み込み機能は、すべての Mobile SDK とサードパーティのトラッカーを同じインスタンスで起動するように開発されており、両方のメトリック間のアライメントを維持できます。
AdUnit のライフサイクルの概要は、 読み込みと 表示の 2 つのステージで構成 されます。 この機能により、 読み込み ステージが loadAd と loadLazyAd としてさらに 2 つのステップに分割され、その後に 表示 ステージが続きます。 つまり、loadAd が呼び出される前でも、バナー Web ビューをディスプレイにアタッチできます。 ただし、 表示 ステージはプラットフォームによって提供される利便性であり、AdUnit ライフサイクルの 読み込み 部分とは別です。
読み込みステージの 2 番目のステップ loadLazyAd では、次の 2 つのタスクが実行されます。
- クリエイティブでサードパーティのトラッカーを起動する Web ビューを作成して読み込むことで、AdUnit の読み込みを完了します。
- Mobile SDK トラッカーを起動します。
CPU 使用量の管理
遅延読み込み機能により、初期 loadAd は軽量の AdUnit を返し、後でコンテンツを読み込むことができます。 この機能により、内部 Web ビューの作成と構成を後の時点に延期することで、AdUnit の読み込み時間が短縮されます。 Webview の読み込みを遅延させることにより、AdUnit が使用されていない場合にユニバーサル タグで返される広告オブジェクトを読み込む際の追加の CPU 時間の消費が削減されます。
さらに、ホスト アプリはトラッカーを起動する最適な瞬間を選択し、CPU 時間を消費して Web ビューを読み込むことができます。理想的には、広告がエンド ユーザーに表示される (または高確率で表示するためにキューに入れられます)。
遅延読み込みのスコープ
この機能の範囲は、バナーとネイティブ アセンブリ レンダラー Media Types を表示する Banner AdUnits に制限されます。 これは、インストリーム ビデオやネイティブを含む他の AdUnit には適用されず、バナー ビデオ (アウトストリーム ビデオ) やバナーネイティブを含むバナーおよびネイティブ アセンブリ レンダラー以外の複数形式の Banner AdUnit によって返されるメディアの種類にも適用されません。
プロパティ
遅延読み込みは、機能が有効かどうかを示すプロパティ (getter メソッド) を使用して Mobile SDK パブリック API を強化します。
プロパティ | 型 | 属性 | 説明 |
---|---|---|---|
isLazyLoadEnabled |
ブール値 | -- | 遅延読み込み機能が有効になっているかどうかを示します。 |
public boolean isLazyLoadEnabled; // getter
メソッド
enableLazyLoad
遅延読み込み機能を有効にする Setter メソッド。
public void enableLazyLoad(); // setter
loadLazyAd
遅延読み込みの AdUnit の Web ビューを読み込み、サード パーティ製および Mobile SDK トラッカーを含むすべてのトラッカーを起動します。
public void loadLazyAd()
リスナー コールバック
onLazyAdLoaded
onLazyAdLoaded は、 loadAd メソッドが遅延読み込みの AdUnit (割り当てられていない Web ビューを持つ AdUnit) を正常に返したときに発生します。 ANAdResponseInfo のインスタンスを含め、AdUnit インスタンスの他のすべての機能を使用できます。 loadAd が失敗した場合、遅延読み込みされなかった AdUnit と同じコールバックが使用されます。
public void onLazyAdLoaded(AdView adView)
例
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_banner_lazy_load)
banner = BannerAdView(this)
banner.placementID = “1234567”
banner.setAdSize(300, 250)
/* native assebly renderer
banner.setAllowNativeDemand(true)
banner.enableNativeRendering(true)
*/
banner.enableLazyLoad()
banner.loadAd()
}
// AdListener Callback method
override fun onLazyAdLoaded(adView: AdView) {
// Ad is loaded Lazily, Further processing goes here.
}
// Call this method as per the need, to load the webview content.
banner.loadLazyAd()
// AdListener Callback method
override fun onAdLoaded(adView: AdView) {
// Ad loaded, after loadLazyAd() was invoked.
}