Birden fazla reklam isteğini işleme

Platform seçin: HTML5 Android iOS tvOS

IMA SDK'nın çoğu kullanımında tek seferde yalnızca tek bir reklam isteğinin yönetilmesi gerekir. Ancak, kullanıcının bir video seçmesinden önce reklam verilerinin önceden yüklenmesi gibi bazı uç durumlarda birden fazla eşzamanlı istekte bulunulması gerekebilir. Reklam istekleri eşzamansız olarak yapıldığından, doğru reklam yöneticisinin doğru bağlamla ilişkilendirilmesini sağlamak zorlu bir görev gibi görünebilir.

tvOS için IMA SDK, birden fazla reklam yöneticisini ayırt etme sürecini basitleştirmek amacıyla yayıncıların herhangi bir reklam isteğinin UserContext alanına herhangi bir değeri veya nesneyi iletmesine olanak tanır. Bu değer veya nesne daha sonra AdsLoader:AdsLoadedWithData temsilci işlevinde IMAAdsLoadedData nesnesinin userContext özelliği aracılığıyla alınabilir.

Örnek

...
  adsLoader = IMAAdsLoader(settings: nil)
  adsLoader.delegate = self

  let userContextA = {id: "Request A", element: videoElementA}
  let userContextB = {id: "Request B", element: videoElementB}
  let requestA = IMAAdsRequest(
        adTagUrl: ViewController.AdTagURLString,
        adDisplayContainer: adDisplayContainer,
        contentPlayhead: contentPlayhead,
        userContext: userContextA)
  let requestB = IMAAdsRequest(
        adTagUrl: ViewController.AdTagURLString,
        adDisplayContainer: adDisplayContainer,
        contentPlayhead: contentPlayhead,
        userContext: userContextB)
  adsLoader.requestAds(with: requestA)
  adsLoader.requestAds(with: requestB)

...

// MARK: - IMAAdsLoaderDelegate

func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
  let userContext = adsLoadedData.userContext
  print("Loaded ads for ID: " + userContext.id)
  adsManager = adsLoadedData.adsManager
  adsManager.initialize(with: nil)
}

func adsLoader(_ loader: IMAAdsLoader!, failedWith adErrorData: IMAAdLoadingErrorData!) {
  let userContext = adsLoadingErrorData.userContext
  print("Error loading ads for ID: " + userContext.id)
}

...