اکثر موارد استفاده از کیت توسعه نرمافزار IMA فقط به مدیریت یک درخواست آگهی در هر زمان نیاز دارند. بااینحال، برخیاز پیادهسازیهای موارد حاشیهای، مانند پیشبارگیری دادههای آگهی قبلاز اینکه کاربر ویدیویی را انتخاب کند، ممکن است نیاز به ایجاد چندین درخواست همزمان داشته باشد. ازآنجاییکه درخواستهای آگهی بهصورت ناهمزمان انجام میشوند، اطمینان از اینکه مدیر آگهی مناسب با زمینه صحیح مرتبط است میتواند کار دشواری بهنظر برسد.
برای ساده کردن فرایند متمایز کردن چندین مدیر آگهی، «کیت توسعه نرمافزار IMA برای HTML5» به ناشران اجازه میدهد هر مقدار یا شیئی را به فیلد 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);
}
...