رسیدگی به درخواست های تبلیغاتی متعدد
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
اکثر موارد استفاده از 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)
}
...
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eThe IMA SDK for tvOS allows handling multiple concurrent ad requests by associating a unique context with each request.\u003c/p\u003e\n"],["\u003cp\u003ePublishers can provide a custom value or object using the \u003ccode\u003euserContext\u003c/code\u003e field during ad request creation.\u003c/p\u003e\n"],["\u003cp\u003eThis \u003ccode\u003euserContext\u003c/code\u003e can be retrieved in the \u003ccode\u003eadsLoader:adsLoadedWithData\u003c/code\u003e delegate method, enabling differentiation of responses.\u003c/p\u003e\n"],["\u003cp\u003eThis functionality simplifies managing ad responses in scenarios involving preloading ad data or simultaneous ad requests for different content.\u003c/p\u003e\n"]]],[],null,["Most uses of the IMA SDK only require managing a single ad request at a time. However some edge case implementations, such as preloading ad data before the user selects a video, may require making multiple concurrent requests. Since ad requests are made asynchronously, ensuring the proper ad manager is associated with the correct context can seem to be a daunting task.\n\nTo simplify the process of differentiating multiple ad managers, the IMA SDK for tvOS allows publishers to pass in any value or object to the [UserContext](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#-initwithadtagurl:addisplaycontainer:avplayervideodisplay:pictureinpictureproxy:usercontext:) field of any ad request. This value or object can then be retrieved in the [AdsLoader:AdsLoadedWithData](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAdsLoaderDelegate#-adsloader:adsloadedwithdata:) delegate function, via the [IMAAdsLoadedData](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsLoadedData) object's [userContext](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsLoadedData#usercontext) attribute.\n\nExample \n\n ...\n adsLoader = IMAAdsLoader(settings: nil)\n adsLoader.delegate = self\n\n let userContextA = {id: \"Request A\", element: videoElementA}\n let userContextB = {id: \"Request B\", element: videoElementB}\n let requestA = IMAAdsRequest(\n adTagUrl: ViewController.AdTagURLString,\n adDisplayContainer: adDisplayContainer,\n contentPlayhead: contentPlayhead,\n userContext: userContextA)\n let requestB = IMAAdsRequest(\n adTagUrl: ViewController.AdTagURLString,\n adDisplayContainer: adDisplayContainer,\n contentPlayhead: contentPlayhead,\n userContext: userContextB)\n adsLoader.requestAds(with: requestA)\n adsLoader.requestAds(with: requestB)\n\n ...\n\n // MARK: - IMAAdsLoaderDelegate\n\n func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {\n let userContext = adsLoadedData.userContext\n print(\"Loaded ads for ID: \" + userContext.id)\n adsManager = adsLoadedData.adsManager\n adsManager.initialize(with: nil)\n }\n\n func adsLoader(_ loader: IMAAdsLoader!, failedWith adErrorData: IMAAdLoadingErrorData!) {\n let userContext = adsLoadingErrorData.userContext\n print(\"Error loading ads for ID: \" + userContext.id)\n }\n\n ..."]]