معالجة طلبات إعلانات متعددة باستخدام UserContext

تتطلب معظم استخدامات أداة تطوير البرامج لإعلانات الوسائط التفاعلية إدارة طلب إعلان واحد في كل مرة. ومع ذلك، قد تتطلب بعض عمليات تنفيذ الحالات الهامشية، مثل التحميل المسبق لبيانات الإعلان قبل أن يختار المستخدم الفيديو، تقديم طلبات متزامنة متعددة. وبما أن طلبات الإعلان يتم إجراؤها بشكل غير متزامن، فإن ضمان ربط مدير الإعلانات المناسب بالسياق الصحيح قد يبدو مهمة شاقة.

لتبسيط عملية التمييز بين عدة مديري إعلانات، تتيح حزمة تطوير البرامج لإعلانات الوسائط التفاعلية بتنسيق 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);
}
...