HLS 插頁式廣告規格提供彈性的方式,可排定廣告放送時間,並將廣告插入影片或音訊串流。採用用戶端方法時,應用程式會建立 AVPlayerInterstitialEvent 類別,全面掌控何時要求及播放廣告插播。這種做法不需要內容串流資訊清單中的 EXT-X-DATERANGE 標記。使用用戶端 HLS 插播廣告,即可在任何內容中動態插入廣告,不必修改串流資訊清單或媒體檔案。
本指南說明如何將互動式媒體廣告 (IMA) SDK 整合至影片播放器應用程式,建立伺服器導向廣告插播 (SGAI) 直播工作階段,並在用戶端排定中插廣告。詳情請參閱伺服器導向的動態廣告插播。
必要條件
開始之前,請先備妥下列項目:
使用
Storyboard做為使用者介面的新 Xcode 專案。詳情請參閱「為應用程式建立 Xcode 專案」一文。Google IMA SDK。詳情請參閱「為 DAI 設定 IMA SDK」。
動態廣告插播直播要求中的下列參數:
NETWORK_CODE:您的 Google Ad Manager 聯播網代碼。CUSTOM_ASSET_KEY:用來識別 DAI 直播活動的自訂字串。直播活動的 DAI 類型必須為「廣告連播放送資訊清單」。
設定分鏡腳本
在 iPhone.storyboard 檔案中,執行下列操作:
- 建立
UIView物件,做為影片播放器和廣告使用者介面的容器。 - 建立
ViewController類別的adUIView屬性,以便與UIView物件建立連線。 - 在
adUIView物件中,建立UIButton做為播放按鈕。 - 建立
ViewController類別的playButton屬性,以便與UIButton物件建立連線,並建立onPlayButtonTouch函式來處理使用者輕觸事件。
初始化廣告載入器
在主要檢視區塊控制器的 viewDidLoad 事件中,執行下列操作:
- 使用
AVPlayer和AVPlayerLayer類別設定影片播放器。 - 建立
IMAAdDisplayContainer和IMAAVPlayerVideoDisplay物件。廣告顯示容器會指定adUIView,供 IMA DAI SDK 插入廣告 UI 子檢視區塊。影片顯示物件可做為 IMA DAI SDK 廣告邏輯與 AVFoundation 播放系統之間的橋樑,追蹤影片廣告的播放情形。 - 使用廣告播放和廣告 UI 本地化設定,初始化
IMAAdsLoader物件。
以下範例會使用空白的 IMASettings 物件初始化廣告載入器:
提出串流要求
如要為內容串流請求廣告,請建立 IMAPodStreamRequest 物件,並傳遞至 IMAAdsLoader 執行個體。您可以選擇設定 adTagParameters 屬性,為串流提供 DAI 選項和指定目標參數。
這個範例會在 viewDidAppear 事件中呼叫 loadAdStream 方法:
在正式版應用程式中,使用者選取內容串流後,請呼叫 loadAdStream 方法。
處理串流載入事件
實作 IMAAdsLoaderDelegate 通訊協定,處理串流要求成功或失敗的情況:
- 成功時,您會收到包含
IMAStreamManager的IMAAdsLoadedData物件。儲存目前 DAI 工作階段的streamManager.streamId值。 - 如果失敗,請記錄錯誤。
以下範例會處理串流載入事件,並記錄串流載入失敗事件:
排定廣告插播時間
如要安排廣告插播時間,請建立 AVPlayerInterstitialEvent 物件。將事件物件的 templateItems 屬性設為 AVPlayerItem 物件的陣列,其中每個項目物件都包含廣告插播資訊清單網址。
如要建構廣告 Pod 資訊清單網址,請參閱「方法:HLS Pod 資訊清單」說明文件。
基於示範用途,以下範例會使用內容直播的目前時間,產生 Pod ID 字串。generatePodIdentifier 函式會以 ad_break_id/mid-roll-{minute} 形式傳回 Pod ID。
在正式版應用程式中,從來源擷取廣告群組 ID,該來源會為每個廣告插播提供不重複的值,並為所有直播觀眾同步處理。
以下範例會排定廣告插播,在使用者點選播放按鈕後的兩分鐘內開始:
scheduleAdInsertion 方法會計算廣告插播開始時間,並建構廣告插播資訊清單網址。使用這個網址建立 AVPlayerInterstitialEvent 物件。
您可以選擇使用 AVPlayerInterstitialEvent.Restrictions struct,在廣告播放期間限制使用者略過或倒轉。
處理廣告事件
如要處理廣告事件,請導入 IMAStreamManagerDelegate 通訊協定。這個方法可讓您追蹤廣告插播的開始和結束時間,並取得個別廣告的相關資訊。
執行應用程式。如果成功,您可以使用 Pod 放送資訊清單串流請求及播放插頁式廣告。