Mehrere Anzeigenanfragen mit UserContext verarbeiten

In den meisten Fällen muss nur eine einzige Anzeigenanfrage gleichzeitig verwaltet werden. Bei Grenzfallimplementierungen wie dem Vorabladen von Anzeigendaten, bevor der Nutzer ein Video auswählt, können jedoch mehrere Anfragen gleichzeitig erforderlich sein. Da Anzeigenanfragen asynchron erfolgen, kann es eine schwierige Aufgabe sein, sicherzustellen, dass der richtige Ad Manager mit dem richtigen Kontext verknüpft wird.

Um die Unterscheidung mehrerer Ad Manager zu vereinfachen, können Publisher mit dem IMA SDK für HTML5 beliebige Werte oder Objekte an das Feld UserContext einer Anzeigenanfrage übergeben. Dieser Wert bzw. dieses Objekt kann dann im Handler AdsManagerLoadedEvent mithilfe der Methode getUserRequestContext() abgerufen werden.

Beispiel

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