Skip to main content

5、开屏广告

一、简介#

1.1 主要介绍在Android项目中如何集成TradPlus SDK的开屏广告#

  • 支持Android 16以上的应用;
  • 针对v6.2以上版本的集成;
  • 建议先注册TradPlus账户,并添加应用;
  • 按照流程成功集成TradPlus SDK。
  • Demo

1.2 支持开屏广告的广告网络#

广告网络说明
快手使用预加载(V6.4.5新功能),调用show()前需要刷新context
腾讯优量汇V6.4.4支持开屏V+。
穿山甲(国内)V6.4.4支持开屏点睛。
谷歌Admob (海外)TradPlus的AndroidX版本支持。Support版本不支持。
聚量优汇(国内)不支持show(),不支持预加载(V6.4.5新功能)。load()取到广告后会直接展示。

> 开屏广告

  • 开屏广告是打开app的时候展示一个3-5s的全屏的广告
  • 开屏广告分冷启动和热启动,冷启动时要尽可能提前开始加载广告,这样才能确保在进入app之前加载到并展示广告
  • 热启动是app切换到后台,并没有真正的退出,这种情况下要能检测到并提前加载广告
  • 开屏广告一般要配合app的启动页来使用,在加载的时间先给用户看启动页,等广告加载成功后展示广告,广告结束进入app内部

二、集成步骤#

  • V6.X 为例
// 1、初始化广告位。广告位ID在TradPlus后台创建。仅调用一次。
TPSplash tpSplash = new TPSplash(activity,"AdUnitId");
// 2、设置回调监听(onAdClosed回调监听中remove传入容器)
tpSplash.setAdListener(new SplashAdListener() {...});
// 3、设置每层广告源回调监听 (可选)
tpSplash.setAllAdLoadListener(new LoadAdEveryLayerListener() {...});
// 4、请求广告
tpSplash.loadAd();
// 5、检查是否有可用广告
if (tpSplash.isReady()) {
// 6、展示广告。adContainer为布局文件中添加一个展示广告view
tpSplash.showAd(adContainer);
}

三、API说明#

3.1 加载类API#

V6.X API TPSplash方法说明
TPSplash(Activity activity, String adUnitId)开屏广告的初始化方法。AdUnitId广告位ID在TradPlus后台创建。仅初始化时调用一次。
setAdListener(SplashAdListener listener)设置广告监听回调,其中SplashAdListener是需要实现广告事件回调的接口类。
setAllAdLoadListener(LoadAdEveryLayerListener everyLayerListener)(可选)V6.4.5新增API。设置单个源维度的监听回调,其中LoadAdEveryLayerListener是需要实现广告事件回调的接口类。
loadAd(ViewGroup adContainer)请求广告。注意:使用该方法请求,不能使用预加载(不能配置缓存个数),每次请求广告均为实时发起。
showAd()展示广告。和loadAd(adContainer)配套使用。
loadAd(null)(推荐)请求广告。可以使用预加载功能(配置缓存个数)。showAd(adContainer)配套使用。
showAd(ViewGroup adContainer)(推荐)展示广告并传入容器。
GlobalTradPlus.getInstance().refreshContext(context)V6.4.5新增API集成快手,同时使用预加载,每次进入showAd(viewGroup)的场景的时候,需要刷新context,不然快手无法加载成功。在showAd(viewGroup)方法前调用。
isReady()V6.2.4新增API。检查是否有可用广告。
setDefaultConfig("config");(可选)配置三方广告源config配置。用于提升冷启动的加载速度,可以提前内置一套默认配置,这样在首次安装并打开app后第一时间会根据这份配置请求三方广告平台。在AndroidStudio的log中过滤“TPSplash”的TAG,把内容复制出来,调用setDefaultConfig来设置。这个接口只会在首次安装后第一次打开app生效,后续有正式配置下载下来,就不会再使用这份配置(清除app本地缓存后也会使用这次的配置),
TPAdInfoV6.2.4新增API。见请参考回调信息说明

3.2 监听回调API#

V6.X API SplashAdListener 方法说明
onAdClicked(TPAdInfo tpAdInfo)广告被点击。事件回调监听中的TPAdInfo,请参考回调信息说明。同下。
onAdImpression(TPAdInfo tpAdInfo)广告被展示。
onAdClosed(TPAdInfo tpAdInfo)广告被关闭。必须在该回调中处理广告关闭逻辑,把传入容器remove。
onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd)广告加载成功。
onAdLoadFailed(TPAdError error)广告加载失败。事件回调监听中的TPAdError,请参考错误码&错误信息说明。同下。
onAdShowFailed(TPAdError error, TPAdInfo tpAdInfo)广告展示失败。
onZoomOutStart(TPAdInfo tpAdInfo)V6.4.4新增API。开屏点睛开始。仅穿山甲(国内)和腾讯优量汇支持。
onZoomOutEnd(TPAdInfo tpAdInfo)V6.4.4新增API。开屏点睛关闭。仅穿山甲(国内)和腾讯优量汇支持。
  • (可选)设置单个源维度的监听回调
V6.X API LoadAdEveryLayerListener 方法说明
onAdAllLoaded(boolean isSuccess)广告位的状态。loadAd()完毕后用于判断是否有可用广告,true表明有可用广告,false表明没有可用广告。
oneLayerLoadFailed(TPAdError adError, TPAdInfo adInfo)配置多个广告源缓存,当每个广告源加载失败后会都会回调一次。
oneLayerLoaded(TPAdInfo adInfo)V6.4.5新增API。配置多个广告源缓存,当每个广告源加载成功后会都会回调一次。
onLoadAdStart(TPAdInfo tpAdInfo)V6.4.5新增API。请求广告后,广告开始加载。
onBiddingStart(TPAdInfo tpAdInfo)V6.4.5新增API。Bidding开始加载。
onBiddingEnd(TPAdInfo tpAdInfo)V6.4.5新增API。Bidding加载完成。

3.3 5.X旧版本API#

  • 注意:接入V6.X版本,可跳过这部分API说明。
  • 加载类API

V5.X API TradPlusView方法说明
TradPlusView(Context context)开屏广告的初始化方法。仅初始化时调用一次。
setAdUnitId(String adUnitId)设置广告位ID。AdUnitId广告位ID在TradPlus后台创建。
setAdSize(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT)设置广告Size。
setAdLayoutName("splash_view_ad_layout");(可选)设置布局。集成快手开屏广告必须使用布局。splash_view_ad_layout.xml可在demo中或TradPlus自动打包平台中获取。
setAdViewListener(FSAdViewListener listener)设置广告监听回调,其中FSAdViewListener是需要实现广告事件回调的接口类。
setSplashAdViewListener(SplashAdViewListener splashAdViewListener)设置开屏广告监听回调,其中SplashAdViewListener是需要实现广告事件回调的接口类。比FSAdViewListener增加回调关闭事件。
loadAd()请求广告。成功获取广告后,自动展示。
onDestroy()释放资源。
  • 监听回调API
FSAdViewListener 方法说明
onAdViewClicked(TradPlusView banner)广告被点击。
onAdViewExpanded(TradPlusView banner)广告被展示。
onAdViewLoaded(TradPlusView banner)广告加载成功。
onAdViewFailed(TradPlusView banner, TradPlusErrorCode errorCode)广告加载失败。
SplashAdViewListener 方法说明
onADDismissed()广告被关闭。

四、开屏广告的推荐用法#

4.1 应用启动方式#

  • 冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这种方式叫“冷启动”
  • 热启动:当启动应用时,后台已有该应用的进程,例:按home键推出再回到前台,或切换应用回到前台等,这种方式叫“热启动”

4.2 开屏加载策略#

(1)冷启动方式打开应用#

  • 第一时间在后台load广告,同时建议在loading页时最多停留5秒
    • 如果5秒内返回广告,直接显示。显示完后,再调用 load 方法加载一条广告,供下次热启动时使用
    • 如果5秒内未返回广告,则关闭loading页,直接进入应用主界面。如在此之后收到 loaded 回调,不要再调用show方法。本次广告不会丢弃,SDK会缓存下来备用
  • 应用冷启动时,加载广告的过程中尽量不要同时请求其他网络资源,以免影响广告加载速度

(2)热启动方式打开应用#

  • 有广告则直接显示
  • 不管有无广告展示,都需要再加载一条新的广告,作为备用
  • 如果应用能够监听到切换后台事件,可在切换后台时调用 isReady 方法判断广告是否Ready,如果没有Ready,可补充一条广告

4.3 开屏出现时机#

推荐示例

在下面的推荐示例中,开屏广告在应用的加载屏幕上显示。

不推荐示例

如果用户已经进入应用Home页,则不要展示开屏广告。否则会突然弹出,容易造成用户误点击。