开屏广告
一、集成建议
主要介绍在Android项目中如何集成 TradPlus SDK的开屏广告:
- 开屏广告是打开app的时候展示一个3-5s的全屏的广告。
- 开屏广告分冷启动和热启动,冷启动时要尽可能提前开始加载广告,这样才能确保在进入app之前加载到并展示广告。
- 热启动是app切换到后台,并没有真正的退出,这种情况下要能检测到并提前加载广告。
- 开屏广告一般要配合app的启动页来使用,在加载的时间先给用户看启动页,等广告加载成功后展示广告,广告结束进入app内部。
1、开屏广告的推荐用法
应用启动方式
- 冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这种方式叫“冷启动”
- 热启动:当启动应用时,后台已有该应用的进程,例:按home键退出再回到前台,或切换应用回到前台等,这种方式叫“热启动”
2、开屏加载策略
(1)冷启动方式打开应用
- 第一时间在后台load广告,同时建议在loading页时最多停留5秒
- 如果5秒内返回广告,直接显示。显示完后,再调用 load 方法加载一条广告,供下次热启动时使用
- 如果5秒内未返回广告,则关闭loading页,直接进入应用主界面。如在此之后收到 loaded 回调,不要再调用show方法。本次广告不会丢弃,SDK会缓存下来备用
- 应用冷启动时,加载广告的过程中尽量不要同时请求其他网络资源,以免影响广告加载速度
(2)热启动方式打开应用
- 有广告则直接显示
- 不管有无广告展示,都需要再加载一条新的广告,作为备用
- 如果应用能够监听到切换后台事件,可在切换后台时调用 isReady 方法判断广告是否Ready,如果没有Ready,可补充一条广告
3、开屏出现时机
推荐示例:
在下面的推荐示例中,开屏广告在应用的加载屏幕上显示。
不推荐示例:
如果用户已经进入应用Home页,则不要展示开屏广告。否则会突然弹出,容易造成用户误点击。
4、注意事项
- (1)不建议在
oneLayerLoadFailed
和onAdLoadFailed
回调中执行广告加载的方法。对广告平台方来说,短时间内多次请求,不容易得到填充,同时会造成多次无效请求,也可能会导致应用卡顿;如果产品逻辑要在这里发起请求,开发者需要控制时间间隔和次数,比如分别在10S、30S、60S后发起请求。 - (2)【V9.9.0.1以下版本】 不建议在
onAdLoaded
回调中直接执行广告展示的方法:- SDK有广告过期自动补充功能,加载成功后会回调
onAdLoaded
onAdLoaded
回调中直接showAd()
,会导致过期补充或自动加载成功后弹出广告影响用户体验- 建议:开发者记录
onAdLoaded
状态,在需要展示广告的地方,先判断isReady()
返回true,再展示广告
- SDK有广告过期自动补充功能,加载成功后会回调
- (3)【V9.9.0.1 + 】优化回调机制,调用一次
loadAd()
才会收到一次loaded
回调。- 开发者可以直接在
onAdLoaded
回调中执行广告展示
- 开发者可以直接在
- (4)广告关闭后,开发者需要在
onAdClosed
回调中remove传入容器。 - (5)开发者需注意如果已经进入app内部,而加载时间过长,这次load结果就不应该展示了。
广告平台注意事项
广告平台 | 说明 |
---|---|
米盟 | V7.2.0.1支持开屏。loaded成功后会自动展示,不支持预加载。 |
Huaiwei | V8.4.0.1支持开屏。需要使用loadAd(ViewGroup adContainer)方法。loaded成功后会自动展示,不支持预加载。 V12.9.0.1支持预加载,可以先加载后展示(后台配置的时,需要选择先缓存后展示) |
二、API说明
1、TPSplash API
- 创建广告位对象
方法 | 说明 |
---|---|
TPSplash(Activity activity, String adUnitId) | 仅初始化时调用一次。 以下广告平台时必须传入Activity: TapTap 、BeiZi 、Mintegral-CN、Vivo,如果不传会导致广告加载失败; Admob相关 、Pangle、Yandex ,如果不传会导致广告展示失败。 adUnitId是在TP平台创建的广告位ID。 |
- 加载、展示广告(方法一)(推荐)
方法 | 说明 |
---|---|
loadAd(null) | 请求广告。可以使用预加载功能(配置缓存个数)。 和showAd(adContainer) 配套使用。 |
showAd(ViewGroup adContainer) | 展示广告并传入容器。 容器推荐使用FrameLayout。 |