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