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 回應中正確逸出。
在 Android 和 iOS SDK 中,是否有辦法讓整個影片廣告點擊可點擊?
就影片廣告完整點擊追蹤而言,如果觀眾想收看行動影片,標準影片體驗就會是暫停播放影片或開啟播放器控制項。為避免使用者在不小心需要存取播放器的控制選項時不小心點擊廣告,請使用 [瞭解詳情] 按鈕,讓使用者點選廣告並進一步瞭解廣告宣傳的產品。
為什麼出現「VAST 文件空白」的錯誤訊息?
當廣告代碼傳回空白的 VAST 文件,代表廣告未正確放送時,就會發生這個錯誤。您可以洽詢客戶經理或廣告伺服器代表,以瞭解廣告代碼無法運作的原因。
我可以變更「略過廣告」方塊或其他 UI 元素的大小/文字嗎?
IMA SDK 不支援變更 UI 元素的版面配置、大小或內容。 如要進一步瞭解 UI 元素,請參閱 AdsManager.uiElements
為什麼執行階段沒有顯示「沒有虛擬方法」的錯誤?

與上述內容類似的錯誤訊息,是因為使用的是舊版 Google Play 服務,而且不含廣告 ID。

No virtual method
getInfo()Lcom/google/android/gms/ads/identifier/AdvertisingIdClient$Info; in
class Lcom/google/android/gms/ads/identifier/AdvertisingIdClient; or its
super classes (declaration of 'com.google.android.gms.ads.identifier.AdvertisingIdClient'

升級至 4.0 以上版本 (但最好是最新版本) 即可解決這個問題。

我可以使用多個執行緒來初始化和操控 UI 嗎?
否。使用者介面的所有初始化和操控作業都必須在主執行緒上完成。在 Android 中,UI 物件不會確保執行緒安全。詳情請參閱 Threads