رسیدگی به درخواست های تبلیغاتی متعدد

پلتفرم مورد نظر را انتخاب کنید: HTML5 اندروید iOS tvOS

بیشتر کاربردهای IMA SDK فقط نیاز به مدیریت یک درخواست تبلیغ در هر زمان دارند. با این حال، برخی از پیاده‌سازی‌های موردی، مانند پیش‌بارگذاری داده‌های تبلیغ قبل از انتخاب ویدیو توسط کاربر، ممکن است نیاز به ایجاد چندین درخواست همزمان داشته باشند. از آنجایی که درخواست‌های تبلیغ به صورت غیرهمزمان انجام می‌شوند، اطمینان از اینکه مدیر تبلیغ مناسب با زمینه صحیح مرتبط است، می‌تواند یک کار دلهره‌آور به نظر برسد.

برای ساده‌سازی فرآیند تمایز قائل شدن بین چندین مدیر تبلیغات، IMA SDK برای tvOS به ناشران اجازه می‌دهد تا هر مقدار یا شیء را به فیلد UserContext هر درخواست تبلیغی ارسال کنند. این مقدار یا شیء سپس می‌تواند در تابع نماینده AdsLoader:AdsLoadedWithData ، از طریق ویژگی userContext شیء IMAAdsLoadedData بازیابی شود.

مثال

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

...