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

Выберите платформу: 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);
}
...