• 這個頁面中的內容
  • 範例

使用 UserContext 處理多個廣告請求

  • 這個頁面中的內容
  • 範例

大多數 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);
}
...