Skip to main content

Android 开屏广告

开屏广告目前仅支持导出到Android项目集成,如图:

注意事项#

  • (1)禁止在oneLayerLoadFailed 回调中执行广告加载的方法,否则会引起多个无用请求。
  • (2)广告关闭后,开发者需要在onAdClosed回调中remove传入容器。
  • (3)开发者需注意如果已经进入app内部,而加载时间过长,这次load结果就不应该展示了

API说明#

1.TPSplash API#

  • 初始化广告位
方法说明
TPSplash(Activity activity, String adUnitId)初始化广告位。AdUnitId广告位ID在TradPlus后台创建。仅初始化时调用一次。
以下广告平台时必须传入Activity: Admob 、Pangle,否则会导致广告无法加载成功。
  • 加载、展示广告(方法一)
方法说明
loadAd(ViewGroup adContainer)请求广告。
容器推荐使用FrameLayout
注意使用该方法请求,无法使用预加载(不能配置缓存个数),每次请求广告均实时发起。
showAd(null)展示广告。和loadAd(adContainer)配套使用。米盟开屏不支持预加载,loaded成功后就需要展示。
  • 加载、展示广告 (方法二)(推荐)
方法说明
loadAd(null)请求广告。
容器推荐使用FrameLayout
可以使用预加载功能(配置缓存个数)。showAd(adContainer)配套使用。
showAd(ViewGroup adContainer)展示广告并传入容器。米盟开屏不支持预加载,loaded成功后就需要展示。
  • 检测是否有可用广告(可选)
方法说明
isReady()V6.2.4新增API。检查是否有可用广告,true为有可用广告。
  • 配置三方广告源config配置(可选)
方法说明
setDefaultConfig("config")用于提升冷启动的加载速度,可以提前内置一套默认配置,这样在首次安装并打开app后第一时间会根据这份配置请求三方广告平台。
在AndroidStudio的log中过滤“TPSplash”的TAG,把内容复制出来,调用setDefaultConfig来设置。
这个接口只会在首次安装后第一次打开app生效,后续有正式配置下载下来,就不会再使用这份配置(清除app本地缓存后也会使用这次的配置)。
  • 自定义key-value(可选)
方法说明
setCustomParams(map)需要在loadAd前调用该方法。具体使用见上文腾讯半屏展示API的注意事项

2.监听回调API#

  • 设置广告监听
方法说明
setAdListener(SplashAdListener listener)设置广告监听回调,其中SplashAdListener是需要实现广告事件回调的接口类。
setAllAdLoadListener(LoadAdEveryLayerListener everyLayerListener)(可选)V6.4.5新增API。设置单个源维度的监听回调。其中LoadAdEveryLayerListener是需要实现广告事件回调的接口类。
单个源维度是指TP端的一个广告位下配置多个广告源缓存,每个源的回调。
  • 监听回调中的参数说明
参数说明
TPAdInfo广告位ID、三方广告平台、ecpm等信息,具体请参考回调信息说明
errorMsg广告请求失败、广告展示失败的错误信息,具体请参考错误码、错误信息说明
  • SplashAdListener说明(广告位维度)
方法说明
onAdClicked(TPAdInfo tpAdInfo)广告被点击。
onAdImpression(TPAdInfo tpAdInfo)广告被展示。
onAdClosed(TPAdInfo tpAdInfo)广告被关闭。必须在该回调中处理广告关闭逻辑,把传入容器remove。
onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd)广告加载成功。
onAdLoadFailed(TPAdError error)广告加载失败。
onAdShowFailed(TPAdInfo tpAdInfo,TPAdError tpAdError)广告展示失败。
V7.3.0新增回调参数TPAdError
onZoomOutStart(TPAdInfo tpAdInfo)V6.4.4新增API。开屏点睛开始。仅穿山甲(国内)和腾讯优量汇支持。
onZoomOutEnd(TPAdInfo tpAdInfo)V6.4.4新增API。开屏点睛关闭。仅穿山甲(国内)和腾讯优量汇支持。
  • LoadAdEveryLayerListener说明(可选)(单个源维度)
方法说明
onAdAllLoaded(boolean isSuccess)广告位的状态。loadAd()完毕后用于判断是否有可用广告,true表明有可用广告,false表明没有可用广告。
oneLayerLoadFailed(TPAdError adError, TPAdInfo adInfo)配置多个广告源缓存,当每个广告源加载失败后会都会回调一次。
oneLayerLoaded(TPAdInfo adInfo)V6.4.5新增API。配置多个广告源缓存,当每个广告源加载成功后会都会回调一次。
onLoadAdStart(TPAdInfo tpAdInfo)请求广告后,广告开始加载。
V7.9.0 废弃。
oneLayerLoadStart(TPAdInfo tpAdInfo)每层waterfall 向三方广告源发起请求前,触发的回调。V7.9.0 新增。
onAdStartLoad(String adUnitId)每次调用load方法时返回的回调。V7.9.0 新增。
onBiddingStart(TPAdInfo tpAdInfo)V6.4.5新增API。Bidding开始加载。
onBiddingEnd(TPAdInfo tpAdInfo,TPAdError tpAdError)V6.4.5新增API。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安装完成回调。
参数意义同上。

接入代码示例#

接入步骤参考以下代码,开发者需要根据实际需要调整。
mUnityPlayer = new UnityPlayer(this);
...
// 1、接入开屏,只需要在AS端初始化TradPlus SDK,AppId是应用Id,需要您去开发者后台添加APP
TradPlusSdk.initSdk(this, “AppId“);
// 2、初始化广告位。广告位ID在TradPlus后台创建。仅调用一次。
TPSplash tpSplash = new TPSplash(context, "AdUnitId");
FrameLayout frameLayout = new FrameLayout(UnityPlayerActivity.this);
frameLayout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
// 3、设置回调监听(onAdClosed回调监听中remove传入容器)
tpSplash.setAdListener(new SplashAdListener() {
@Override
public void onAdClicked(TPAdInfo tpAdInfo) {}
@Override
public void onAdImpression(TPAdInfo tpAdInfo) {}
@Override
public void onAdClosed(TPAdInfo tpAdInfo) {
Log.i(TAG, "onAdClosed: ");
// 注意这里需要remove
frameLayout.removeAllViews();
}
@Override
public void onAdShowFailed(TPAdError var1, TPAdInfo var2) {}
@Override
public void onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd) {}
@Override
public void onAdLoadFailed(TPAdError tpAdInfo) {}
});
// 4、设置每层广告源回调监听 (可选)
tpSplash.setAllAdLoadListener(new LoadAdEveryLayerListener() {...});
// 5、请求广告
tpSplash.loadAd(frameLayout);
mUnityPlayer.addView(frameLayout);
// 6、检查是否有可用广告(可做几秒倒计时判断,如5秒内无用广告直接跳转进入游戏界面)
if (tpSplash.isReady()) {
// 7、展示广告
tpSplash.showAd();
}
setContentView(mUnityPlayer);
...
mUnityPlayer.requestFocus();