使用 IMA SDK,即可輕鬆將多媒體廣告整合至網站和應用程式。IMA SDK 可向任何 符合 VAST 規定的廣告伺服器請求廣告,並在應用程式中管理廣告播放。使用 IMA 用戶端 SDK 時,您可以控管內容影片的播放,SDK 則會處理廣告播放。廣告會在應用程式內容影片播放器上方的獨立影片播放器中播放。
本指南說明如何將 IMA SDK 整合至簡易影片播放器應用程式。如要查看或跟著操作完整的整合範例,請從 GitHub 下載簡易範例。如果您對預先整合 SDK 的 HTML5 播放器感興趣,請參閱 Video.js 適用的 IMA SDK 外掛程式。
IMA 用戶端總覽
導入 IMA 用戶端需要四個主要 SDK 元件,本指南將說明這些元件:
AdDisplayContainer
: 容器物件,用於指定 IMA 要在何處算繪廣告 UI 元素及評估可視度,包括 Active View 和 Open Measurement。AdsLoader
: 這個物件會請求廣告,並處理廣告請求回應中的事件。您應該只例項化一個廣告載入器,這個載入器可在應用程式的整個生命週期中重複使用。AdsRequest
: 定義廣告請求的物件。廣告請求會指定 VAST 廣告代碼的網址,以及廣告尺寸等其他參數。AdsManager
: 這個物件包含廣告請求的回應、控制廣告播放,以及監聽 SDK 觸發的廣告事件。
必要條件
在您開始之前,您需要擁有下列項目:
- 三個空白檔案:
- index.html
- style.css
- ads.js
- 電腦上安裝的 Python,或用於測試的網路伺服器
1. 啟動開發伺服器
由於 IMA SDK 會使用與載入網頁相同的通訊協定載入依附元件,因此您需要使用網路伺服器測試應用程式。如要啟動本機開發伺服器,最簡單的方法是使用 Python 的內建伺服器。
- 透過指令列,從含有 index.html 檔案的目錄執行下列指令:
python -m http.server 8000
- 使用網路瀏覽器前往
http://localhost:8000/
您也可以使用任何其他網頁伺服器,例如 Apache HTTP 伺服器。
2. 建立簡單的影片播放器
首先,請修改 index.html,建立簡單的 HTML5 影片元素 (包含在包裝元素中),以及觸發播放的按鈕。下列範例會匯入 IMA SDK,並設定 AdDisplayContainer
容器元素。詳情請參閱
匯入 IMA SDK
和
建立廣告容器
步驟。
新增必要標記,載入 style.css 和 ads.js 檔案。接著,修改 styles.css,讓影片播放器可回應行動裝置。最後,在 ads.js 中宣告變數,並在點選播放按鈕時觸發影片播放。
請注意,ads.js 程式碼片段包含對 setUpIMA()
的呼叫,該呼叫定義於
Initialize the AdsLoader and make an ads request
部分。
3. 匯入 IMA SDK
接著,請在 index.html 中,於 ads.js
的標記前,使用指令碼標記新增 IMA 架構。
4. 建立廣告容器
在大多數瀏覽器中,IMA SDK 會使用專屬的廣告容器元素,顯示廣告和廣告相關的 UI 元素。這個容器的大小必須能從左上角疊加在影片元素上。這個容器中廣告的高度和寬度是由 adsManager
物件設定,因此您不需要手動設定這些值。
如要導入這個廣告容器元素,請先在 div
元素中建立新的 video-container
。接著,更新 CSS,將元素放置在 video-element
的左上角。最後,新增 createAdDisplayContainer()
函式,使用新的廣告容器
div
建立 AdDisplayContainer
物件。
5. 初始化 AdsLoader 並提出廣告請求
如要要求廣告,請建立 AdsLoader
執行個體。AdsLoader
建構函式會將 AdDisplayContainer
物件做為輸入內容,並可用於處理與指定廣告代碼網址相關聯的 AdsRequest
物件。本範例使用的廣告代碼包含 10 秒的片頭廣告。您可以使用 IMA 影片套件檢查器,測試這個或任何廣告代碼網址。
最佳做法是在整個網頁生命週期中,只維護一個 AdsLoader
例項。如要提出其他廣告請求,請建立新的 AdsRequest
物件,但重複使用相同的 AdsLoader
。詳情請參閱 IMA SDK 常見問題。
使用 AdsLoader.addEventListener
監聽並回應廣告載入和錯誤事件。
監聽下列事件:
ADS_MANAGER_LOADED
AD_ERROR
如要建立 onAdsManagerLoaded()
和 onAdError()
監聽器,請參閱下列範例:
6. 回應 AdsLoader 事件
AdsLoader
成功載入廣告時,AdsLoader
會發出 ADS_MANAGER_LOADED
事件。剖析傳遞至回呼的事件,初始化 AdsManager
物件。AdsManager
會載入個別廣告,這些廣告是由廣告代碼網址的回應所定義。
請務必處理載入程序期間發生的任何錯誤。如果廣告無法載入,請確保媒體播放作業會繼續進行,不會顯示廣告,以免干擾使用者觀看內容。
如要進一步瞭解 onAdsManagerLoaded()
函式中設定的接聽程式,請參閱下列小節:
處理 AdsManager
錯誤
為 AdsLoader
建立的錯誤處理常式,也可以做為 AdsManager
的錯誤處理常式。請參閱重複使用 onAdError()
函式的事件處理常式。
處理播放和暫停事件
AdsManager
準備好插入廣告時,會觸發 CONTENT_PAUSE_REQUESTED
事件。觸發基礎影片播放器的暫停動作,即可處理這項事件。同樣地,廣告播放完畢時,AdsManager
會觸發 CONTENT_RESUME_REQUESTED
事件。處理這項事件的方法是重新啟動基礎內容影片的播放作業。
如要瞭解 onContentPauseRequested()
和 onContentResumeRequested()
函式的定義,請參閱下列範例:
在非線性廣告期間處理內容播放
當廣告準備播放時,AdsManager
會暫停內容影片,但這項行為不適用於非線性廣告,因為這類廣告顯示時,內容會繼續播放。
如要支援非線性廣告,請監聽 AdsManager
,發出 LOADED
事件。檢查廣告是否為線性,如果不是,請在影片元素上繼續播放。
如需 onAdLoaded()
函式的定義,請參閱以下範例。
7. 在行動裝置上觸發「按一下即可暫停」功能
由於 AdContainer
會疊加在影片元素上,使用者無法直接與底層播放器互動。這可能會造成行動裝置使用者混淆,因為他們預期輕觸影片播放器即可暫停播放。為解決這個問題,IMA SDK 會將廣告重疊畫面中未經 IMA 處理的任何點擊,傳遞至 AdContainer
元素,以便處理。這不適用於非行動瀏覽器上的線性廣告,因為點擊廣告會開啟點閱後連結。
如要實作點按暫停功能,請在視窗載入監聽器中,加入名為 adContainerClick()
的點按處理常式函式。
8. 啟動 AdsManager
如要開始播放廣告,請啟動並開始 AdsManager
。為全面支援行動瀏覽器 (無法自動播放廣告),請透過使用者與網頁的互動 (例如點選播放按鈕) 觸發廣告播放。
9. 支援調整播放器大小
如要讓廣告動態調整大小,以配合影片播放器的大小,或配合螢幕方向的變化,請在回應視窗大小調整事件時呼叫 adsManager.resize()
。
大功告成!您現在可以使用 IMA SDK 請求及顯示廣告。如要瞭解更多進階 SDK 功能,請參閱其他指南或 GitHub 上的範例。