IMA の読み込み時間を短縮

IMA SDK は、広告のリクエスト、視認性の測定、広告インプレッションのレポート作成のために依存関係を読み込みます。広告リクエストを行う前に IMA を初期化することで、広告の再生前に IMA の依存関係を読み込む時間を最大化できます。このページでは、アプリで IMA の読み込み時間を処理する方法について説明します。

ImaSdkFactory.initialize() に電話

ImaSdkFactory.initialize() メソッドは、最初の広告リクエストの前に SDK リソースのプリロードを開始します。initialize() を使用するには、IMA バージョン 3.35.1 以降が必要です。

ImaSdkFactory.initialize() は、アプリの起動時、またはアプリの構造で許される限りアプリのライフサイクルの早い段階で呼び出します。initialize() 呼び出しは次のパラメータを受け取ります。

  • context: アプリケーション コンテキストを使用します。このコンテキストは、アプリケーションのライフサイクル中に常に使用できます。
  • settings: 値が設定された ImaSdkSettings オブジェクトを渡します。initialize() 呼び出しで使用される IMA 設定は、createAdsLoader() 呼び出しで使用される設定値と同じである必要があります。IMA SDK は、これらの設定(特に言語設定)をキャッシュキーに使用します。initialize() メソッド呼び出しで使用される設定にテスト値や偽の値を使用することはおすすめしません。キャッシュミスが発生し、広告の読み込み時間が長くなる可能性があります。

AdsLoader インスタンスを再利用する

IMA の読み込み時間を短縮するには、同じ AdsLoader インスタンスを再利用することをおすすめします。AdsLoader インターフェースは、複数の広告またはストリーム リクエストを処理できます。リクエストごとに新しい AdsLoader インスタンスを作成しないでください。新しい AdsLoader インスタンスを作成するには、読み込み時間が必要になり、デバイス リソースが追加で使用されます。

ExoPlayer-IMA 拡張機能で読み込み時間を処理する

ExoPlayer-IMA 拡張機能を使用するアプリは、広告の読み込みごとに AdsLoader インスタンスを再作成します。initialize() 呼び出しは、AdLoader の最初の広告リクエストを高速化します。新しいアクティビティの最初の広告リクエストを迅速に処理するには、新しいアクティビティの開始時に initialize() を再度呼び出します。

再生前に広告をリクエストする

広告の再生を開始する前に AdsLoader インスタンスにアクセスできる場合は、AdsLoader.requestAds() メソッドを早めに呼び出すこともできます。この呼び出しを行うと、プレロール広告の読み込みが開始されます。ユーザーがコンテンツの再生を開始する準備ができたら、AdsManager.init() メソッドを呼び出し、LOADED イベントが広告を再生するのを待ちます。