本指南說明如何將 IMA DAI SDK 整合至影片播放器應用程式。如要查看或按照完整的整合範例操作,請從 GitHub 下載 PodServingExample。
IMA DAI 總覽
如本指南所示,導入 IMA DAI 涉及四個主要 SDK 元件:
IMAAdDisplayContainer:容器物件,位於影片播放元素上方,並包含廣告 UI 元素。IMAAdsLoader:要求串流並處理串流要求回應物件觸發事件的物件。您只需要例項化一個廣告載入器,即可在應用程式的整個生命週期中重複使用。IMAStreamRequest:IMAPodVODStreamRequest或IMAPodStreamRequest。IMAStreamManager:處理動態廣告插播串流,以及與 DAI 後端互動的物件。串流管理工具也會處理追蹤連線偵測 (ping),並將串流和廣告事件轉送給發布商。
此外,如要播放廣告連播放送串流,請導入自訂 VTP 處理常式。這個自訂 VTP 處理常式會將串流 ID 傳送給影片技術合作夥伴 (VTP),以及傳回含有內容和拼接廣告的串流資訊清單所需的其他資訊。VTP 會提供如何導入自訂 VTP 處理常式的操作說明。
必要條件
開始前,請備妥下列項目:
- Xcode 13 以上版本
- IMA SDK 安裝方法:
- Swift Package Manager (建議)
- iOS 專用 IMA SDK 的下載副本
您也需要這些參數,才能向 IMA SDK 請求串流。
| 直播參數 | |
|---|---|
| 聯播網代碼 |
Ad Manager 360 帳戶的聯播網代碼。 |
| 自訂素材資源金鑰 |
自訂素材資源金鑰,用於在 Ad Manager 360 中識別廣告連播放送事件。這項資訊由資訊清單操控工具或第三方廣告連播放送合作夥伴建立。 |
| VOD 串流參數 | |
| 聯播網代碼 |
Ad Manager 360 帳戶的聯播網代碼。 |
建立新的 Xcode 專案
在 Xcode 中,使用 Objective-C 建立名為「PodServingExample」的新 iOS 專案。
在 Xcode 專案中加入 IMA DAI SDK
請選擇偏好的方法來安裝 IMA SDK。
建議做法:使用 Swift Package Manager 安裝 SDK
互動式媒體廣告 SDK 自 3.18.4 版起支援 Swift Package Manager。請按照下列步驟匯入 Swift 套件。
在 Xcode 中,依序前往「File」>「Add Packages」,安裝 IMA DAI SDK Swift Package。
在出現的提示詞框,搜尋「IMA DAI SDK Swift Package GitHub repository」:
https://github.com/googleads/swift-package-manager-google-interactive-media-ads-ios選取要使用的 IMA DAI SDK Swift Package 版本。如果是新專案,請選用「Up to Next Major Version」(升級至下一個主要版本)。
完成後,Xcode 會解析套件依附元件,並在背景下載。如要進一步瞭解如何新增套件依附元件,請參閱 Apple 的文章。
手動下載並安裝 SDK
如果不想使用 Swift Package Manager,請下載 IMA SDK 並手動新增至專案。
建立影片播放器
在主要檢視控制器中導入影片播放器,並在 UI 檢視中包裝 AV 播放器。IMA SDK 會使用 UI 檢視畫面顯示廣告 UI 元素。
Objective-C
Swift
初始化廣告載入器
將 IMA SDK 匯入檢視控制器,並採用 IMAAdsLoaderDelegate 和 IMAStreamManagerDelegate 通訊協定,處理廣告載入器和串流管理工具事件。
新增下列私人屬性,用於儲存重要的 IMA SDK 元件:
IMAAdsLoader- 在應用程式生命週期內管理串流要求。
IMAAdDisplayContainer- 處理廣告使用者介面元素的插入和管理作業。
IMAAVPlayerVideoDisplay:在 IMA SDK 和媒體播放器之間通訊,並處理定時中繼資料。IMAStreamManager:管理串流播放,並觸發廣告相關事件。
檢視畫面載入後,初始化廣告載入器、廣告顯示容器和影片顯示。
Objective-C
Swift
提出串流請求
使用者按下播放按鈕時,請提出新的串流請求。
請使用 IMAPodStreamRequest 類別進行直播。如果是 VOD 串流,請使用 IMAPodVODStreamRequest 類別。
串流請求需要串流參數,以及廣告顯示容器和影片顯示的參照。
Objective-C
Swift
監聽串流載入事件
IMAAdsLoader 類別會在串流要求初始化成功或失敗時,呼叫 IMAAdsLoaderDelegate 方法。
在 adsLoadedWithData 委派方法中,設定 IMAStreamManagerDelegate。將串流 ID 傳遞至自訂 VTP 處理常式,並擷取串流資訊清單網址。如果是直播,請將資訊清單網址載入影片顯示畫面,然後開始播放。如果是 VOD 串流,請將資訊清單網址傳遞至串流管理工具的 loadThirdPartyStream 方法。這個方法會向 Ad Manager 360 請求廣告事件資料,然後載入資訊清單網址並開始播放。
在 failedWithErrorData 委派方法中記錄錯誤。你也可以播放備用串流。請參閱「DAI 最佳做法」。
Objective-C
Swift
導入自訂 VTP 處理常式
自訂 VTP 處理常式會將檢視者的串流 ID 傳送給影片技術合作夥伴 (VTP),以及 VTP 傳回包含內容和拼接廣告的串流資訊清單所需的任何其他資訊。VTP 會提供具體操作說明,協助您導入自訂 VTP 處理常式。
舉例來說,VTP 可能包含含有巨集 [[STREAMID]] 的資訊清單範本網址。在這個範例中,處理常式會插入串流 ID 來取代巨集,並傳回產生的資訊清單網址。
Objective-C
Swift
監聽廣告事件
IMAStreamManager 會呼叫 IMAStreamManagerDelegate 方法,將串流事件和錯誤傳遞至應用程式。
在本範例中,請將主要廣告事件記錄到控制台:
Objective-C
Swift
清理 IMA DAI 素材資源
如要停止串流播放、停止所有廣告追蹤,以及釋出所有載入的串流素材資源,請呼叫 IMAStreamManager.destroy()。
執行應用程式。如果成功,請使用 IMA SDK 請求及播放 Google DAI 串流。如要瞭解更多進階 SDK 功能,請參閱左側側欄列出的其他指南,或 GitHub 上的範例。