IMA SDK 会加载依赖项以请求广告、衡量可见度并报告广告展示次数。通过在发出广告请求之前初始化 IMA,您可以在广告播放前最大限度地加载 IMA 依赖项。本页介绍了如何在应用中处理 IMA 加载时间。
拨打 ImaSdkFactory.initialize()
ImaSdkFactory.initialize()
方法会在发出首项广告请求之前开始预加载 SDK 资源。如需使用 initialize()
,您需要 IMA 3.35.1 或更高版本。
在应用启动时调用 ImaSdkFactory.initialize()
,或者在应用生命周期中尽早调用 ImaSdkFactory.initialize()
(前提是应用结构允许)。initialize()
调用采用以下参数:
context
:使用应用上下文,该上下文在应用生命周期内始终可用。settings
:传递已设置值的ImaSdkSettings
对象。initialize()
调用中使用的 IMA 设置必须与createAdsLoader()
调用中使用的设置值相同。IMA SDK 会将这些设置(尤其是语言设置)用作缓存键。我们不建议为initialize()
方法调用中使用的设置使用测试值或虚假值,因为可能会发生缓存未命中并增加广告加载时间。
重复使用 AdsLoader
实例
为了缩短 IMA 加载时间,我们建议您重复使用相同的 AdsLoader
实例。AdsLoader
接口可以处理多个广告或串流请求。避免为每个请求创建新的 AdsLoader
实例。创建新的 AdsLoader
实例需要加载时间,并且会使用额外的设备资源。
使用 ExoPlayer-IMA 扩展程序处理加载时间
使用 ExoPlayer-IMA 扩展程序的应用会在每次广告加载时重新创建 AdsLoader
实例。initialize()
调用可加快 AdLoader
的首次广告请求。如需加快新 activity 的首次广告请求,请在新 activity 启动时再次调用 initialize()
。
在播放前请求广告
如果您在开始播放广告之前有权访问 AdsLoader
实例,还可以提前调用 AdsLoader.requestAds()
方法。进行此调用会开始加载前贴片广告。当用户准备好开始播放内容时,调用 AdsManager.init()
方法并等待 LOADED
事件以播放广告。