ברוב השימושים ב-IMA SDK צריך לנהל רק בקשה אחת להצגת מודעה בכל פעם. עם זאת, יש הטמעות קיצוניות מסוימות, כמו טעינת נתוני מודעות מראש לפני שהמשתמש בוחר סרטון, שעשויות לחייב שליחת כמה בקשות בו-זמנית. מאחר שבקשות להצגת מודעות מתבצעות באופן אסינכרוני, יכול להיות שנדמה לכם שאי אפשר לוודא שהמנהל המתאים של מודעות משויך להקשר הנכון.
כדי לפשט את התהליך של הבחנה בין מספר מנהלי מודעות, 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);
}
...