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

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