跳转到主要内容
SDK 用 UIKit 展示广告。VideoAdHost 是一个负责桥接的 SwiftUI 视图:把它放在播放器之上,设置它的 ad,广告就会展示。它属于 KontextVideoSDK,无需添加其他内容。

播放器页面

把播放器、VideoAds 和屏幕上的广告放在页面通过 @StateObject 持有的模型中:

VideoAdHost

  • 设置广告即展示。 宿主在屏幕上且有尺寸后,已加载的广告就会展示。设为 nil 或另一个广告,当前展示的广告就会关闭;宿主离开视图层级时也会关闭。
  • 所有格式。 叠加广告或暂停广告展示在宿主所在的位置。线性广告从最顶层的视图控制器全屏呈现;宿主从不关闭它:它自行结束或由观众结束,onEnd 仍会送达。
  • 宿主是广告的 delegate。 通过宿主的闭包接收广告事件,而不是 ad.delegate。
  • onShowFailed 收到 show 会抛出的原因:anotherAdShowing、contentPaused、containerTooSmall 等。
  • 广告以外的点击 会传给你的播放器,因此你自己的手势照常工作。

把广告放在模型中

SwiftUI 会重建视图结构体。把 VideoAds 放在你的 @StateObject 模型中,而不是视图中:释放 VideoAds 会结束它的广告。在观众真正离开剧集时(你的返回按钮、下一集)调用 ads.destroy(),而不是在 onDisappear 中:线性广告覆盖你的视图时,SwiftUI 也会调用 onDisappear。

在信息流中

为每一页提供自己的模型和宿主,只在当前页设置广告。被滑走的页面上的广告会在大约一秒内结束(.interrupted),为下一页的广告腾出屏幕。见信息流中的广告。