Как обрабатывать несколько запросов объявлений

Выберите платформу: HTML5 Android iOS tvOS

В большинстве случаев при использовании IMA SDK нужно управлять только одним запросом объявления. Однако в некоторых случаях, например при предварительной загрузке данных объявлений до того, как пользователь выберет видео, может потребоваться несколько одновременных запросов. Поскольку запросы объявлений выполняются асинхронно, может показаться, что связать нужный менеджер объявлений с правильным контекстом – непростая задача.

Чтобы упростить процесс различения нескольких менеджеров рекламы, IMA SDK для HTML5 позволяет издателям передавать любое значение или объект в поле UserContext любого запроса объявления. Это значение или объект можно получить в обработчике AdsManagerLoadedEvent с помощью метода getUserRequestContext().

Пример

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