跳到主要内容

原生拼接开屏

一、简介

主要介绍在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;
}
}