Skip to main content

标准原生

一、简介#

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

标准原生广告

  • 原生广告是可以由开发者控制大小,尽可能融入到app的内容中去,从而提升广告的点击和转化
  • native广告分自渲染和模板渲染
  • native 自渲染广告是三方广告平台返回广告素材由开发者来拼接成对于的样式
  • native 模板渲染是三方广告平台返回渲染好的view(很多广告平台可以在对应的后台设置样式),开发者直接添加到一个容器就可以展示出来

二、集成步骤#

  • V6.X 为例
// 1、初始化广告位。仅调用一次。AdUnitId是广告位ID,在TradPlus后台创建。
TPNative tpNative = new TPNative(activity,"AdUnitId");
// 2、进入广告场景(可选)。sceneId广告场景ID,在TradPlus后台创建。使用该方法`showAd()`时需要传入sceneId。
tpNative.entryAdScenario(sceneId);
// 3、设置广告监听
tpNative.setAdListener(new NativeAdListener() {...});
// 4、设置每层广告源回调监听(可选)
tpNative.setAllAdLoadListener(new LoadAdEveryLayerListener() {...});
// 5、请求广告
tpNative.loadAd();
// 6、展示广告。需要在loaded回调后调用。参数2 layoutId布局,布局文件从Download的SDK文件中获取。参数3 不使用`entryAdScenario()`,可直接传空字符串。
tpNative.showAd(adContainer,layoutId,sceneId)

具体集成请参考Demo

三、API说明#

3.1 加载类API#

V6.X API TPNative方法说明
TPNative(Activity activity, String adUnitId)原生广告的初始化方法。仅初始化时调用一次。adUnitId广告位ID在TradPlus后台创建。
entryAdScenario(String sceneId)(可选)进入广告场景。sceneId广告场景ID,在TradPlus后台创建。广告场景是用来统计进入广告场景的次数和进入场景后展示广告的次数,所以请在准确的位置调用。 了解更多,请看广告场景的调用时机和用途说明
setAdListener(NativeAdListener adListener)设置广告监听,其中NativeAdListener是需要实现广告事件回调的接口类。
setAllAdLoadListener(LoadAdEveryLayerListener everyLayerListener)(可选)设置单个源维度的监听回调,其中LoadAdEveryLayerListener是需要实现广告事件回调的接口类。
loadAd()请求广告。
showAd(ViewGroup adContainer, int layoutId)展示广告。参数2 布局文件,可以从Download的SDK文件中获取。 更新SDK到V6.9.1及以上时需要更新tp_native_ad_list_item.xml文件,如果是自定义模版,也需要更新id。 同下
showAd(ViewGroup adContainer, int layoutId, String adSceneId)展示广告。(可选)参数3:设置广告场景ID。sceneId需和entryAdScenario()配套使用。如果不使用entryAdScenario(),可以传空字符串。同下
showAd(ViewGroup adContainer, TPNativeAdRender adRender, String adSceneId)展示广告。(可选)参数2:自定义渲染。需要开发者自己渲染三方返回的元素。TPNativeAdRender四、高级用法:自定义渲染
onDestroy销毁广告。

3.2 监听回调API#

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

3.3 5.X旧版本API#

  • 注意:接入V6.X版本,可跳过这部分API说明。
  • 加载类API

V5.X API TradPlusView方法说明
TradPlusView(Context context)横幅广告的初始化方法。仅初始化时调用一次。
setAdUnitId(String adUnitId)设置广告位ID。AdUnitId广告位ID在TradPlus后台创建。
setAdSize(int width, int height)设置Size。单位:dp。
setAdViewListener(FSAdViewListener listener)设置广告监听回调,其中FSAdViewListener是需要实现广告事件回调的接口类。
setAdLayoutName(String adLayoutName, String adLayoutNameEx)设置广告位布局。"native_ad_list_item","video_ad_item",这些布局文件从Download的SDK文件中获取。
loadAd()请求广告。成功获取广告后,自动展示。
destroy()释放资源。
  • 监听回调API
FSAdViewListener 方法说明
onAdViewClicked(TradPlusView tradPlusView)广告被点击。
onAdViewExpanded(TradPlusView tradPlusView)广告被展示。
onAdViewLoaded(TradPlusView banner)广告加载成功。
onAdViewFailed(TradPlusView tradPlusView, TradPlusErrorCode tradPlusErrorCode)广告加载失败。

四、自定义渲染#

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

代码示范

public class CustomAdRender extends TPNativeAdRender {
@Override
public ViewGroup createAdLayoutView() {
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;
}
}