IMA SDK 支持预加载视频广告素材资源。 您可以在 SDK 集成中启用此功能 让广告与内容之间更顺畅切换。 本指南介绍了在 Google Cloud 控制台中 使用 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
。 - 后贴片广告会在最后一个中贴片广告之后或前 8 秒
如果
AdsRequest.contentDuration
用于设置持续时间。
常见问题解答
- 媒体预加载是否会加载整个广告素材?
- 不会,当广告开始播放时,广告素材通常未完全加载。 预加载旨在最大限度地缩短时间,从而提升用户体验 广告加载所需时间它不支持离线广告投放。 IMA SDK 会加载浏览器允许的最大媒体,但受限于 用户的互联网连接情况以及广告素材的尺寸。
- 是否需要为广告的 VAST 和媒体启用媒体预加载?
- 否,无论这种预加载是多少,SDK 始终会预加载广告的 VAST 设置。