预加载媒体

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 会预加载,但广告的所有依赖项(包括该广告播放的媒体)在广告执行之前都不会加载。
  • 必须启用自动播放才能预加载 VMAP 广告。确保 settings.isAutoPlayAdBreaks() 设置为 true(默认值)。
  • 如果使用 AdsRequest.contentDuration 设置时长,后贴片广告会在最后一个中贴片广告之后或内容结束前 8 秒预加载。

常见问题解答

媒体预加载是否会加载整个广告素材?
否,广告播放开始时,广告素材通常尚未完全加载。 预加载旨在通过最大限度地缩短广告加载时间来改善用户体验。它并非旨在支持离线广告投放。 IMA SDK 会加载浏览器允许加载的最大媒体量,但会受到用户互联网连接和广告素材大小的限制。
是否需要为广告的 VAST 和媒体启用媒体预加载?
否,无论此预加载设置如何,SDK 始终会预加载广告的 VAST。