טיפול בבקשות מרובות למודעות באמצעות UserContext

רוב השימושים ב-IMA SDK מחייבים ניהול של בקשה אחת למודעה בלבד בכל פעם. עם זאת, הטמעות מסוימות של מקרי קצה, כמו טעינה מראש של נתוני המודעה לפני שהמשתמש בוחר בסרטון, עשויות לחייב שליחה של מספר בקשות בו-זמנית. מכיוון שבקשות להצגת מודעות נשלחות באופן אסינכרוני, הוספה של מנהל המודעות המתאים להקשר הנכון יכולה להיראות משימה מרתיעה.

כדי לפשט את תהליך ההבחנה בין כמה מנהלי מודעות, 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);
}
...