UserContext ile birden fazla reklam isteğini yönetme

IMA SDK'nın çoğu kullanımı, bir kerede yalnızca tek bir reklam isteğinin yönetilmesini gerektirir. Ancak kullanıcı bir video seçmeden önce reklam verilerini önceden yükleme gibi bazı uç durum uygulamaları, birden fazla eşzamanlı istek yapılmasını gerektirebilir. Reklam istekleri eşzamanlı olarak gönderilmediğinden, doğru reklam yöneticisinin doğru bağlamla ilişkilendirilmesini sağlamak göz korkutucu bir görev gibi görünebilir.

iOS için IMA SDK, birden çok 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ğer veya nesne geçirmesine 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)
}

...