广告预加载是 GMA Next-Gen SDK 中的一项广告加载功能,可在后台加载广告并在展示前缓存广告。如需通过广告预加载功能提升效果,请停用自定义缓存,并将该职责委托给 GMA Next-Gen SDK。
GMA Next-Gen SDK 中的广告预加载功能可自动加载和缓存广告。
广告预加载具有以下优势:
- 引用管理:在广告展示之前,保留对广告的引用。
- 自动重新加载:从缓存中检索到广告后,加载新广告。
- 代管式重试:在广告加载失败时加载新广告。
- 过期处理:在广告过期前刷新广告。
- 缓存优化:优化缓存顺序,以投放优先级最高的广告。
比较广告预加载和单次加载
在应用中,将广告预加载作为全屏广告的默认集成方式。
以下是广告预加载和单次加载广告请求的对比:
广告预加载
使用广告预加载功能可带来以下优势:
- 自动化生命周期管理:将广告缓存、过期跟踪、失败请求重试和广告刷新委托给 GMA Next-Gen SDK,而无需编写或维护自定义生命周期代码。当您从缓存中获取预加载的广告进行展示时,GMA Next-Gen SDK 会自动加载替代广告。
- 在过渡点准备好广告:提前预加载广告,以便在用户切换关卡或屏幕时展示广告。
- 优化广告选择:让 GMA Next-Gen SDK 为每个预加载配置存储多个广告,并在您每次展示广告时从缓存中投放优先级最高的广告。
单次加载
仅在您需要直接控制单个广告请求时,才使用单次加载广告请求,例如:
- 入站中介:如果您通过第三方中介平台(例如合作伙伴出价)对 GMA Next-Gen SDK 进行中介,请使用单次加载广告请求。如需了解详情,请参阅合作伙伴出价简介。 由于第三方中介 SDK 会管理广告瀑布流、缓存和刷新周期,因此 GMA Next-Gen SDK 预计每次适配器加载调用都会发出一个广告请求。
- 自定义广告请求:如果您设置的自定义
AdRequest参数在每次请求之前都会发生变化,请使用单次加载广告请求。更新PreloadConfiguration对象会重启预加载并清除缓存的广告。
比较广告生命周期行为
下表比较了广告预加载和单次加载如何处理广告生命周期行为:
| 行为 | 广告预加载 | 单次加载 API |
|---|---|---|
| 商店广告 | 将加载的广告存储在内部缓存中,直到您调用 pollAd 方法。 |
您的应用必须将加载的广告对象引用存储在成员变量中,直到您展示该广告。 |
| 重新加载广告 | 当您从缓存中检索广告时,系统会自动加载替换广告。 | 在用户关闭广告或广告未能展示后,您的应用必须手动调用 load 方法。 |
| 失败的请求重试 | 使用指数退避算法自动重试失败的请求。 | 需要自定义重试逻辑来处理失败的请求。 |
| 到期和刷新 | 跟踪广告过期情况,并自动刷新缓存中过期的广告。 | 您的应用必须跟踪过期时间并手动请求广告。 |
| 缓存优化 | 每个预加载配置存储多个广告,并优先投放优先级最高的广告。 | 每次请求加载一个广告,没有内置队列或缓存排序。 |
广告预加载生命周期
广告预加载功能会通过以下生命周期步骤取代手动广告加载调用:
- 开始广告预加载:针对每个预加载配置调用一次
start方法。如需了解植入详情,请参阅开屏广告、插页式广告、激励广告或插页式激励广告。 - 获取并展示预加载的广告:调用
pollAd方法,然后调用show方法。如需了解植入详情,请参阅开屏广告、插页式广告、激励广告或插页式激励广告。 - 可选:停止预加载广告:调用
destroy或destroyAll方法。如需了解植入详情,请参阅开屏广告、插页式广告、激励广告或插页式激励广告。
预加载缓存限制
缓冲区空间控制着预加载配置在内存中保留的预加载广告数量。默认情况下,Google 会优化缓冲区大小,以平衡内存消耗和广告投放延迟时间。
GMA Next-Gen SDK 会在应用范围内对所有广告单元和预加载 ID 的预加载广告总数施加限制:
- 默认应用级限制:GMA Next-Gen SDK 在内存中最多可保留 6 个预加载广告,涵盖所有格式和预加载 ID。
- 建议的缓冲区空间:我们建议为每个预加载 ID 保留大小为 2 的缓冲区空间。
后续步骤
GMA Next-Gen SDK 支持针对全屏广告格式进行广告预加载。横幅广告和原生广告格式不使用广告预加载。横幅广告会根据您的广告单元配置自动刷新,而原生广告则使用 NativeAdLoader 类。
为所选广告格式集成广告预加载功能,或优化启动延迟时间: