IMA SDK-এর বেশিরভাগ ব্যবহারের ক্ষেত্রে, একবারে শুধুমাত্র একটি বিজ্ঞাপনের অনুরোধ ম্যানেজ করতে হয়। তবে, কিছু এজ কেস প্রয়োগের ক্ষেত্রে, যেমন ব্যবহারকারী কোনও ভিডিও বেছে নেওয়ার আগে বিজ্ঞাপনের ডেটা প্রি-লোড করা, একাধিক সমকালীন অনুরোধ করার প্রয়োজন হতে পারে। যেহেতু বিজ্ঞাপনের অনুরোধ অ্যাসিঙ্ক্রোনাসভাবে করা হয়, তাই সঠিক প্রসঙ্গের সাথে সঠিক Ad Manager যুক্ত আছে কিনা তা নিশ্চিত করা একটি কঠিন কাজ বলে মনে হতে পারে।
একাধিক বিজ্ঞাপন ম্যানেজারকে আলাদা করার প্রসেস সহজ করতে, HTML5-এর জন্য IMA SDK প্রকাশকদের যেকোনও বিজ্ঞাপন অনুরোধের UserContext ফিল্ডে যেকোনও ভ্যালু বা অবজেক্ট পাস করার অনুমতি দেয়। তারপরে getUserRequestContext() পদ্ধতি ব্যবহার করে AdsManagerLoadedEvent হ্যান্ডলার থেকে এই ভ্যালু বা অবজেক্ট রিট্রিভ করা যেতে পারে।
উদাহরণ
...
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);
}
...