ज़्यादातर मामलों में, IMA SDK टूल का इस्तेमाल करने के लिए, एक बार में सिर्फ़ एक विज्ञापन अनुरोध को मैनेज करना पड़ता है. हालांकि, कुछ खास मामलों में, एक साथ कई अनुरोध करने पड़ सकते हैं. जैसे, उपयोगकर्ता के वीडियो चुनने से पहले विज्ञापन डेटा को प्रीलोड करना. विज्ञापन के अनुरोध एसिंक्रोनस तरीके से किए जाते हैं. इसलिए, यह पक्का करना मुश्किल हो सकता है कि सही विज्ञापन मैनेजर, सही कॉन्टेक्स्ट से जुड़ा हो.
एक से ज़्यादा विज्ञापन मैनेजरों के बीच अंतर करने की प्रोसेस को आसान बनाने के लिए, HTML5 के लिए IMA SDK टूल, पब्लिशर को किसी भी विज्ञापन अनुरोध के UserContext फ़ील्ड में कोई भी वैल्यू या ऑब्जेक्ट पास करने की अनुमति देता है. इसके बाद, AdsManagerLoadedEvent हैंडलर में, getUserRequestContext() तरीके का इस्तेमाल करके, इस वैल्यू या ऑब्जेक्ट को वापस पाया जा सकता है.
उदाहरण
...
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);
}
...