Como 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 caso extremo, como o pré-carregamento de dados de anúncios antes que o usuário selecione um vídeo, podem exigir a realização de várias solicitações simultâneas. Como as solicitações de anúncios são feitas de modo assíncrono, garantir que o gerenciador de anúncios adequado seja associado ao contexto correto pode parecer uma tarefa assustadora.

Para simplificar o processo de diferenciação de vários gerenciadores de anúncios, com o SDK do IMA para HTML5, os editores podem transmitir qualquer valor ou objeto ao campo UserContext de qualquer solicitação de anúncio. Esse valor ou objeto pode, então, ser recuperado no manipulador AdsManagerLoadedEvent por meio do 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);
}
...