Processar várias solicitações de anúncios

SDK do IMA para HTML5.

A maioria dos usos do SDK do IMA exige apenas o gerenciamento de uma solicitação de anúncio por vez. No entanto, algumas implementações de casos extremos, como o pré-carregamento de dados de anúncios antes que o usuário selecione um vídeo, podem exigir várias solicitações simultâneas. Como as solicitações de anúncio são feitas de forma assíncrona, garantir que o Ad Manager adequado esteja associado ao contexto correto pode parecer uma tarefa difícil.

Para simplificar o processo de diferenciação de vários gerenciadores de anúncios, o SDK HTML5 do IMA permite que os editores transmitam qualquer valor ou objeto para o campo UserContext de qualquer solicitação de anúncio. Esse valor ou objeto pode ser recuperado no manipulador AdsManagerLoadedEvent usando o método getUserRequestContext().

Exemplo

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