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

A maioria dos usos do SDK do IMA exige apenas o gerenciamento de uma única 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, pode parecer uma tarefa assustadora garantir que o ad manager adequado seja associado ao contexto correto.

Para simplificar o processo de diferenciação de vários ad managers, o SDK do IMA para HTML5 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 gerenciador 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);
}
...