開始使用 IMA DAI SDK

IMA SDK 可讓您輕鬆將多媒體廣告整合至您的網站和應用程式。IMA SDK 可以 向任何 與 VAST 相容的廣告伺服器,並管理您應用程式中的廣告播放方式。使用 IMA DAI SDK 時,應用程式可提供 廣告和內容影片的串流請求 (VOD 或直播內容)。接著,SDK 會傳回 讓您省去切換廣告和內容影片的麻煩 應用程式內的一切

選取所需的 DAI 解決方案

廣告連播放送 DAI

IMA SDK 可讓您輕鬆將多媒體廣告整合至您的網站和應用程式。IMA SDK 可以 向任何 與 VAST 相容的廣告伺服器,並管理您應用程式中的廣告播放方式。使用 IMA DAI SDK 時,應用程式可提供 廣告和內容影片的串流請求 (VOD 或直播內容)。接著,SDK 會傳回 讓您省去切換廣告和內容影片的麻煩 應用程式內的一切

本指南示範如何使用 IMA DAI 播放 DAI 廣告連播放送串流 具備簡易影片播放器的 SDK,可用來播放直播和隨選串流內容。 想查看或按照已完成的整合範例操作 廣告連播放送範例

IMA DAI 廣告連播放送總覽

必要條件

設定廣告連播放送變數

進行廣告連播放送所需的所有變更,都在 SampleAdsWrapper.java 中進行。 更新常數變數

以下是要新增的廣告連播串流請求常數:

  • STREAM_URL僅適用於直播 - 由 來管理資訊清單操作員或第三方合作夥伴。它應該 您必須先插入 IMA DAI SDK 提供的串流 ID,才能 提出要求。在這個例子中,串流網址會包含預留位置 "[[STREAMID]]",在提出之前,會替換為串流 ID 請求。

  • NETWORK_CODE:Ad Manager 360 帳戶的聯播網代碼。

  • CUSTOM_ASSET_KEY僅適用於直播 - 而是用於 在 Ad Manager 360 中識別廣告連播放送事件建立 Deployment 的 資訊清單操縱器或第三方 Pod 放送合作夥伴

  • API_KEY僅適用於直播 - 選用的 API 金鑰,可視需要設為 必須從 IMA DAI SDK 擷取串流 ID。

Android DAI BasicExample 是用來播放各種不同的串流 但在廣告連播放送時,設定為只播放單一串流。 將範例的變數區段改為以下內容:

/** 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 {

...

建立直播或隨選廣告連播串流要求以啟用廣告連播放送

直播活動廣告連播放送

移除現在用來切換方法的 buildStreamRequest() 建立各種串流類型接著變更requestAndPlayAds()即可撥打電話 建立即時廣告連播放送廣告的ImaSdkFactory.createPodStreamRequest() 請求。最後,使用 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()即可撥打電話 建立 VOD 廣告連播放送廣告的 ImaSdkFactory.createPodVodStreamRequest() 請求。最後,使用 AdsLoader.requestStream() 要求串流。

public void requestAndPlayAds() {
  StreamRequest request =
      sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
  request.setFormat(StreamFormat.HLS);

  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  adsLoader.requestStream(request);
}

編輯並設定串流網址

直播活動廣告連播放送

呼叫 StreamManager.getStreamId() 即可取得串流 ID。您需要 插入到 STEAM_URL 中,取代 "[[STREAMID]]"。這項異動生效後, 時,可以使用 videoPlayer.setStreamUrl() 設定新的串流網址。

@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) 取得的串流網址。然後呼叫 StreamManager.loadThirdPartyStream(),以便 IMA 載入串流網址和任何 TVP 傳回的字幕。

@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);
}

啟用廣告連播放送功能時,IMA 不會呼叫 VideoStreamPlayer.loadUrl(),方便您移除對 videoPlayer.setStreamUrl()videoPlayer.play()

大功告成!您目前透過 IMA DAI SDK 上執行。若想查看使用 Android SDK 的其他範例 請查看 GitHub 上的範例