自动刷新
一、自动刷新功能介绍
1、支持广告类型
横幅广告、原生横幅广告
2、后台配置位置
创建好广告位——>点击广告位编辑按钮——>高级设置
3、流程图
- (1)首次加载成功或者失败,均会开启轮询,轮询时间为后台配置的自动刷新频率。
- (2)轮询时间到了,SDK会检查是否可见,并且检查是否上一次load失败了;
- (3)如果是可见的,或者上一次失败了,那么触发一次load;
- (4)如果是不可见的并且上一次是成功的, 仅当用户触发banner可见,才会触发一次load。
- (5)调用该单元广告
onDestroy()
后,该广告单元的自动刷新将关闭。
二、自动刷新使用方案
场景 | 说明 | 如何使用 |
---|---|---|
固定展示 | 用户进入App后很少切换,可一直展示banner广告的页面 | 1.在TradPlus后台配置自动刷新间隔时间; 2.在页面上设置好Banner广告; 3.调用一次Banner广告load方法 |
功能首页 | 用户会经常浏览,停留,切换的页面 | 1.在TradPlus后台配置自动刷新间隔时间; 2.在页面上设置好Banner广告; 3.调用一次Banner广告load方法; 4.切换页面的时候隐藏,回来继续展示; 5.注意不要在onAdLoadFailed中触发load操作 |
动态展示 | 需要加载成功后才动态展示的页面(例:列表) | 1.在TradPlus后台配置自动刷新间隔时间; 2.构建 Banner广告并调用load方法,在首次收到 onAdLoaded 回调时展示Banner;3.离开展示页面,不再需要展示Banner时调用 onDestroy() 关闭自动刷新 |
短时展示 | 需要在特定页面或时机,短时展示Banner且无需刷新的 | 1.提前构建 Banner广告 2.关闭Banner广告的自动展示功能 3.调用load方法 4.到达特定页面或时机,展示Banner |
注意事项
注意事项 | 说明 |
---|---|
closeAutoShow()和showAd()配套调用 | 关闭自动展示。 (1) closeAutoShow() 必须在loadAd()前设置,否则不会生效;(2)即使设置了自动刷新,TP SDK也不会自动调用 showAd() 。开发者需要监听到loaded回调后在展示广告的位置执行showAd(),否则广告加载成功后无法展示。 |
自动刷新关闭的时机 | V7.9.0重构。仅开发者调用onDestroy() 后才会关闭。 |
快速切换的页面,同时设置自动刷新 | (1)如果每次到达页面A都会创建新的TPBanner对象,同时这个banner还开启了自动刷新; (2)开发者需要在页面A的onDestroy中调用TPBanner.onDestroy()来关闭自动刷新; (3) 否则会导致开启多个刷新的轮询,造成资源浪费 |
三、推荐方案的代码示例
1、固定展示
TPBanner tpBanner = new TPBanner(activity);
tpBanner.setAdListener(new BannerAdListener() {});
//将三方view add到容器中
adContainer.addView(tpBanner);
//请求广告
tpBanner.loadAd("TP 广告位ID");
.....
//当不需要展示Banner时,调用onDestroy()关闭该广告位的自动刷新。
tpBanner.onDestroy();
2、功能首页
如果开发者每次进入展示页面都创建广告位
// 初始化广告位
TPBanner tpBanner = new TPBanner(activity);
tpBanner.setAdListener(new BannerAdListener() {
@Override
public void onAdLoaded(TPAdInfo tpAdInfo) {
// 开启轮训时间,定时会根据view是否可见触发load广告
//将三方view add到容器中
adContainer.addView(tpBanner);
}
@Override
public void onAdLoadFailed(TPAdError error) {
// 开启轮训时间,定时会触发load广告
}
});
//请求广告
tpBanner.loadAd("TP 广告位ID");
离开展示界面,隐藏广告位
tpBanner.setVisibility(View.INVISIBLE);
再次回到展示界面,显示广告位
tpBanner.setVisibility(View.VISIBLE);
3、动态展示
TPBanner tpBanner = new TPBanner(activity);
tpBanner.setAdListener(new BannerAdListener() {
@Override
public void onAdLoaded(TPAdInfo tpAdInfo) {
// 开启轮训时间,定时会根据view是否可见触发load广告
//将三方view add到要展示的容器中
adContainer.addView(tpBanner);
}
@Override
public void onAdLoadFailed(TPAdError error) {
// 开启轮训时间,定时会触发load广告
}
});
//请求广告
tpBanner.loadAd("TP 广告位ID");
离开展示界面,不需要再次展示Banner,关闭该广告位的自动刷新
tpBanner.onDestroy();
4、短时展示
TPBanner tpBanner = new TPBanner(activity);
tpBanner.setAdListener(new BannerAdListener() {
@Override
public void onAdLoaded(TPAdInfo tpAdInfo) {
// 开启轮训时间,定时会根据view是否可见触发load广告
}
@Override
public void onAdLoadFailed(TPAdError error) {
// 开启轮训时间,定 时会触发load广告
}
});
//关闭自动展示
tpBanner.closeAutoShow();
//请求广告
tpBanner.loadAd("TP 广告位ID");
.....
// 到达特定页面或时机
// 将三方view add到要展示的容器中
adContainer.addView(tpBanner);
// 同时监听到onAdLoaded,展示广告
tpBanner.showAd();