IMA SDK を使用すると、ウェブサイトやアプリにマルチメディア広告を簡単に統合できます。 IMA SDK は、 VAST 準拠のあらゆる広告サーバーから広告をリクエストし、アプリでの広告再生を管理できます。IMA クライアントサイド SDK を使用すると、コンテンツ動画の再生を制御しながら、SDK で広告再生を処理できます。広告は、アプリのコンテンツ動画プレーヤーの上に配置された別の動画プレーヤーで再生されます。
このガイドでは、IMA SDK をシンプルな動画プレーヤー アプリに統合する方法について説明します。完成したサンプル統合を表示または確認する場合は、GitHub から シンプルなサンプルをダウンロードしてください。SDK が事前に統合された HTML5 プレーヤーに関心がある場合は、 IMA SDK プラグイン(Video.js 用)をご覧ください。
IMA クライアントサイドの概要
IMA クライアントサイドの実装には、このガイドで説明する 4 つの主要な SDK コンポーネントが含まれます。
AdDisplayContainer: IMA が広告 UI 要素をレンダリングし、視認性を測定する場所を指定するコンテナ オブジェクト。 アクティブ ビュー や Open Measurement などがあります。AdsLoader: 広告をリクエストし、広告リクエスト レスポンスからのイベントを処理するオブジェクト。広告ローダは 1 つだけインスタンス化し、アプリケーションのライフサイクル全体で再利用する必要があります。AdsRequest: 広告リクエストを定義するオブジェクト。広告リクエストでは、VAST 広告タグの URL と、広告のサイズなどの追加パラメータを指定します。AdsManager: 広告リクエストへのレスポンスを含むオブジェクト。広告再生を制御し、SDK によって発生した広告 イベントをリッスンします。
前提条件
始める前に、次のものが必要になります。
- 3 つの空のファイル:
- index.html
- style.css
- ads.js
- Python がパソコン、またはテストに使用するウェブサーバーにインストールされている
1. 開発用サーバーを起動する
IMA SDK は、読み込まれたページと同じプロトコルを使用して依存関係を読み込むため、ウェブサーバーを使用してアプリをテストする必要があります。ローカルの開発用サーバーを起動する最も簡単な方法は、Python が組み込みまれているサーバーを使用することです。
- コマンドラインを使用して、index.html ファイルを含むディレクトリから次のコマンドを実行します。
python -m http.server 8000
- ウェブブラウザで
http://localhost:8000/にアクセスします。
Apache HTTP Server などの他のウェブサーバーも使用できます。
2. シンプルな動画プレーヤーを作成する
まず、index.html を変更して、ラッピング
要素に含まれるシンプルな HTML5 動画要素と、再生をトリガーするボタンを作成します。次の例では、IMA SDK をインポートし、
AdDisplayContainer コンテナ要素を設定しています。詳細については、
IMA SDK をインポートする
手順と
広告コンテナを作成する
手順をそれぞれご覧ください。
style.css ファイルと ads.js ファイルを読み込むために必要なタグを追加します。次に、 styles.css を変更して、動画プレーヤーがモバイルデバイスに対応するようにします。最後に、 ads.js で変数を宣言し、再生ボタンをクリックしたときに動画再生をトリガーします。
ads.js コード スニペットには、広告ローダを初期化して広告リクエストを行うセクションで定義されている setUpIMA() の呼び出しが含まれています。
3. IMA SDK をインポートする
次に、index.html で、
ads.js のタグの前にスクリプトタグを使用して IMA フレームワークを追加します。
4. 広告コンテナを作成する
ほとんどのブラウザでは、IMA SDK は専用の広告コンテナ要素を使用して、広告と
広告関連の UI 要素の両方を表示します。このコンテナは、
左上隅から動画要素にオーバーレイするようにサイズ設定する必要があります。このコンテナに配置される広告の高さと幅は
adsManager オブジェクトによって設定されるため、これらの値を手動で設定する必要はありません。
この広告コンテナ要素を実装するには、まず div を
video-container 要素内に作成します。次に、CSS を更新して、要素を左上隅
に配置しますvideo-element。最後に、createAdDisplayContainer()
関数を追加して、
AdDisplayContainer オブジェクトを新しい広告コンテナ
div を使用して作成します。
5. 広告ローダを初期化して広告リクエストを行う
広告をリクエストするには、
AdsLoader
インスタンスを作成します。AdsLoader コンストラクタは
AdDisplayContainer
オブジェクトを入力として受け取り、指定された広告タグ URL に関連付けられた
AdsRequest
オブジェクトを処理するために使用できます。この例で使用されている広告タグには、
10 秒のプレロール広告が含まれています。 IMA 動画配信インスペクタ を使用して、この広告タグ URL または任意の広告タグ URL をテストできます。
効果的な手法として、ページのライフサイクル全体で AdsLoader インスタンスを 1 つだけ維持します。追加の広告リクエストを行うには、新しい AdsRequest
オブジェクトを作成しますが、同じ AdsLoader を再利用します。詳細については、
IMA SDK のよくある質問をご覧ください。
AdsLoader.addEventListener
を使用して、読み込まれた広告とエラーイベントをリッスンして対応します。
次のイベントをリッスンします。
ADS_MANAGER_LOADEDAD_ERROR
onAdsManagerLoaded() リスナーと onAdError() リスナーを作成するには、次の例をご覧ください。
6. AdsLoader イベントに対応する
AdsLoader が広告を正常に読み込むと、
ADS_MANAGER_LOADED イベントが発生します。コールバックに渡されたイベントを解析して、
AdsManager オブジェクトを初期化します。AdsManager は、広告タグ URL へのレスポンスで定義されている個々の広告を読み込みます。
読み込みプロセス中に発生したエラーを処理してください。広告が読み込まれない場合は、ユーザーがコンテンツを視聴するのを妨げないように、広告なしでメディア再生が続行されるようにしてください。
onAdsManagerLoaded() 関数で設定されたリスナーの詳細については、次のサブセクションをご覧ください。
AdsManager エラーを処理する
AdsLoader 用に作成されたエラー ハンドラは、AdsManager 用のエラー ハンドラとしても機能します。onAdError() 関数を再利用するイベント ハンドラをご覧ください。
再生イベントと一時停止イベントを処理する
AdsManager は、表示する広告を挿入する準備ができると、
CONTENT_PAUSE_REQUESTED イベントを発生させます。このイベントを処理するには、
基盤となる動画プレーヤーを一時停止します。同様に、広告が完了すると、AdsManager は
CONTENT_RESUME_REQUESTED イベントを発生させます。このイベントを処理するには、
基盤となるコンテンツ動画の再生を再開します。
onContentPauseRequested() および onContentResumeRequested() 関数の定義については、次の例をご覧ください。
ノンリニア広告の再生中にコンテンツ再生を処理する
AdsManager は、広告を再生する準備ができるとコンテンツ動画を一時停止しますが、この
動作は、広告が表示されている間もコンテンツの再生が続くノンリニア広告には対応していません。
ノンリニア広告をサポートするには、AdsManager が
LOADED イベントを発生させるのをリッスンします。広告がリニアかどうかを確認し、リニアでない場合は
動画要素の再生を再開します。
onAdLoaded() 関数の定義については、次の例をご覧ください。
7. モバイル デバイスでクリックして一時停止をトリガーする
AdContainer は動画要素にオーバーレイされるため、ユーザーは基盤となるプレーヤーを直接操作できません。モバイルデバイスのユーザーは、動画プレーヤーをタップして再生を一時停止できることを想定しているため、混乱を招く可能性があります。この問題を解決するため、IMA SDK は、広告オーバーレイから IMA で処理されないクリックを AdContainer 要素に渡します。この要素でクリックを処理できます。広告をクリックするとリンク先が開くため、モバイル以外のブラウザのリニア広告には適用されません。
クリックして一時停止を実装するには、ウィンドウの読み込みリスナーで呼び出される adContainerClick() クリック ハンドラ関数を追加します。
8. AdsManager を開始する
広告再生を開始するには、AdsManager
を初期化して開始します。モバイルブラウザを完全にサポートするには、広告を自動的に再生できないため、再生ボタンをクリックするなど、ページに対するユーザー操作から広告再生をトリガーします。
9. プレーヤーのサイズ変更をサポートする
広告のサイズを動的に変更して動画プレーヤーのサイズに合わせたり、画面の向きの変更に合わせたりするには、ウィンドウのサイズ変更イベントに応じてadsManager.resize() を呼び出します。
これで完了です。IMA SDK を使用して広告をリクエストして表示できるようになりました。SDK の高度な機能について詳しくは、他のガイドまたは GitHub のサンプルをご覧ください。