广告规则

SDK 操作模式

SDK 可以在一种或多种模式下运行,具体取决于它从广告收到的广告响应 服务器。

单个广告
start 消息发送至 IMAAdsManager。无需特殊初始化 才能播放单个广告。
广告连播
start消息发送至 IMAAdsManager。无需进行特殊的初始化 播放单个广告连播。
广告规则
播放列表,其中包含安排在特定时间、特定时段 内容。在广告规则模式下,系统会忽略 start 消息。你可以 指在单个播放列表中安排多个广告插播时间点(例如,前贴片广告、 中贴片广告、后贴片广告)。有关实现详情,请参阅 广告规则部分。

广告规则

IMA iOS SDK 支持完全自动化的广告播放列表。此功能 按照 Google Ad Manager 。它还大大简化了视频播放器代码 (包括前贴片广告、中贴片广告和后贴片广告)。

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

注意:当内容播放完毕或 用户已停止播放,请务必调用 contentComplete IMAAdsLoader 上,以便向 SDK 表明内容 已播放完毕。然后,SDK 会播放后贴片广告插播时间点(如果已安排)。 ALL_ADS_COMPLETED 事件会在所有广告插入点 。另外请注意,内容跟踪会在 IMAAdsManagerinitializeWithContentPlayhead:adsRenderingSettings 方法被调用,并且您应始终调用 initializeWithContentPlayhead:adsRenderingSettings 然后再播放内容