IMA SDK を使用すると、マルチメディア広告をウェブサイトやアプリに簡単に統合できます。IMA SDK は、 VAST 準拠の任意の広告サーバーから広告をリクエストし、アプリ内の広告再生を管理できます。IMA DAI SDK を使用すると、アプリは広告とコンテンツ動画(VOD またはライブ コンテンツ)のストリーム リクエストを行います。SDK は統合された動画ストリームを返すため、アプリ内で広告動画とコンテンツ動画の切り替えを管理する必要はありません。
関心のある DAI ソリューションを選択する
フルサービス DAI
このガイドでは、IMA DAI SDK をシンプルな動画プレーヤー アプリに統合する方法について説明します。統合済みのサンプルを表示または確認するには、GitHub から BasicExample をダウンロードしてください。
IMA DAI の概要
IMA DAI の実装には、このガイドで説明するように、4 つの主要な SDK コンポーネントが関与します。
StreamDisplayContainer
: 動画再生要素の上に配置され、広告 UI 要素を格納するコンテナ オブジェクト。AdsLoader
: ストリームをリクエストし、ストリーム リクエスト レスポンス オブジェクトによってトリガーされたイベントを処理するオブジェクト。インスタンス化すべき広告ローダは 1 つだけです。この広告ローダは、アプリの存続期間中ずっと再利用できます。StreamRequest
: ストリーム リクエストを定義するオブジェクト。ストリーム リクエストは、ビデオ オンデマンドまたはライブ配信のいずれかです。ライブ配信リクエストではアセットキーを指定しますが、VOD リクエストでは CMS ID と動画 ID を指定します。どちらのリクエスト タイプにも、指定されたストリームにアクセスするために必要な API キーと、Google アド マネージャーの設定で指定されているように、IMA SDK が広告識別子を処理するための Google アド マネージャー ネットワーク コードを含めることができます。StreamManager
: ダイナミック広告挿入ストリームと DAI バックエンドとのやり取りを処理するオブジェクト。ストリーム マネージャーは、トラッキング ピングも処理し、ストリーム イベントと広告イベントをパブリッシャーに転送します。
前提条件
- Android Studio
- SDK 統合用の動画プレーヤー アプリのサンプル
サンプルの動画プレーヤー アプリをダウンロードして実行する
このサンプルアプリには、HLS 動画を再生する動作する動画プレーヤーが用意されています。これは、IMA DAI SDK の DAI 機能を統合する出発点として使用してください。
サンプル動画プレーヤー アプリをダウンロードして解凍します。
Android Studio を起動し、[Open an existing Android Studio project] を選択します。Android Studio がすでに実行されている場合は、[File] > [New] > [Import Project] を選択します。次に、
SampleVideoPlayer/build.gradle
を選択します。[Tools] > [Android] > [Sync Project with Gradle Files] を選択して、Gradle 同期を実行します。
[Run] > [Run 'app'] を使用して、プレーヤー アプリが実機または Android 仮想デバイスでコンパイルされ、実行されることを確認します。動画ストリーミングの読み込みに時間がかかることがありますが、これは正常な動作です。
サンプル動画プレーヤーを確認する
サンプル動画プレーヤーには、IMA DAI SDK 統合コードはまだ含まれていません。サンプルアプリは、主に次の 2 つの部分で構成されています。
samplevideoplayer/SampleVideoPlayer.java
: IMA DAI 統合の基盤となる ExoPlayer ベースの HLS プレーヤー。videoplayerapp/MyActivity.java
: このアクティビティは動画プレーヤーを作成し、Context
とmedia3.ui.PlayerView
を渡します。
IMA DAI SDK をプレーヤー アプリに追加する
また、IMA DAI SDK への参照も含める必要があります。Android Studio で、app/build.gradle
にあるアプリケーション レベルの build.gradle
ファイルに次のコードを追加します。
IMA DAI SDK を統合する
videoplayerapp
パッケージ(app/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/
内)にSampleAdsWrapper
という新しいクラスを作成し、既存のSampleVideoPlayer
をラップして、IMA DAI を実装するロジックを追加します。これを行うには、まず DAI ストリームのリクエストに使用するAdsLoader
を作成する必要があります。このスニペットには、HLS と DASH、ライブ ストリームと VOD ストリームのサンプル パラメータが含まれています。再生するストリームを設定するには、
CONTENT_TYPE
変数を更新します。VideoStreamPlayer.VideoStreamPlayerCallback
を拡張するSampleVideoPlayerCallback
インターフェース インスタンスの作成を処理するcreateSampleVideoPlayerCallback()
ヘルパー メソッドを作成します。DAI を使用するには、プレーヤーがライブ配信の ID3 イベントを IMA DAI SDK に渡す必要があります。次のサンプルコードでは、
callback.onUserTextReceived()
メソッドがこの処理を行います。buildStreamRequest()
メソッドを追加してSteamRequest
を作成します。このメソッドは、CONTENT_TYPE
変数の設定方法に基づいて、さまざまなストリームを切り替えます。このガイドで使用するデフォルトのストリームは、IMA のサンプル VOD HLS ストリームです。ストリームを再生するには
VideoStreamPlayer
も必要であるため、createVideoStreamPlayer()
メソッドを追加して、VideoStreamPlayer
を実装する匿名クラスを作成します。必要なリスナーを実装し、エラー処理のサポートを追加します。
AdErrorListener
の実装に注目してください。広告の再生に失敗した場合、この実装はフォールバック URL を呼び出します。コンテンツと広告が 1 つのストリームに存在するため、DAI ストリームでエラーが発生した場合にフォールバック ストリームを呼び出す準備ができている必要があります。ロギング用のコードを追加します。
videoplayerapp
のMyActivity
を変更して、SampleAdsWrapper
をインスタンス化して呼び出します。また、ヘルパー メソッドを使用してImaSdkFactory.initialize()
を呼び出し、ImaSdkSettings
インスタンスを作成します。getImaSdkSettings()
ヘルパー メソッドを追加して、ImaSdkSettings
インスタンスを作成します。アクティビティのレイアウト ファイル
activity_my.xml
を変更して、ロギング用の UI 要素を追加します。
おめでとうございます。これで、Android アプリで動画広告をリクエストして表示できるようになりました。実装を微調整するには、ブックマーク、スナップバック、API のドキュメントをご覧ください。
トラブルシューティング
動画広告の再生で問題が発生した場合は、完成した BasicExample をダウンロードしてみてください。BasicExample で正常に動作する場合は、アプリの IMA 統合コードに問題がある可能性があります。
それでも問題が解決しない場合は、IMA SDK フォーラムをご覧ください。