Cómo manejar varias solicitudes de anuncios con UserContext

La mayoría de los usos del SDK de IMA solo requieren administrar una solicitud de anuncio a la vez. Sin embargo, algunas implementaciones de casos extremos, como la precarga de datos de anuncios antes de que el usuario seleccione un video, pueden requerir la realización de varias solicitudes simultáneas. Dado que las solicitudes de anuncios se realizan de forma asíncrona, asegurarse de que el administrador de anuncios adecuado esté asociado con el contexto correcto puede parecer una tarea abrumadora.

Para simplificar el proceso de diferenciación de varios administradores de anuncios, el SDK de IMA para HTML5 permite a los publicadores pasar cualquier objeto o valor al campo UserContext de cualquier solicitud de anuncio. Este objeto o valor se puede recuperar en el controlador AdsManagerLoadedEvent con el método getUserRequestContext().

Ejemplo

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