自动制作广告播放列表

请选择平台HTML5 Android iOS tvOS

SDK 操作模式

SDK 可以根据从广告服务器收到的广告响应以一种或多种模式运行。

单个广告
一种可在向 IMAAdsManager 发送消息时随时播放的广告。start无需进行特殊初始化即可播放单个广告。
广告连播
start 消息发送到 IMAAdsManager 时,连续播放多个广告。无需进行特殊初始化即可播放单个广告插播时间。
广告规则
在特定时间针对特定内容安排的广告插播时间点播放列表。在广告规则模式下,系统会忽略 start 消息。单个播放列表中可以安排多个广告插播时间点(例如,前贴片、中贴片、后贴片)。如需了解更多实现细节,请参阅下文的广告规则部分。

广告规则

IMA tvOS SDK 支持完全自动化的广告播放列表。此功能可在投放广告时,按照 Google Ad Manager 中的指定将广告插播时间点插入到内容中。它还大大简化了支持广告插播(包括前贴片广告、中贴片广告和后贴片广告)所需的视频播放器代码。

  • 在 Ad Manager 中投放广告时,可以指定各种广告规则,例如“始终在内容开头播放广告插播”或“每 30 分钟的内容播放 1 分钟的广告插播”。
  • 请求广告时,广告服务器可以返回广告播放列表。SDK 会处理播放列表,并自动安排已指定的广告插播时间。
  • 初始化 AdsManager 时,会通过 initializeWithContentPlayhead:adsRenderingSettings: 调用传入 IMAContentPlayhead 对象。如果您使用 AVPlayer 显示内容,则在创建 adDisplayContainer 时,需要向 SDK 传递 IMAAVPlayerContentPlayhead 的实例。此对象用于跟踪内容播放进度,以便在 Ad Manager 中指定的时间自动插入广告插播时间点。

    使用 AVPlayer

    IMAContentPlayhead *contentPlayhead =
        [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentAVPlayer];
    IMAAdsRequest *request = [[IMAAdsRequest alloc] initWithAdTagUrl:adTagUrl
                                                  adDisplayContainer:adDisplayContainer
                                                     contentPlayhead:contentPlayhead
                                                         userContext:nil];

    不含 AVPlayer

    1. 实现 IMAContentPlayhead 接口。
    2. 实现 currentTime 以返回视频播放器的当前时间。
    3. IMAAdsManager 初始化调用更改为使用 initializeWithContentPlayhead:self
  • IMAAdsManagerDelegate 用于在播放广告插播时暂停和恢复内容。

注意:当内容播放完毕或用户停止播放时,请务必对 IMAAdsLoader 调用 contentComplete,以便向 SDK 发出内容已播放完毕的信号。然后,SDK 会播放预定好的后贴片广告插播时间点(如果有)。 当所有广告时段都已播放完毕时,系统会触发 ALL_ADS_COMPLETED 事件。此外,请注意,当调用 IMAAdsManagerinitializeWithContentPlayhead:adsRenderingSettings 方法时,内容跟踪即会开始,并且您应始终在播放内容之前调用 initializeWithContentPlayhead:adsRenderingSettings