La maggior parte degli utilizzi dell'SDK IMA richiede la gestione di una sola richiesta di annuncio alla volta. Tuttavia, alcune implementazioni di casi limite, come il precaricamento dei dati degli annunci prima che l'utente selezioni un video, potrebbero richiedere l'esecuzione di più richieste simultanee. Poiché le richieste di annunci vengono effettuate in modo asincrono, assicurarsi che il gestore di annunci corretto sia associato al contesto appropriato può sembrare un'attività ardua.
Per semplificare il processo di differenziazione di più gestori di annunci, l'SDK IMA per HTML5 consente ai publisher di trasmettere qualsiasi valore o oggetto al campo UserContext di qualsiasi richiesta di annuncio. Questo valore o oggetto può essere recuperato nel gestore AdsManagerLoadedEvent utilizzando il metodo getUserRequestContext().
Esempio
...
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);
}
...