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() |
| 中贴片广告或后贴片广告已加载 | 对于广告插播时间点中的第一个广告,在广告开始时间前 8 秒。 对于连续广告,在上一个广告开始播放时。 | 在广告开始时间。 |
限制
预加载受以下限制:
- 在 iOS 设备上的移动网站上或在联网智能电视上使用 HTML5 IMA SDK 时,媒体预加载功能不可用。
- VPAID 会预加载,但在广告执行之前,不会加载广告的任何依赖项(包括该广告播放的媒体)。
- 必须启用自动播放才能预加载 VMAP 广告。确保
settings.isAutoPlayAdBreaks()设置为true(默认值)。 - 后贴片广告会在最后一个中贴片广告之后预加载,或者如果使用
AdsRequest.contentDuration设置时长,则会在内容结束前 8 秒预加载。
常见问题解答
- 媒体预加载是否会加载完整的广告素材?
- 不会,广告播放开始时,广告素材通常不会完全加载。 预加载旨在通过最大限度地缩短广告加载时间来改善用户体验, 而不是为了支持离线广告投放。 IMA SDK 会加载浏览器允许加载的尽可能多的媒体,但会受到用户互联网连接和广告素材大小的限制。
- 是否需要为广告的 VAST 和媒体启用媒体预加载?
- 不需要,无论此预加载设置如何,SDK 始终会预加载广告的 VAST。