Skip to main content

Draw信息流

一、集成建议#

主要介绍在Android项目中如何集成 TradPlus SDK的Draw信息流广告:

  • (1)Draw信息流广告,一般是广告平台会返回多个原生广告,类似抖音中的广告一样,可以在视频流里插入广告。后台广告位创建如下图:
  • (2)集成请参考Draw信息流Demo
  • (3)支持的广告网络及类型
广告网络支持类型返回说明
快手模版List<View>-
穿山甲模版List<View>-
腾讯自渲染List<Object>V7.4.0开始支持

注意事项#

  • 禁止在oneLayerLoadFailed 回调中执行广告加载的方法,否则会引起多个无用请求。

二、TPNative API说明#

2.1 创建广告位对象#

方法说明
TPNative(Activity activity, String adUnitId)仅初始化时调用一次。
adUnitId是在TP平台创建的广告位ID。

2.2 加载以及销毁广告#

方法说明
loadAd()请求广告
getNativeAd()获取TP的缓存对象。
(1)获取更多三方源的信息。
(2)获取后就会从TradPlus的缓存池中删除,所以不能重复调用,需要将get到的TPCustomNativeAd对象保存下来进行处理。
entryAdScenario(String sceneId)进入广告场景
需和(方法二)一起使用。
广告场景是用来统计进入广告场景的次数和进入场景后展示广告的次数,所以请在准确的位置调用。
onDestroy()销毁广告。
  • TPCustomNativeAd API 介绍
方法类型说明
getCustomNetworkId()String返回三方广告网络编号表。
getCustomNetworkName()String三方广告平台名称。
getCustomNetworkObj()List<Object> 针对腾讯自渲染的List。开发者需要将该对象强转成腾讯的对象NativeUnifiedADData,自己获取素材进行渲染。
getDrawNativeAdList()List<View>获取快手、头条返回的List<View> 。开发者可以直接将成功加载的数据插入到项目的数据列表中进行显示。
onDestroy()-释放资源。
  • 参数说明
参数说明
adUnitId广告位ID,TradPlus后台创建。应用管理——添加应用——添加广告位。注意广告类型创建错误会导致广告展示失败,例如用标准原生的广告位去请求激励视频广告。
sceneId广告场景ID,TradPlus后台创建。应用管理—— 广告场景。具体如何使用,请看广告场景的调用时机和用途说明

2.4 监听回调#

方法说明
setAdListener(NativeAdListener adListener)设置广告监听。
其中NativeAdListener是需要实现广告事件回调的接口类。
setAllAdLoadListener(LoadAdEveryLayerListener everyLayerListener)(可选) 设置单个源维度的监听回调。
V6.4.5新增API。其中LoadAdEveryLayerListener是需要实现广告事件回调的接口类。单个源维度是指TP端的一个广告位下配置多个广告源缓存,每个源的回调。
  • NativeAdListener(广告位维度)
方法说明
onAdClicked(TPAdInfo tpAdInfo)广告被点击。
onAdImpression(TPAdInfo tpAdInfo)广告被展示。
onAdClosed(TPAdInfo tpAdInfo)广告被关闭。
onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd)广告加载成功。
onAdLoadFailed(TPAdError error)广告加载失败。
onAdShowFailed(TPAdError error, TPAdInfo tpAdInfo)广告展示失败。
  • LoadAdEveryLayerListener(可选)(单个源维度)V6.4.5新增API
方法说明
onAdAllLoaded(boolean isSuccess)广告位的状态。loadAd()完毕后用于判断是否有可用广告,true表明有可用广告,false表明没有可用广告。
oneLayerLoadFailed(TPAdError adError, TPAdInfo adInfo)配置多个广告源缓存,当每个广告源加载失败后会都会回调一次。
oneLayerLoaded(TPAdInfo adInfo)配置多个广告源缓存,当每个广告源加载成功后会都会回调一次。
onLoadAdStart(TPAdInfo tpAdInfo)请求广告后,广告开始加载。
onBiddingStart(TPAdInfo tpAdInfo)Bidding开始加载。
onBiddingEnd(TPAdInfo tpAdInfo, TPAdError tpAdError)Bidding加载完成。
V7.3.0新增回调参数TPAdError
onAdIsLoading(String adUnitId)调用load之后如果收到此回调,说明广告位仍处于加载状态,无法触发新的一轮广告加载。
V9.0.0新增回调
  • 监听回调中的参数说明 V6.2.4新增API
参数说明
TPAdInfo广告位ID、三方广告平台、ecpm等信息,具体请参考回调信息说明
TPAdError广告请求失败、广告展示失败的错误码、错误信息,具体请参考错误码、错误信息说明

三、示例代码#

集成请参考Draw信息流Demo

TPNative mTPNative = new TPNative(context, "在TP平台创建的广告位ID");
mTPNative.setAdListener(new NativeAdListener() {
@Override
public void onAdClicked(TPAdInfo tpAdInfo) {
Log.i(TAG, "onAdClicked: ");
}
@Override
public void onAdLoaded(TPAdInfo tpAdInfo, TPBaseAd tpBaseAd) {
Log.i(TAG, "onAdLoaded: ");
// 获取TP的缓存对象 , 注意获取后就会从TradPlus的缓存池中删除,不能重复调用
TPCustomNativeAd tpCustomNativeAd = mTPNative.getNativeAd();
if(tpAdInfo.adSourceName.equals("Tencent Ads")){
//获取成功加载的数据
List<Object> drawNativeAdObjectList = tpCustomNativeAd.getDrawNativeAdObjectList();
//drawNativeAdObjectList开发者需要强转成腾讯的对象NativeUnifiedADData,自己获取素材进行渲染,具体参考DEMO
....
}else {
//获取成功加载的数据
mDrawNativeAdList = tpCustomNativeAd.getDrawNativeAdList();
//并将成功加载的数据插入到你们的数据列表中进行显示
....
}
}
@Override
public void onAdImpression(TPAdInfo tpAdInfo) {
Log.i(TAG, "onAdImpression: ");
}
@Override
public void onAdShowFailed(TPAdError error, TPAdInfo tpAdInfo) {
Log.i(TAG, "onAdShowFailed: ");
}
@Override
public void onAdLoadFailed(TPAdError error) {
Log.i(TAG, "onAdLoadFailed: ");
}
@Override
public void onAdClosed(TPAdInfo tpAdInfo) {
Log.i(TAG, "onAdClosed: ");
}
});
mTPNative.loadAd();