Skip to main content

原生拼接开屏

一、简介#

主要介绍在Android项目中如何集成 TradPlus SDK的原生拼接开屏广告:

原生拼接开屏

  • 基于原生广告拼接开屏
  • 创建广告位时,样式选择选择原生广告,模版选择原生拼接开屏。
  • 如果三方提供的是模版类型的广告,不支持调整素材的位置。

二、集成步骤#

// 1、创建广告位对象。仅调用一次。
TPNativeSplash tpSplash = new TPNativeSplash(activity);
// 2、设置广告监听
tpSplash.setAdListener(new NativeSplashAdListener(){
@Override
public void onAdClosed(TPAdInfo tpAdInfo){
// 注意需要从容器中remove掉TPNativeSplash
adContainer.removeAllViews();
}
...
});
// 3、设置每层广告源回调监听(可选)
tpSplash.setAllAdLoadListener(new LoadAdEveryLayerListener(){...});
// 4、关闭自动展示(可选)
tpSplash.closeAutoShow();
// 5、请求广告。
tpSplash.loadAd("在TP平台创建的广告位ID");
// 6、添加tpSplash到容器中
adContainer.addView(tpSplash);
// 7、展示广告(可选)
tpSplash.showAd();
  • 步骤4和步骤7必须配合调用,如果需要加载成功直接展示,则步骤4和步骤7不用调用。

三、API说明#

3.1 加载类API#

V6.X API TPNativeSplash方法说明
TPNativeSplash(Activity activity)创建广告位对象。仅初始化时调用一次。
setAdListener(NativeSplashAdListener adListener)设置广告监听,其中NativeSplashAdListener是需要实现广告事件回调的接口类。
setAllAdLoadListener(LoadAdEveryLayerListener everyLayerListener)(可选)设置单个源维度的监听回调,其中LoadAdEveryLayerListener是需要实现广告事件回调的接口类。
setNativeAdRender(TPNativeAdRender nativeAdRender)(可选)设置自定义自渲染Native元素。 需要开发者自己渲染三方返回的元素。
closeAutoShow()(可选)关闭自动展示。需要和展示广告showAd()一起调用。
loadAd(String adUnitId)请求广告。
adUnitId是在TP平台创建的广告位ID。
showAd()(可选)展示广告。需要和展示广告closeAutoShow()一起调用。

3.2 监听回调API#

V6.X API NativeSplashAdListener 方法说明
onAdClicked(TPAdInfo tpAdInfo)广告被点击。事件回调监听中的TPAdInfo,请参考回调信息说明。同下
onAdImpression(TPAdInfo tpAdInfo)广告被展示。部分三方源没有该回调。AdColony、AppLovin、Unity Ads 、Admob、Mopub、Criteo、MyTarget无此回调。
onAdClosed(TPAdInfo tpAdInfo)广告被关闭。 从容器中remove掉TPNativeSplash
onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd)广告加载成功。
V9.9.0.1优化回调机制,开发者主动调用一次load才会对应回调一次loaded,不调用不回调。
onAdLoadFailed(TPAdError error)广告加载失败。事件回调监听中的TPAdError,请参考错误码、错误信息说明。同下
onShowSkip(TPAdInfo tpAdInfo)展示跳过按钮。
onClickSkip(TPAdInfo tpAdInfo)点击跳过按钮。
onCountDown(TPAdInfo tpAdInfo,int progress)广告倒计时。progress用于倒计时秒数,单位:秒。
  • (可选)设置单个源维度的监听回调
V6.X API LoadAdEveryLayerListener 方法说明
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)Bidding加载完成。
onAdIsLoading(String adUnitId)调用load之后如果收到此回调,说明广告位仍处于加载状态,无法触发新的一轮广告加载。
V9.0.0新增回调

四、自定义渲染#

  • 高级用法,开发者可以根据需要选择性使用。需要自己渲染返回的元素。
  • `setTitleView`等方法必须要调用。
  • 需要在load()广告前调用。

代码示范

...
// 请求广告前调用
tpSplash.setNativeAdRender(new CustomAdRender());
tpSplash.loadAd("在TP平台创建的广告位ID","sceneId");
...
public class CustomAdRender extends TPNativeAdRender {
@Override
public ViewGroup createAdLayoutView() {
// 以下内容 开发者可以根据自己需求自定义
// setTitleView等方法必须要调用
LayoutInflater inflater = (LayoutInflater) NativeSplashActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewGroup adLayout = (ViewGroup) inflater.inflate(R.layout.tp_native_splash_ad, null);
// 设置标题
TextView nativeTitleView = adLayout.findViewById(R.id.native_title);
setTitleView(nativeTitleView, true);
// 设置内容
TextView nativeSubTitleView = adLayout.findViewById(R.id.native_text);
setSubTitleView(nativeSubTitleView, true);
// 设置下载按钮
TextView nativeCTAView = adLayout.findViewById(R.id.native_cta_btn);
setCallToActionView(nativeCTAView, true);
// 设置icon
ImageView nativeIconImageView = adLayout.findViewById(R.id.native_icon_image);
setIconView(nativeIconImageView, true);
// 设置main image
ImageView nativeMainImageView = adLayout.findViewById(R.id.mopub_native_main_image);
setImageView(nativeMainImageView, true);
return adLayout;
}
}