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