Skip to main content

原生横幅

一、简介#

主要介绍在Android项目中如何集成 TradPlus SDK的标准原生广告:

> 原生横幅广告

  • nativebanner是用native来拼接的banner,跟native相比是少了大图,在特定的场景可以代替banner广告(填充率和点击率,素材内容和质量上有差异)
  • nativebanner是按照banner的逻辑来实现,所以load成功以后会自动show出来,同时nativebanner也会有自动刷新等功能

二、集成步骤#

  • V6.X 为例

    // 1、初始化广告位。仅调用一次。
    TPNativeBanner tpNativeBanner = new TPNativeBanner(activity);
    // 2、进入广告场景(可选)。sceneId广告场景ID,在TradPlus后台创建。使用该方法`showAd()`时需要传入sceneId。
    tpNativeBanner.entryAdScenario(sceneId);
    // 3、设置广告监听
    tpNativeBanner.setAdListener(new BannerAdListener() {...});
    // 4、设置每层广告源回调监听(可选)
    tpNativeBanner.setAllAdLoadListener(new LoadAdEveryLayerListener() {...});
    // 5、关闭自动展示(可选)
    tpNativeBanner.closeAutoShow();
    // 6、请求广告。AdUnitId是广告位ID,在TradPlus后台创建。参数2可选,不使用`entryAdScenario()`,可直接传空字符串。
    tpNativeBanner.loadAd("adUnitId","sceneId");
    // 7、展示广告(可选)。需要在loaded回调后调用。
    tpNativeBanner.showAd();
  • 步骤5和步骤7必须配合调用,如果需要加载成功直接展示,则步骤5和步骤7不用调用。

具体集成请参考Demo

三、API说明#

3.1 加载类API#

V6.X API TPNativeBanner方法说明
TPNativeBanner(Activity activity)原生横幅广告的初始化方法。仅初始化时调用一次。
setAdListener(BannerAdListener adListener)设置广告监听,其中BannerAdListener是需要实现广告事件回调的接口类。
setAllAdLoadListener(LoadAdEveryLayerListener everyLayerListener)(可选)设置单个源维度的监听回调,其中LoadAdEveryLayerListener是需要实现广告事件回调的接口类。
setNativeAdRender(TPNativeAdRender nativeAdRender)(可选)设置自定义自渲染Native元素。 需要开发者自己渲染三方返回的元素。
closeAutoShow()(可选)关闭自动展示。需要和展示广告showAd()一起调用。
loadAd(String adUnitId)请求广告。adUnitId广告位ID在TradPlus后台创建。
loadAd(String adUnitId,String sceneId)(可选)请求广告并传入广告场景ID。adUnitId广告位ID在TradPlus后台创建。sceneId需和entryAdScenario()配套使用。
entryAdScenario(String sceneId)(可选)进入广告场景。需要在loadAd()后调用。 sceneId广告场景ID,在TradPlus后台创建。广告场景是用来统计进入广告场景的次数和进入场景后展示广告的次数,所以请在准确的位置调用。 了解更多,请看广告场景的调用时机和用途说明
showAd()(可选)展示广告。需要和展示广告closeAutoShow()一起调用。
onDestroy销毁广告。

3.2 监听回调API#

V6.X API BannerAdListener 方法说明
onAdClicked(TPAdInfo tpAdInfo)广告被点击。事件回调监听中的TPAdInfo,请参考回调信息说明。同下
onAdImpression(TPAdInfo tpAdInfo)广告被展示。部分三方源没有该回调。AdColony、AppLovin、Unity Ads 、Admob、Mopub、Criteo、MyTarget无此回调。
onAdClosed(TPAdInfo tpAdInfo)广告被关闭。
onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd)广告加载成功。
onAdLoadFailed(TPAdError error)广告加载失败。事件回调监听中的TPAdError,请参考错误码&错误信息说明。同下
  • (可选)设置单个源维度的监听回调
V6.X API LoadAdEveryLayerListener 方法说明
onAdAllLoaded(boolean isSuccess)V6.4.5新增API。广告位的状态。loadAd()完毕后用于判断是否有可用广告,true表明有可用广告,false表明没有可用广告。
oneLayerLoadFailed(TPAdError adError, TPAdInfo adInfo)V6.4.5新增API。配置多个广告源,d每个广告源加载失败后会都会回调一次。
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加载完成。

四、自定义渲染#

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

代码示范

...
// 请求广告前调用
tpNativeBanner.setNativeAdRender(new CustomAdRender());
tpNativeBanner.loadAd("adUnitId","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);
// 设置AdChoice。 V6.8.0 开始支持
ImageView nativeAdChoice = adLayout.findViewById(R.id.native_ad_choice);
setAdChoiceView(nativeAdChoice, true);
return adLayout;
}
}