여러 광고 요청 처리

플랫폼 선택: HTML5 Android iOS tvOS

IMA SDK의 대부분의 사용 사례에서는 한 번에 하나의 광고 요청만 관리하면 됩니다. 하지만 사용자가 동영상을 선택하기 전에 광고 데이터를 미리 로드하는 것과 같은 일부 특이 사례 구현에서는 여러 동시 요청을 해야 할 수 있습니다. 광고 요청은 비동기적으로 이루어지므로 올바른 광고 관리자가 올바른 컨텍스트와 연결되도록 하는 것은 어려운 작업처럼 보일 수 있습니다.

여러 광고 관리자를 구분하는 프로세스를 간소화하기 위해 HTML5용 IMA SDK를 사용하면 게시자가 광고 요청의 UserContext 필드에 값이나 객체를 전달할 수 있습니다. 그런 다음 getUserRequestContext() 메서드를 사용하여 AdsManagerLoadedEvent 핸들러에서 이 값 또는 객체를 검색할 수 있습니다.

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