W większości przypadków użycia pakietu IMA SDK wystarczy zarządzać tylko 1 żądaniem reklamy naraz. Niektóre przypadki użycia, np. wstępne wczytywanie danych reklamy przed wybraniem filmu przez użytkownika, mogą jednak wymagać wysyłania wielu żądań jednocześnie. Żądania reklam są wysyłane asynchronicznie, więc zapewnienie, że odpowiedni menedżer reklam jest powiązany z właściwym kontekstem, może wydawać się trudnym zadaniem.
Aby uprościć proces rozróżniania wielu usług zarządzania reklamami, pakiet IMA SDK dla HTML5 umożliwia wydawcom przekazywanie dowolnej wartości lub obiektu do pola UserContext w dowolnym żądaniu reklamy. Tę wartość lub ten obiekt można następnie pobrać w obsłudze zdarzenia AdsManagerLoadedEvent za pomocą metody getUserRequestContext().
Przykład
...
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);
}
...