لا تتطلّب معظم استخدامات حزمة تطوير البرامج لإعلانات الوسائط التفاعلية (IMA SDK) سوى إدارة طلب إعلان واحد في كل مرة. ومع ذلك، قد تتطلّب بعض عمليات التنفيذ في الحالات القصوى، مثل التحميل المُسبَق لبيانات الإعلانات قبل أن يختار المستخدم فيديو، تقديم طلبات متعدّدة متزامنة. بما أنّ طلبات الإعلانات يتم إجراؤها بشكل غير متزامن، قد يبدو ضمان ربط مدير الإعلانات المناسب بالسياق الصحيح مهمة شاقّة.
لتبسيط عملية التمييز بين عدّة مدراء إعلانات، تسمح حزمة تطوير برامج HTML5 لإعلانات الوسائط التفاعلية للناشرين بتمرير أي قيمة أو عنصر إلى حقل 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);
}
...