简介
自渲染插屏: : 开发者可以拿到广告的物料信息进行拼接
支持的广告尺寸:
大图(宽高比:1.78的图片)
小图(宽高比:1.52的图片)
组图(三张宽高比:1.52的图片)
权限
自渲染插屏广告: 已回收,不再提供创建
自渲染插屏请求方法
创建TTAdNative对象
//创建TTAdNative对象,createAdNative(Context context) context需要传入Activity对象
TTAdNative mTTAdNative = TTAdSdk.getAdManager().createAdNative(this);
创建广告请求类型参数AdSlot
注意:
1、setImageAcceptedSize 必填字段,期望的图片尺寸(必填)
2、setNativeAdType 请求原生广告时候,请务必调用该方法,请求自渲染插屏设置参数为TYPE_INTERACTION_AD
AdSlot adSlot = new AdSlot.Builder()
.setCodeId(codeId)
.setSupportDeepLink(true)
.setImageAcceptedSize(1080, 1920)
.setNativeAdType(AdSlot.TYPE_INTERACTION_AD)//请求原生广告时候,请务必调用该方法,设置参数为TYPE_INTERACTION_AD
.build();
参数说明
参数
说明
setCodeId()
平台创建的代码位ID 以9开头9位数字
setImageAcceptedSize()
期望的图片尺寸(必填) 单位:px
setNativeAdType()
请求广告类型
setAdCount()
请求广告数量为1-3条
请求广告
接入方可调用loadNativeAd(AdSlot adSlot, @NonNull NativeAdListener listener)异步加载广告
//请求广告
mTTAdNative.loadNativeAd(adSlot, new TTAdNative.NativeAdListener() {
//广告请求失败回调
@Override
public void onError(int code, String message) {
}
//广告请求成功的回调
@Override
public void onNativeAdLoad(List ads) {
}
});
NativeAdListener
回调
说明
onError()
广告请求失败回调 返回的错误码(code)表示广告请求失败的原因,详情请见链接
onNativeAdLoad()
广告请求成功的回调
注意:
addView前需要把控件上所有的view调用removeAllViews方法移除
setNativeAdType(AdSlot.TYPE_INTERACTION_AD) //请求原生广告时候,请务必调用该方法,设置参数为TYPE_INTERACTION_AD
自渲染插屏是直接创建一个Dialog 在dialog中创建布局 把对应广告元素添加即可
TTFeedAd 接口说明
通过getAdView()获取广告信息,比如title、buttonText等信息,自定义绘制整个广告区域,可以和自己的应用的样式风格尽可能的接近
public interface TTFeedAd{
/**
* 获取穿山甲logo,图片大小:80*80
*
* @return bitmap对象
*/
Bitmap getAdLogo();
/**
* 广告标题
*
* @return
*/
String getTitle();
/**
* 广告描述
*
* @return
*/
String getDescription();
/**
* 广告来源
*
* @return
*/
String getSource();
/**
* 广告图标Image
*
* @return
*/
TTImage getIcon();
/**
* 广告图片Image list
*
* @return
*/
List getImageList();
/**
* 得到Feed广告交互类型
*
* @return 2:在浏览器打开网页,3:在app中打开,4:下载应用,5:拨打电话 其它:未知类型
*/
int getInteractionType();
/**
* 得到Feed广告图片模式
*
* @return 3 大图 2小图 4 组图 5 视频 其它:未知类型
*/
int getImageMode();
/**
* 获取下载状态控制器
*/
DownloadStatusController getDownloadStatusController();
/**
* 注册可点击的View,click/show会在内部完成
*
* @param container 渲染广告最外层的ViewGroup
* @param clickView 可点击的View
*/
void registerViewForInteraction(@NonNull ViewGroup container, @NonNull View clickView, AdInteractionListener listener);
/**
* 注册可点击的View,click/show会在内部完成
*
* @param container 渲染广告最外层的ViewGroup
* @param clickViews 可点击的View的列表
* @param creativeViews 用于下载或者拨打电话的View
*/
void registerViewForInteraction(@NonNull ViewGroup container, @NonNull List clickViews, @Nullable List creativeViews, AdInteractionListener listener);
/**
* 注册可点击的View,click/show会在内部完成
*
* @param container 渲染广告最外层的ViewGroup
* @param clickViews 可点击的View的列表
* @param creativeViews 用于下载或者拨打电话的View
* @param listener 点击回调
*/
void registerViewForInteraction(@NonNull ViewGroup container, @NonNull List clickViews, @Nullable List creativeViews, @Nullable View dislikeView, AdInteractionListener listener);
/**
* 设置下载监听器
*/
void setDownloadListener(TTAppDownloadListener downloadListener);
/**
* 兼容下载类广告,使用activity申请权限
*/
void setActivityForDownloadApp(@NonNull Activity activity);
/**
* 获取广告的view,如视频广告的view,在广告平台可设置是否自动播放、是否静音等。
*
* @return
*/
View getAdView();
}
插屏广告行为监听
重要!!! AdInteractionListener涉及到广告计费,必须正确调用 convertView必须使用ViewGroup
注意: 不能在子线程调用 TTInteractionAd.showInteractionAd
/**
* 注册可点击的View,click/show会在内部完成
* @param container 渲染广告最外层的ViewGroup
* @param clickViews 可点击的View的列表
* @param creativeViews 用于下载或者拨打电话的View
*/
//可以被点击的view, 比如标题、icon等,点击后尝试打开落地页,也可以把nativeView放进来意味整个广告区域可被点击
List clickViewList = new ArrayList<>();
clickViewList.add(mAdImageView);
//触发创意广告的view(点击下载或拨打电话),比如可以设置为一个按钮,按钮上文案根据广告类型设定提示信息
List creativeViewList = new ArrayList<>();
//如果需要点击图文区域也能进行下载或者拨打电话动作,请将图文区域的view传入
//creativeViewList.add(nativeView);
creativeViewList.add(mAdImageView);
List imageViewList = new ArrayList<>();
imageViewList.add(mAdImageView);
//重要! 这个涉及到广告计费,必须正确调用。convertView必须使用ViewGroup。
ad.registerViewForInteraction(mRootView, imageViewList,clickViewList, creativeViewList, mDislikeView, new TTNativeAd.AdInteractionListener() {
//点击普通区域回调
@Override
public void onAdClicked(View view, TTNativeAd ad){
}
//点击创意区域回调
@Override
public void onAdCreativeClick(View view, TTNativeAd ad){
}
//广告展示回调
@Override
public void onAdShow(TTNativeAd ad){
}
});
AdInteractionListener说明
回调
说明
onAdClicked()
点击普通区域回调
onAdCreativeClick()
点击创意区域回调
onAdShow()
广告展示回调
销毁广告对象
在Activity的onDestroy回调方法中销毁广告view
//在Activity的onDestroy方法中清空广告对象
@Override
protected void onDestroy() {
super.onDestroy();
if (ad != null) {
ad = null;
}
}
参考Demo
自渲染插屏广告请参考Demo中的NativeInteractionActivity示例
自渲染插屏注意点:
1.不能在子线程调用 TTInteractionAd.showInteractionAd
//show弹窗之前一定要加判断
if (Looper.getMainLooper() != Looper.myLooper()) {
throw new IllegalStateException("不能在子线程调用 TTInteractionAd.showInteractionAd");
}
mAdDialog.show();
2.自渲染插屏广告不支持dislike逻辑