Google 互動式媒體廣告 SDK 常見問題


為什麼我無法取回所有格式的廣告?
測試廣告代碼已設為一律傳回有效要求的廣告。這是為了協助整合作業,並且讓您更輕鬆地測試播放器請求和顯示廣告的方式。然而,您的網站、帳戶或廣告單元不一定每次都會支援這種格式。如果測試代碼的整合作業可以順利執行,但代碼並非正常,可能的原因如下:
  • 您正在為環境提供不支援的影片格式。例如, 您只向 iOS 或 Android 放送 HTML5 廣告。
  • 如果您使用 Ad Manager,發布商 ID 目前可能並未指定任何廣告。此外,請確認您已在 Ad Manager 中核准相關的廣告和廣告素材。
  • 如果您使用的是 AdSense,網站或測試網頁的指定條件可能沒有任何有效廣告。最常見的原因,就是使用未檢索的私人網站。
  • 如果您使用 Ad Exchange 聯播網夥伴管理,且「descriptionURL」未設定或不在自有自營的網域管理清單中,就無法放送廣告。
  • 查看 Ad Exchange 影片廣告中定義的「最低千次曝光出價」門檻。千次曝光出價的高可能會讓供應率很低。如要修正這個問題,請嘗試移除最低千次曝光出價,或從廣告請求中移除廣告單元參數 (即 slotname),看看這是否為供應率。
良好的descriptionUrl是什麼樣子?
為最有效,descriptionUrl 指向的網頁內容不應是一系列字詞或詞組,而是構成 1 到 3 個段落,實際描述內容以及您在提供內容時扮演的角色。 過去成功的一種方法,就是將 descriptionUrl 網頁內容與預先定義的區塊動態拼接在一起。例如,幾個有關內容的說明、針對您網站的產品提供幾個句子,再提供與各個 AdSense 頻道相關的預先定義摘要 (例如「娛樂」或「體育」)。因此,每段內容都有一個合理的獨特 descriptionUrl,可以同時提供一般資訊 (例如類型描述元) 和特定資訊 (直接提供內容)。

這個中繼資料 HTML 應該要很簡潔,例如:

<html>
  <head>
    <title>Domain.com - Your tag line here!</title>
  </head>
  <body>
    <h1>Descriptions</h1>
    <h2>About this Content</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...</p>
    <h2>About Domain.com</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...</p>
  </body>
</html>
  
為什麼我收到「廣告回應未包含有效的廣告類型」錯誤訊息?
這個錯誤通常之所以發生,是因為指定時間範圍內的某個 publisherId 都沒有任何廣告。在廣告活動開始或結束的幾天左右,請確認您要指定的廣告尚未過期,且廣告指定條件也正確無誤。 只要利用測試 publisherId 正確請求、接收和算繪廣告,您就能確保系統能在廣告放送時,透過即時 publisherId 正確處理這些廣告。
是否有 Ad Manager 影片廣告代碼可供測試?
如需範例標記,請參閱範例標記頁面。
我應該將 adSlotWidthadSlotHeight 設為與 Ad Manager 廣告代碼中 sz 相同的值嗎?
不一定。adSlotWidthadSlotHeight 必須設為您想讓廣告供應的播放器或區域的寬度/高度。AdSense 會使用這些廣告來判斷該空間中的廣告。Ad Manager 廣告代碼中的 sz 鍵/值組合是指定參數,不一定會影響已放送的廣告素材 (詳情請參閱下文)。
示範的廣告代碼看起來很棒,但是當我切換成我的廣告代碼時,卻沒有出現廣告。
確認流量已投放至您請求的廣告代碼。 最簡單的方法是觀看 HTTP 流量。如果 HTML 錨定區塊傳回 1x1 像素灰色.gif 圖片,您必須在 Ad Manager 中檢查指定目標。
我想對同一個代碼發出多次廣告請求,但只有第一次請求才會收到廣告。該如何解決這個問題?
如要提出多個廣告要求,您必須通知廣告伺服器,這些要求是正常的請求,而非意外重複。SDK 會透過以下兩項快速 API 呼叫來為您完成這項作業:
  1. AdsManager 執行個體上呼叫 destroy()。如此一來,當您呼叫以下 contentComplete() 時,這會禁止播放任何片尾廣告。下次發出要求時,您會收到新的 AdsManager
  2. AdsLoader 執行個體上呼叫 contentComplete()。這會重設 SDK,因此新的廣告請求看起來不像前次。
在完成上述兩項呼叫後,您可以在 AdsLoader 執行個體上呼叫 requestAds(),以取得新影片的另一組廣告。
如何使用 IMA SDK 請求重疊廣告和全版位 AdSense 廣告?

如果要使用 SDK 請求 AdSense 廣告,您必須先取得 AdSense 廣告代碼。詳情請參閱 AdSense 影片廣告網頁。取得廣告代碼後,您必須按照下列步驟進行重疊廣告或全版位廣告請求:

重疊廣告
  1. AdsRequest 中,將 ViewModes 設為 NORMAL
  2. 在您的廣告代碼中加入 overlay=1 參數。
全版位廣告
  1. AdsRequest 中,將 ViewModes 設為 FULLSCREEN
  2. 在您的廣告代碼中加入 overlay=0 參數。
我按下廣告後,收到「無效的到達網址」錯誤訊息。原因可能為何?
造成這項錯誤最常見的原因是網址逸出不正確的到達網址。如果您看到這則錯誤訊息,請檢查並確認到達網址在 VAST 回應中正確逸出。
為什麼出現「VAST 文件空白」的錯誤訊息?
當廣告代碼傳回空白的 VAST 文件,代表廣告未正確放送時,就會發生這個錯誤。您可以洽詢客戶經理或廣告伺服器代表,以瞭解廣告代碼無法運作的原因。
我可以變更「略過廣告」方塊或其他 UI 元素的大小/文字嗎?
IMA SDK 不支援變更 UI 元素的版面配置、大小或內容。 如要進一步瞭解 UI 元素,請參閱 AdsManager.uiElements
HTML5 SDK 是否支援原生影片控制項?
不可以,HTML5 SDK 不支援原生控制項。
我在 HTML5 實作中看到「無法執行『HTMLMediaElement』的 API:只能由使用者手勢啟動 API」。該如何解決這個問題?
在行動裝置上,您必須呼叫使用者動作 (例如輕觸) 的 adDisplayContainer.initialize()。如果您看到這則錯誤訊息,您很有可能在非由使用者啟動的情境下呼叫。請注意,這必須是使用者動作的「直接」結果。舉例來說,如果您回應影片並回應了「輕觸」事件,然後使用影片播放器的「播放」事件呼叫 initialize(),SDK 就會傳回這個錯誤。您必須呼叫 initialize() 做為輕觸事件本身的結果。
如何在鍵盤上處理廣告點擊?
如果您使用播放器的鍵盤控制項,可能會發現在點擊 adDisplayContainer 後按下這些按鈕,它們將無法運作。這是因為在使用者按下廣告後,鍵盤焦點會切換為 IMA iframe。如要讓鍵盤焦點放在內容播放器上,請使用 CLICK 事件將鍵盤焦點移回所需的容器。詳情請參閱下列程式碼片段:
adsManager.addEventListener(
      google.ima.AdEvent.Type.CLICK,
      function(){
        window.focus();
        // Or another method to return focus to the desired container.
      });