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