预加载媒体

IMA SDK 支持预加载视频广告素材资源。 您可以在 SDK 集成中启用此功能,实现广告与内容之间的更顺畅过渡。本指南将介绍使用 IMA SDK 实现媒体预加载的技术详情。

启用预加载

如需启用预加载,请将 AdsRenderingSettings.enablePreloading 设置为 true。这必须通过 ADS_MANAGER_LOADED 事件完成:

function onAdsManagerLoaded(adsManagerLoadedEvent) {
  var adsRenderingSettings = new google.ima.AdsRenderingSettings();
  adsRenderingSettings.enablePreloading = true;
  ...
  var adsManager = adsManagerLoadedEvent.getAdsManager(
      videoContent, adsRenderingSettings);
}

计时

下表总结了启用预加载后广告加载时间的变化:

事件 带预加载 无预加载
请求的广告 VAST AdsLoader.requestAds() AdsLoader.requestAds()
前贴片广告已加载(单个广告) AdsManager.init() AdsManager.start()
已加载前贴片广告(VMAP/广告规则) AdsManager.init() AdsManager.init()
已加载中贴片广告或后贴片广告 对于广告插播中的第 1 个广告,广告开始时间前 8 秒。 对于连续的广告,在上一个广告开始播放时返回。 广告开始时。

限制

预加载受到以下限制:

  • 在 iOS 设备上访问移动网站或在联网电视上使用 HTML5 IMA SDK 时,无法使用媒体预加载功能。
  • 已预加载 VPAID,但在执行广告之前,系统不会加载该广告的任何依赖项(包括该广告播放的媒体)。
  • 必须启用自动播放功能,预加载功能才能正常运行。确保将 settings.isAutoPlayAdBreaks() 设置为 true(默认值)。
  • 系统会在最后一个中贴片广告之后或内容结束前的 8 秒(如果使用 AdsRequest.contentDuration 设置时长)预加载后贴片广告。

常见问题解答

媒体预加载是否会加载完整的广告素材?
不会,广告播放开始时,广告素材通常没有完全加载。 预加载旨在最大限度地缩短广告加载所需的时间,从而改善用户体验。但是,它不支持离线广告投放。 IMA SDK 会在浏览器允许范围内加载尽可能多的媒体,但会受到用户的互联网连接和广告素材尺寸的限制。
是否需要为广告的 VAST 和媒体启用媒体预加载?
不会,无论此预加载设置为何,SDK 都会始终预加载广告的 VAST。