Obsługa wielu żądań reklam za pomocą UserContext

Większość przypadków użycia pakietu IMA SDK wymaga tylko zarządzania jednym żądaniem reklamy naraz. Jednak niektóre implementacje skrajne, takie jak wstępne wczytywanie danych reklam przed wybraniem filmu przez użytkownika, mogą wymagać wysyłania wielu żądań równoczesnych. Żądania reklamy są przesyłane asynchronicznie, więc dopilnowanie, aby odpowiedni menedżer reklam był powiązany z właściwym kontekstem, może wydawać się trudnym zadaniem.

Aby uprościć rozróżnianie 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. Tę wartość lub obiekt można następnie pobrać z modułu obsługi 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);
}
...