使用 IMA SDK,即可輕鬆將多媒體廣告整合至網站和應用程式。IMA SDK 可向任何 符合 VAST 規定的廣告伺服器請求廣告,並在應用程式中管理廣告播放。應用程式可透過 IMA DAI SDK,對廣告和內容影片 (隨選影片或直播內容) 提出串流請求。SDK 接著會傳回合併的影片串流,因此您不必在應用程式中管理廣告和內容影片之間的切換。
選取您感興趣的 DAI 解決方案
全方位服務 DAI
本指南說明如何將 IMA DAI SDK 整合至簡易影片播放器應用程式。如要查看或跟著操作完整的範例整合,請從 GitHub 下載 BasicExample。
IMA DAI 總覽
如本指南所示,導入 IMA DAI 需使用四個主要 SDK 元件:
StreamDisplayContainer
: 位於影片播放元素頂端的容器物件,用於存放廣告 UI 元素。AdsLoader
: 這個物件會要求串流,並處理由串流要求回應物件觸發的事件。 您應只例項化一個廣告載入器,並在整個應用程式生命週期內重複使用。StreamRequest
: 定義串流要求的物件。串流要求可以是隨選影片或直播串流。直播串流請求會指定素材資源金鑰,而 VOD 請求則會指定 CMS ID 和影片 ID。這兩種要求類型都可以選擇性地加入存取指定串流所需的 API 金鑰,以及 Google Ad Manager 聯播網代碼,供 IMA SDK 處理廣告 ID,如 Google Ad Manager 設定中所指定。StreamManager
: 這個物件會處理動態廣告插播串流,以及與 DAI 後端的互動。串流管理工具也會處理追蹤 Ping,並將串流和廣告事件轉送給發布商。
必要條件
- Android Studio
- SDK 整合的影片播放器應用程式範例
下載並執行範例影片播放器應用程式
這個範例應用程式提供可播放 HLS 影片的影片播放器。請將這個範例做為整合 IMA DAI SDK 動態廣告插播功能的起點。
下載範例影片播放器應用程式,然後解壓縮。
啟動 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 裝置或 Android 虛擬裝置上編譯及執行。影片串流需要幾秒鐘才能載入並開始播放,這是正常現象。
檢查範例影片播放器
範例影片播放器尚未包含任何 IMA DAI SDK 整合程式碼。 這個範例應用程式包含兩個主要部分:
samplevideoplayer/SampleVideoPlayer.java
:以 ExoPlayer 為基礎的 HLS 播放器,可做為 IMA DAI 整合的基礎。videoplayerapp/MyActivity.java
:這項活動會建立影片播放器,並將Context
和media3.ui.PlayerView
傳遞給播放器。
在播放器應用程式中加入 IMA DAI SDK
您也必須加入 IMA DAI SDK 的參照。在 Android Studio 中,將下列內容新增至應用程式層級的 build.gradle 檔案 (位於 app/build.gradle)。IMA SDK 需要啟用程式庫 desugaring,您必須設定 coreLibraryDesugaringEnabled true
,並在 build.gradle 檔案中將 coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
新增為依附元件,詳情請參閱「使用 nio 規格進行脫糖程序後,可用的 Java 11 以上版本 API」。
整合 IMA DAI SDK
在
videoplayerapp
套件 (位於app/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/
中) 建立名為SampleAdsWrapper
的新類別,用於包裝現有的SampleVideoPlayer
,並新增實作 IMA DAI 的邏輯。如要執行這項操作,您必須先建立AdsLoader
,用於要求 DAI 串流。這個程式碼片段包含 HLS 和 DASH、直播和 VOD 串流的範例參數。如要設定要播放的串流,請更新
CONTENT_TYPE
變數。建立
createSampleVideoPlayerCallback()
輔助方法,處理建立擴充VideoStreamPlayer.VideoStreamPlayerCallback
的SampleVideoPlayerCallback
介面執行個體。如要使用 DAI,播放器必須將 ID3 事件傳遞至 IMA DAI SDK。在下列程式碼範例中,
callback.onUserTextReceived()
方法會執行這項操作。新增
buildStreamRequest()
方法來建立SteamRequest
。這個方法會根據CONTENT_TYPE
變數的設定方式,在不同串流之間切換。本指南使用的預設串流是 IMA 的 VOD HLS 串流範例。您還需要
VideoStreamPlayer
才能播放串流,因此請新增createVideoStreamPlayer()
方法,建立實作VideoStreamPlayer
的匿名類別。實作必要的接聽程式,並新增錯誤處理支援。
請注意
AdErrorListener
實作,因為如果廣告無法播放,系統會呼叫備用網址。由於內容和廣告位於同一串流中,如果動態廣告插播串流發生錯誤,您必須準備好呼叫備用串流。新增記錄的程式碼。
修改
videoplayerapp
中的MyActivity
,以便例項化及呼叫SampleAdsWrapper
。此外,請使用輔助方法呼叫ImaSdkFactory.initialize()
,建立ImaSdkSettings
執行個體。新增
getImaSdkSettings()
輔助方法,建立ImaSdkSettings
執行個體。修改活動的版面配置檔案
activity_my.xml
,加入用於記錄的 UI 元素。
恭喜!您現在可以在 Android 應用程式中請求及顯示影片廣告。如要微調導入作業,請參閱書籤、Snapback 和 API 說明文件。
疑難排解
如果無法播放影片廣告,請嘗試下載完成的 BasicExample。 如果 BasicExample 可正常運作,則可能是應用程式的 IMA 整合程式碼有問題。
如果問題仍未解決,請前往 IMA SDK 論壇。