การจัดการคําขอโฆษณาหลายรายการด้วย UserContext

การใช้งาน IMA SDK ส่วนใหญ่ต้องการการจัดการคำขอโฆษณาครั้งละ 1 รายการเท่านั้น อย่างไรก็ตาม การใช้งานบางกรณี เช่น การโหลดข้อมูลโฆษณาล่วงหน้าก่อนที่ผู้ใช้จะเลือกวิดีโอ อาจต้องมีการส่งคำขอหลายรายการพร้อมกัน เนื่องจากคำขอโฆษณาเกิดขึ้นแบบไม่พร้อมกัน การตรวจสอบให้ Ad Manager ที่เหมาะสมเชื่อมโยงกับบริบทที่ถูกต้องจึงอาจดูเป็นงานที่ท้าทาย

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);
}
...