Skip to main content

插屏广告

一、集成建议#

主要介绍在Android项目中如何集成 TradPlus SDK的插屏:

  • 插屏广告一般是全屏的,调用时机是在页面切换时,一般有图片和视频两种,部分渠道会有定制化的插屏。
  • 插屏广告是三方广告平台提供的activity,一般不支持做定制或者修改。创建广告位对象和展示广告的时候需要传Activity。
  • 插屏广告一般需要预加载,在需要展示插屏前判断isReady()是否准备好,准备好后可以调showAd()。
  • 自动加载功能是TradPlus独有的针对部分需要频繁展示广告的场景做的自动补充和过期重新加载的功能,推荐在广告场景触发较多的场景下使用。更多了解,请看自动加载功能介绍

注意事项#

  • 禁止在oneLayerLoadFailed回调中执行广告加载的方法,否则会引起死循环。
  • 禁止在onAdLoaded回调中直接执行广告展示的方法。SDK有自动加载和广告会过期自动补充功能。如果在onAdLoaded回调中执行showAd(),开发者会无法精准控制广告展示的时机。

二、TPInterstitial API说明#

1、初始化广告位#

方法说明
TPInterstitial(Activity activity, String adUnitId)初始化广告位。 仅调用一次。
以下广告平台时必须传入Activity: IronSource 、Kidoz、Maio、Sigmob、GDT,否则会导致广告无法加载成功。
默认开启自动加载。
TPInterstitial(Activity activity, String adUnitId, boolean isAutoLoad)isAutoLoad设置自动加载模式。默认开启,false关闭。

2、加载、展示广告#

方法说明
loadAd()请求广告。
isReady()检测是否有可用广告。
V6.2.4新增APItrue为有可用广告。 自动加载模式下,isReady()false会自动加载广告。
entryAdScenario(String sceneId)(可选) 进入广告场景。
广告场景是用来统计进入广告场景的次数和进入场景后展示广告的次数,所以请在准确的位置调用。
showAd(Activity activity, String sceneId)展示广告。
参数1: 以下广告平台时必须传入Activity:UnityAds、Fyber、Admob、Huawei、 Kuaishou、Mimo、Sigmob、GDT、Toutiao(国内)、Pangle(海外),否则会导致广告加载成功,但无法展示。
参数2 : sceneId 广告场景ID 是可选参数,开发者需和entryAdScenario(sceneId)配套使用。不调用entryAdScenario(sceneId),可以直接传空字符串。
  • 参数说明
参数说明
adUnitId广告位ID,TradPlus后台创建。应用管理——添加应用——添加广告位。
注意广告类型创建错误会导致广告展示失败,例如用标准原生的广告位去请求激励视频广告。
sceneId广告场景ID,TradPlus后台创建。应用管理—— 广告场景。
具体如何使用,请看广告场景的调用时机和用途说明
自动加载模式 isAutoLoadtrue开启,false 关闭。
开启自动加载模式后无需调用loadAd()
开启后,会在哪些时机请求广告请看自动加载功能说明

3、监听回调#

方法说明
setAdListener(InterstitialAdListener adListener)设置广告监听。
其中InterstitialAdListener是需要实现广告事件回调的接口类。
setAllAdLoadListener(LoadAdEveryLayerListener everyLayerListener)(可选)设置单个源维度的监听回调。
V6.4.5新增API。其中LoadAdEveryLayerListener是需要实现广告事件回调的接口类。单个源维度是指TP端的一个广告位下配置多个广告源缓存,每个源的回调。
setDownloadListener(DownloadListener downloadListener)设置下载监听回调(可选 )。 快手、穿山甲等国内源支持。
V8.1.0.1新增API
  • 监听回调中的参数说明 V6.2.4新增API
参数说明
TPAdInfo广告位ID、三方广告平台、ecpm等信息,具体请参考回调信息说明
TPAdError广告请求失败、广告展示失败的错误码、错误信息,具体请参考错误码、错误信息说明
  • InterstitialAdListener(广告位维度)
方法说明
onAdClicked(TPAdInfo tpAdInfo)广告被点击。
onAdImpression(TPAdInfo tpAdInfo)广告被展示。
onAdClosed(TPAdInfo tpAdInfo)广告被关闭。
onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd)广告加载成功。
onAdFailed(TPAdError error)广告加载失败。
onAdVideoError(TPAdInfo tpAdInfo, TPAdError error)V6.9.80新增API。广告展示失败。
V7.3.0新增回调参数TPAdError
onAdVideoStart(TPAdInfo tpAdInfo)视频播放开始。部分广告平台支持。
V8.1.0.1新增
onAdVideoEnd(TPAdInfo tpAdInfo)视频播放结束。部分广告平台支持。
V8.1.0.1新增
  • LoadAdEveryLayerListener(可选)(单个源维度)V6.4.5新增API
方法说明
onAdAllLoaded(boolean isSuccess)广告位的状态。loadAd()完毕后用于判断是否有可用广告,true表明有可用广告,false表明没有可用广告。
oneLayerLoadFailed(TPAdError adError, TPAdInfo adInfo)配置多个广告源,每个广告源加载失败后会都会回调一次。
oneLayerLoaded(TPAdInfo adInfo)配置多个广告源,每个广告源加载成功后会都会回调一次。
onLoadAdStart(TPAdInfo tpAdInfo)请求广告后,广告开始加载。
V7.9.0 废弃。
oneLayerLoadStart(TPAdInfo tpAdInfo)每层waterfall 向三方广告源发起请求前,触发的回调。V7.9.0 新增。
onAdStartLoad(String adUnitId)每次调用load方法时返回的回调,包含自动加载等触发时机。V7.9.0 新增。
onBiddingStart(TPAdInfo tpAdInfo)Bidding开始加载。
onBiddingEnd(TPAdInfo tpAdInfo, TPAdError tpAdError)Bidding加载完成。
V7.3.0新增回调参数TPAdError
  • setDownloadListener(可选)(部分国内源支持)V8.1.0.1新增
方法参数说明
onDownloadStartTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appName开始下载回调。
TPAdInfo:广告的信息对象,具体请参考上文回调信息说明
totalBytes:文件总大小(单位:字节)
currBytes:当前已下载的大小(单位:字节)
fileName:文件名称
appName:文件对应的应用名称
onDownloadUpdateTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appName,int progress下载进度更新回调。
参数意义同上。
onDownloadPauseTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appName暂停下载回调。
参数意义同上。
onDownloadFinishTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appName下载完成回调。
参数意义同上。
onDownloadFailTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appName下载失败回调。
参数意义同上。
onInstalledTPAdInfo tpAdInfo, long totalBytes, long currBytes, String fileName, String appNameApk安装完成回调。
参数意义同上。

三、示例代码#

请参考Interstitial Demo

private TPInterstitial mTpInterstitial;
...
if(mTpInterstitial == null) {
mTpInterstitial = new TPInterstitial(activity, "AdUnitId", false);
}
mTPInterstitial.setAdListener(new InterstitialAdListener() {
@Override
public void onAdLoaded(TPAdInfo tpAdInfo) {
// 禁止在onAdLoaded中执行showAd()
// 自动加载(开发者控制)和广告会过期自动补充功能会导致无法精准控制广告展示的时机。
}
@Override
public void onAdClicked(TPAdInfo tpAdInfo) {}
@Override
public void onAdImpression(TPAdInfo tpAdInfo) {}
@Override
public void onAdFailed(TPAdError tpAdError) {
// 禁止在onAdFailed中执行loadAd()
}
@Override
public void onAdClosed(TPAdInfo tpAdInfo) {}
@Override
public void onAdVideoError(TPAdInfo tpAdInfo, TPAdError tpAdError) {}
// 8.1.0.1 新增播放开始
@Override
public void onAdVideoStart(TPAdInfo tpAdInfo) {}
// 8.1.0.1 新增播放结束
@Override
public void onAdVideoEnd(TPAdInfo tpAdInfo) {}
});
mTPInterstitial.loadAd();
......
// 展示广告页面
// 进入广告场景
mTPInterstitial.entryAdScenario(sceneId);
// 先判断是否有可用广告
if (mTPInterstitial.isReady()) {
// 有可用广告,展示
mTPInterstitial.showAd(activity,sceneId)
}