Skip to main content

自动刷新

一、自动刷新功能介绍#

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();