Obsługa wielu żądań reklamy w ramach UserContext

Większość zastosowań pakietu IMA SDK wymaga zarządzania tylko jednym żądaniem reklamy naraz. Niektóre implementacje szczególnych przypadków, np. wstępny odczyt danych reklamy przed wybraniem filmu przez użytkownika, mogą wymagać wysłania wielu żądań jednocześnie. Żądania reklam są wysyłane asynchronicznie, dlatego powiązanie odpowiedniego menedżera reklam z odpowiednim kontekstem może wydawać się trudnym zadaniem.

Aby uprościć proces rozróżniania wielu menedżerów reklam, pakiet IMA SDK dla HTML5 umożliwia wydawcom przekazywanie dowolnej wartości lub obiektu do pola UserContext w dowolnym żądaniu reklamy. Wartość lub obiekt można następnie pobrać w obiekcie AdsManagerLoadedEvent za pomocą metody getUserRequestContext().

Przykład

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