IMA SDK を使用すると、マルチメディア広告をウェブサイトやアプリに簡単に統合できます。IMA SDK では、 VAST 準拠の広告サーバーに広告をリクエストし、アプリでの広告再生を管理できます。IMA DAI SDK を使用すると、アプリは広告とコンテンツ動画(VOD またはライブ コンテンツ)のストリーム リクエストを行います。SDK は組み合わされた動画ストリームを返すため、アプリ内で広告とコンテンツ動画を切り替える必要はありません。
目的の DAI ソリューションを選択する
Pod サービング DAI
IMA SDK を使用すると、マルチメディア広告をウェブサイトやアプリに簡単に統合できます。IMA SDK では、 VAST 準拠の広告サーバーに広告をリクエストし、アプリでの広告再生を管理できます。IMA DAI SDK を使用すると、アプリは広告とコンテンツ動画(VOD またはライブ コンテンツ)のストリーム リクエストを行います。SDK は組み合わされた動画ストリームを返すため、アプリ内で広告とコンテンツ動画を切り替える必要はありません。
このガイドでは、ライブおよび VOD ストリーム再生用のシンプルな動画プレーヤーで IMA Android DAI SDK を使用して、DAI Pod Serving ストリームを再生する方法について説明します。完了したサンプル統合を確認または確認する場合は、Pod 提供の例をダウンロードしてください。
IMA DAI Pod Serving の概要
StreamRequest
: Google の広告サーバーへのストリーム リクエストを定義するオブジェクト。Pod の提供を有効にするには、ImaSdkFactory.createPodStreamRequest()
またはImaSdkFactory.createPodVodStreamRequest()
を使用して作成する必要があります。これらのメソッドにはネットワーク コードが必要です。createPodStreamRequest
には、カスタム アセットキーとオプションの API キーも必要です。どちらにも他の省略可能なパラメータが含まれます。StreamManager
: トラッキング ping の呼び出しやパブリッシャーへのストリーム イベントの転送など、動画ストリームと IMA DAI SDK 間の通信を処理するオブジェクト。
前提条件
DAI 広告を含む動画ストリームを再生できるように IMA DAI SDK がセットアップされている Android アプリ。そのようなアプリがまだない場合は、出発点として Android DAI BasicExample を使用することをおすすめします。BasicExample には、このガイドで参照しているコードベースがあります。
IMA DAI が機能するためには、アプリで
VideoStreamPlayerCallback.onUserTextReceived()
を使用して ID3 イベントを送信することが重要です。フルサービスの DAI コード スニペットの例をご覧ください。
Pod サービング変数を設定する
連続配信広告の配信に必要な変更はすべて、SampleAdsWrapper.java で行われます。最初のステップは、定数変数を更新することです。
追加する連続配信広告ストリームのリクエスト定数は次のとおりです。
STREAM_URL
: ライブストリームでのみ使用 - マニフェスト マニピュレータまたは連続配信広告を使用するサードパーティ パートナーが提供する動画ストリーム URL。リクエストを行う前に、IMA DAI SDK によって提供されるストリーム ID を挿入する必要があります。この場合、ストリーム URL のプレースホルダ"[[STREAMID]]"
は、リクエストを行う前にストリーム ID に置き換えられます。NETWORK_CODE
: アド マネージャー 360 アカウントのネットワーク コード。CUSTOM_ASSET_KEY
: ライブストリームでのみ使用 - アド マネージャー 360 で連続配信広告配信イベントを識別するカスタム アセットキー。これは、マニフェスト マニピュレータまたはサードパーティの Pod 提供パートナーによって作成できます。API_KEY
: ライブ配信にのみ使用 - IMA DAI SDK からストリーム ID を取得するために必要となる、オプションの API キー。
Android DAI BasicExample はさまざまなストリーム タイプを再生するように設計されていますが、Pod 配信では単一のストリームを再生するように設定されています。サンプルの variable セクションを次のように変更します。
/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {
// Podserving Stream Constants.
private static final String STREAM_URL =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
"master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
"&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
"&seg-host=dai.google.com&stream_id=[[STREAMID]]";
private static final String NETWORK_CODE = "51636543";
private static final String CUSTOM_ASSET_KEY = "google-sample";
private static final String API_KEY = "";
private static final String PLAYER_TYPE = "DAISamplePlayer";
/** Log interface, so we can output the log commands to the UI or similar. */
public interface Logger {
...
ライブまたは VOD の連続配信リクエストを作成して、連続配信広告を有効にする
ライブ ストリーム連続配信広告
さまざまなストリーム タイプの切り替えに使用されていたメソッド buildStreamRequest()
を削除しました。次に、requestAndPlayAds()
を変更して ImaSdkFactory.createPodStreamRequest()
を呼び出し、Live Pod 配信広告リクエストを作成します。最後に、AdsLoader.requestStream()
を使用してストリームをリクエストします。
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
VOD ストリームの連続配信広告
さまざまなストリーム タイプの切り替えに使用されていたメソッド buildStreamRequest()
を削除しました。次に、requestAndPlayAds()
を変更して ImaSdkFactory.createPodVodStreamRequest()
を呼び出し、VOD 連続配信広告の広告リクエストを作成します。最後に、AdsLoader.requestStream()
を使用してストリームをリクエストします。
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
ストリーミング URL の編集と設定
ライブ ストリーム連続配信広告
StreamManager.getStreamId()
を呼び出してストリーム ID を取得します。次に、これを STEAM_URL
に挿入して、"[[STREAMID]]"
と置き換える必要があります。この変更を行うと、videoPlayer.setStreamUrl()
を使用して新しいストリーム URL を設定できます。
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
streamManager.init();
videoPlayer.setStreamUrl(streamUrl);
videoPlayer.play();
}
VOD ストリームの連続配信広告
StreamManager.getStreamId()
を呼び出してストリーム ID を取得します。次に、動画技術パートナー(VTP)にストリーム URL をリクエストします。次に、StreamManager.loadThirdPartyStream()
を呼び出して、TVP から返されたストリーム URL と字幕を IMA に読み込みます。
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
String streamUrl = vtpInterface.requestStreamURL(streamID);
streamManager.init();
// Pass any subtitles returned by your VTP in this step as well.
streamManager.loadThirdPartyStream(streamUrl, subtitles);
}
Pod の配信が有効になっている場合、IMA は VideoStreamPlayer.loadUrl()
を呼び出さないため、IMA から videoPlayer.setStreamUrl()
と videoPlayer.play()
への呼び出しを削除できます。
これで、これで、IMA Android DAI SDK を使用して、連続配信広告のリクエストと表示ができるようになりました。使用されている Android SDK のその他の例については、GitHub にあるサンプルをご覧ください。