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

Большинство применений 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);
}
...