處理多個廣告請求

選取平台: HTML5 Android iOS tvOS

大多數 IMA SDK 用途一次只需要管理單一廣告請求。不過,在某些特殊情況下,例如在使用者選取影片前預先載入廣告資料,可能需要同時發出多個請求。由於廣告請求是以非同步方式發出,因此確保適當的廣告管理工具與正確的內容建立關聯,似乎是艱鉅的任務。

為簡化區分多個廣告管理工具的程序,發布商可透過 HTML5 適用的 IMA SDK,將任何值或物件傳遞至任何廣告請求的 UserContext 欄位。接著,您可以使用 getUserRequestContext() 方法,在 AdsManagerLoadedEvent 處理常式中擷取這個值或物件。

範例

...
adsLoader.addEventListener(
      google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,
      onAdsManagerLoaded,
      false);
adsLoader.addEventListener(
      google.ima.AdErrorEvent.Type.AD_ERROR,
      onAdsManagerError,
      false);
const contextA = {id: "Request A", element: videoElementA};
const contextB = {id: "Request B", element: videoElementB}
adsLoader.requestAds(adsRequestA, contextA);
adsLoader.requestAds(adsRequestB, contextB);
...

function onAdsManagerLoaded(adsManagerLoadedEvent) {
  const context = adsManagerLoadedEvent.getUserRequestContext();
  adsManager = adsManagerLoadedEvent.getAdsManager(context.element);
  console.log("Successfully loaded ID: " + context.id);
}

function onAdsManagerError(adsManagerErrorEvent) {
  const context = adsManagerErrorEvent.getUserRequestContext();
  console.log("Error with AdRequest ID: " + context.id);
}
...