Cómo manejar varias solicitudes de anuncios con UserContext

La mayoría de los usos del SDK de IMA solo requieren administrar una sola solicitud de anuncio a la vez. Sin embargo, algunas implementaciones de casos extremos, como la carga previa de datos de anuncios antes de que el usuario seleccione un video, pueden requerir que se realicen 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 adecuado puede parecer una tarea abrumadora.

Para simplificar el proceso de diferenciación de varios administradores de anuncios, el SDK de IMA para HTML5 permite que los publicadores pasen cualquier valor o objeto al campo UserContext de cualquier solicitud de anuncio. Luego, este valor o objeto 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);
}
...