您可能會想將網頁內 HTML 廣告版位與影片建立關聯 重疊廣告版位。而這些關聯廣告版位之間的關係 做為 master-Companion 關係。
除了請求影片和重疊主廣告,您還可以用 IMA SDK 顯示 隨播廣告 HTML 廣告。這些廣告會顯示在 HTML 中 環境。
使用隨播廣告
如要使用隨播廣告,請執行下列步驟:
1. 預訂隨播廣告
您必須先預訂要與 主廣告。隨播廣告可以是 在 Ad Manager 中投放每則主廣告最多可放送六則隨播廣告。 由一位買方控管網頁上的所有廣告時 也稱為 路障型廣告。
2. 請求隨播廣告
根據預設,系統會為每個廣告請求啟用隨播廣告。
3. 顯示隨播廣告
顯示隨播廣告的方法有兩種:
- 自動使用 Google 發布商廣告代碼 (GPT)
如果你使用 GPT 導入隨播廣告, 只要在其中宣告隨播廣告版位,就會自動顯示 而且這些廣告已經向 API 註冊 (也就是 div JavaScript 和 HTML 中的 ID 必須相符)。使用 GPT 的部分好處 是:- 可感知隨播廣告版位
- 發布商聯播網的隨播廣告候補 (如果 VAST) 回應中包含的隨播廣告數量少於 HTML 網頁上已定義的版位數量
- 如果缺少影片廣告,則以隨播廣告自動填入
- 適用於隨點即播影片播放器的預先載入隨播廣告版位
- 自動顯示隨播廣告,包括
HTMLResource
和iFrameResource
- 手動使用 Ad API。
搭配 Google 發布商廣告代碼使用隨播廣告
Google 發布商廣告代碼 (GPT) 會自動顯示 HTML 隨播廣告。我們建議大多數發布商使用 GPT。 如果系統在主網頁上載入 GPT,HTML5 SDK 就能辨識 GPT 版位 (不在 IFrame 中)。您可以參閱 GPT 文件中的 IMA SDK。
如果您在 IFrame 內代管 HTML5 SDK
如果您同時符合以下兩項條件,就必須加入額外的 Proxy 指令碼,才能正確顯示 GPT 隨播廣告:
- 在 IFrame 中載入 HTML5 SDK。
- 在主網頁上載入 GPT (在 IFrame 之外)。
如要在這種情況下顯示隨播廣告,您必須載入 載入 SDK 前的 GPT Proxy 指令碼:
<script src="https://imasdk.googleapis.com/js/sdkloader/gpt_proxy.js"></script>
重要注意事項:
- 載入 SDK 的 IFrame 內不應載入任何 GPT。
- GPT 必須在頂端載入,不得在其他 IFrame 中載入。
- Proxy 指令碼必須在與 GPT 相同的頁框中 (也就是主頁面) 載入。
在 HTML 中宣告隨播廣告版位
本節說明如何使用 GPT 及 也提供不同情境的程式碼範例如果是 HTML5 SDK, 您必須在 HTML 網頁中加入某些 JavaScript,並宣告隨播廣告 版位。
注意:在以下每個範例中,請務必
請在記錄中提供有效的 network
和 unit-path
googletag.defineSlot
方法呼叫 (位於 <head> 或
<body>便可根據您使用的實際範例而定)。
範例 1:基本廣告版位實作
下列程式碼範例說明如何在您的 HTML 網頁中加入 gpt.js
檔案,
宣告廣告版位宣告的廣告版位為 728x90 像素。GPT 會嘗試將
符合此大小的 VAST 回應中傳回的任何隨播廣告。廣告版位
googletag.display()
函式就能在呼叫
該網頁。由於這些版位是隨播廣告版位,因此廣告不會立即顯示。而是
和主要影片廣告旁顯示。
以下是實作範例:
<html> <head> <!-- Uncomment the line below for the HTML5 SDK caveat proxy --> <!-- <script src="https://imasdk.googleapis.com/js/sdkloader/gpt_proxy.js"></script>--> <!-- HEAD part --> <!-- Initialize the tagging library --> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <!-- Register your companion slots --> <script> window.googletag = window.googletag || { cmd: [] }; googletag.cmd.push(function() { // Supply YOUR_NETWORK and YOUR_UNIT_PATH. googletag.defineSlot('/YOUR_NETWORK/YOUR_UNIT_PATH', [728, 90], 'companionDiv') .addService(googletag.companionAds()) .addService(googletag.pubads()); googletag.companionAds().setRefreshUnfilledSlots(true); googletag.pubads().enableVideoAds(); googletag.enableServices(); }); </script> </head> <body> <!-- BODY part --> <!-- Declare a div where you want the companion to appear. Use googletag.display() to make sure the ad is displayed. --> <div id="companionDiv" style="width:728px; height:90px;"> <script> // Using the command queue to enable asynchronous loading. // The unit does not actually display now - it displays when // the video player is displaying the ads. googletag.cmd.push(function() { googletag.display('companionDiv'); }); </script> </div> <body> </html>
立即試用
請參閱下列程式碼範例,瞭解可正常運作的實作內容。
範例 2:動態廣告版位實作
有時候,在直到結束之前 螢幕上的內容以下程式碼範例說明如何定義廣告版位 顯示廣告的時段這個例子與 範例 1,但註冊了廣告 刊登的版位
注意:當影片播放器想要顯示廣告時,會要求 版位。請務必在播放器顯示廣告前定義這些版位。
<html> <head> <!-- Uncomment the line below for the HTML5 SDK caveat proxy --> <!-- <script src="https://imasdk.googleapis.com/js/sdkloader/gpt_proxy.js"></script> --> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <!-- HEAD part --> <!-- Initialize the tagging library --> <script> window.googletag = window.googletag || { cmd: [] }; googletag.cmd.push(function() { googletag.companionAds().setRefreshUnfilledSlots(true); googletag.pubads().enableVideoAds(); googletag.enableServices(); }); </script> </head> <body> <!-- BODY part --> <!-- Declare a div where you want the companion to appear. Use googletag.display() to make sure the ad is displayed. --> <div id="companionDiv" style="width:728px; height:90px;"> <script> // Using the command queue to enable asynchronous loading. // The unit does not actually display now - it displays when // the video player is displaying the ads. googletag.cmd.push(function() { // Supply YOUR_NETWORK and YOUR_UNIT_PATH. googletag.defineSlot('/YOUR_NETWORK/YOUR_UNIT_PATH', [728, 90], 'companionDiv') .addService(googletag.companionAds()) .addService(googletag.pubads()); googletag.display('companionDiv'); }); </script> </div> <body> </html>
立即試用
以下是可正常運作的實作程式碼。
範例 3:預先載入的廣告版位
在某些情況下,您可能需要在廣告版位中 再依請求顯示隨播廣告。隨播廣告通常會隨著廣告請求一起請求 影片廣告。這個要求可能會在網頁之後發生 載入。例如,隨播廣告只能在使用者之後載入 隨點即播影片。在這種情況下,您必須能夠 一般廣告來填補廣告版位。目的地: 符合這個使用情境,您可以在 隨播廣告版位。確認網頁廣告已指定至隨播廣告版位。 指定隨播廣告版位的方式與指定 標準網頁廣告版位
注意:下列程式碼範例完全相同 。在本 此時,請提供預先載入廣告的廣告聯播網和單元路徑 而不是影片廣告單元
以下為剛才說明的執行方式範例:
<html> <head> ... <!-- Register your companion slots --> <script> window.googletag = window.googletag || { cmd: [] }; googletag.cmd.push(function() { // Supply YOUR_PRELOAD_NETWORK and YOUR_PRELOAD_UNIT_PATH. googletag.defineSlot('/YOUR_PRELOAD_NETWORK/YOUR_PRELOAD_UNIT_PATH', [728, 90], 'companionDiv') .addService(googletag.companionAds()) .addService(googletag.pubads()); googletag.companionAds().setRefreshUnfilledSlots(true); googletag.pubads().enableVideoAds(); googletag.enableServices(); }); </script> </head> ... </html>
立即試用
請參閱下列程式碼,瞭解實作中的實作方式。
搭配 Ad API 使用隨播廣告
本節說明如何使用 Ad
API 顯示隨播廣告。
顯示隨播廣告
如要顯示隨播廣告,請先取得 Ad
物件的參照
透過 AdsManager
分派的任何 AdEvent
事件。
建議您使用 AdEvent.STARTED
事件,如下所示
隨播廣告應該會與主廣告在同一時間顯示。
接下來,請使用這個 Ad
物件呼叫 getCompanionAds()
,
取得 CompanionAd
物件的陣列。您可以選擇
指定 CompanionAdSelectionSettings
設定廣告素材類型的隨播廣告篩選器、近乎相符的百分比、
資源類型和大小條件如要進一步瞭解這些設定,請參見
HTML5 API 說明文件。
getCompanionAds
傳回的 CompanionAd
物件
現在可以按照以下指南,在網頁上顯示隨播廣告:
- 建立必要大小的隨播廣告版位
<div>
網頁。 - 在
STARTED 事件後,請擷取
Ad
物件,方法是呼叫getAd()
。 - 使用
getCompanionAds()
來取得隨播廣告清單 必須與隨播廣告版位大小CompanionAdSelectionSettings
,且具有相同序號 做為主廣告素材缺少序列屬性的廣告素材為 視為序號為 0。 - 從
CompanionAd
例項並設為該廣告版位的內部 HTMl<div>
。
程式碼範例
<!--Set a companion ad div in html page. --> <div id="companion-ad-300-250" width="300" height="250"></div> <script> // Listen to the STARTED event. adsManager.addEventListener( google.ima.AdEvent.Type.STARTED, onAdEvent); function onAdEvent(adEvent) { switch (adEvent.type) { case google.ima.AdEvent.Type.STARTED: // Get the ad from the event. var ad = adEvent.getAd(); var selectionCriteria = new google.ima.CompanionAdSelectionSettings(); selectionCriteria.resourceType = google.ima.CompanionAdSelectionSettings.ResourceType.STATIC; selectionCriteria.creativeType = google.ima.CompanionAdSelectionSettings.CreativeType.IMAGE; selectionCriteria.sizeCriteria = google.ima.CompanionAdSelectionSettings.SizeCriteria.IGNORE; // Get a list of companion ads for an ad slot size and CompanionAdSelectionSettings var companionAds = ad.getCompanionAds(300, 250, selectionCriteria); var companionAd = companionAds[0]; // Get HTML content from the companion ad. var content = companionAd.getContent(); // Write the content to the companion ad slot. var div = document.getElementById('companion-ad-300-250'); div.innerHTML = content; break; } } </script>
顯示自動調整隨播廣告
IMA 現在支援自動調整隨播廣告。這些隨播廣告可調整大小
以符合廣告版位大小會填滿上層 div 寬度 100%,然後調整其大小
配合隨播廣告的內容調整高度。使用 Fluid
隨播廣告大小進行設定
在 Ad Manager 中建立新委刊項請參閱下圖,瞭解該值於何處設定。
GPT 自動調整隨播廣告
使用 GPT 隨播廣告時,您可以藉由更新
defineSlot()
方法的第二個參數。
<!-- Register your companion slots --> <script> googletag.cmd.push(function() { // Supply YOUR_NETWORK and YOUR_UNIT_PATH. googletag.defineSlot('/YOUR_NETWORK/YOUR_UNIT_PATH', ['fluid'], 'companionDiv') .addService(googletag.companionAds()) .addService(googletag.pubads()); googletag.companionAds().setRefreshUnfilledSlots(true); googletag.pubads().enableVideoAds(); googletag.enableServices(); }); </script>
Ad API 自動調整隨播廣告
使用 Ad API 放送隨播廣告時,您可以藉由更新
google.ima.CompanionAdSelectionSettings.sizeCriteria
設為 SELECT_FLUID
值。
<script> ... // Get the ad from the event. var ad = adEvent.getAd(); var selectionCriteria = new google.ima.CompanionAdSelectionSettings(); selectionCriteria.resourceType = google.ima.CompanionAdSelectionSettings.ResourceType.STATIC; selectionCriteria.creativeType = google.ima.CompanionAdSelectionSettings.CreativeType.IMAGE; selectionCriteria.sizeCriteria = google.ima.CompanionAdSelectionSettings.SizeCriteria.SELECT_FLUID; // Get a list of companion ads for an ad slot size and CompanionAdSelectionSettings // Note: Companion width and height are irrelevant when fluid size is used. var companionAds = ad.getCompanionAds(0, 0, selectionCriteria); var companionAd = companionAds[0]; ... } } </script>