简介
自渲染Draw: :适合在竖版全屏视频流中使用,接入方可以控制视频暂停或继续播放,默认视频播放不可干预,视频广告相关配置可以在平台设置。
支持的广告尺寸:竖版视频(宽高比16:9)&横版视频(宽高比9:16)
权限
自渲染Draw广告: 已回收,不再提供创建
自渲染Draw请求方法
创建TTAdNative对象
//创建TTAdNative对象,createAdNative(Context context) context需要传入Activity对象
TTAdNative mTTAdNative = TTAdSdk.getAdManager().createAdNative(this);
创建广告请求类型参数AdSlot
AdSlot adSlot = new AdSlot.Builder()
.setCodeId(codeId)
.setImageAcceptedSize(640, 320) // 单位px
.setAdCount(3) //请求广告数量为1到3条
.build();
参数说明
参数
说明
setCodeId
平台创建的代码位ID 以9开头9位数字
setAdCount
请求数量1-3条,建议设置1
setImageAcceptedSize
设置请求广告的尺寸 单位:px
请求广告
接入方可调用loadDrawFeedAd(AdSlot adSlot, @NonNull DrawFeedAdListener listener)异步加载广告
mTTAdNative.loadDrawFeedAd(adSlot, new TTAdNative.DrawFeedAdListener() {
//请求广告失败
@Override
public void onError(int code, String message) {
}
//请求广告成功
@Override
public void onDrawFeedAdLoad(List ads) {
});
DrawFeedAdListener说明
回调
说明
onError()
广告请求失败回调 返回的错误码(code)表示广告请求失败的原因,详情请见链接
onDrawFeedAdLoad()
广告请求成功的回调,获取广告视频播放的view并放入广告容器中
TTFeedAd 接口说明
通过getAdView()获取广告视频部分的view放入指定容器中,接入方同时可以获取其他广告信息,比如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();
}
Draw广告行为监听
重要!!! AdInteractionListener涉及到广告计费,必须正确调用 convertView必须使用ViewGroup
//响应点击区域的设置,分为普通的区域clickViews和创意区域creativeViews
//clickViews中的view被点击会尝试打开广告落地页;creativeViews中的view被点击会根据广告类型
//响应对应行为,如下载类广告直接下载,打开落地页类广告直接打开落地页。
//注意:ad.getAdView()获取的view请勿放入这两个区域中。
List clickViews = new ArrayList<>();
clickViews.add(title);
clickViews.add(desc);
List creativeViews = new ArrayList<>();
creativeViews.add(action);
ad.registerViewForInteraction(container, clickViews, creativeViews, 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()
广告展示回调
TTDrawFeedAd广告对象说明
/**
* 设置是否允许视频区域响应点击,并且暂停/继续播放
*
* @param canInterruptVideoPlay true 可以影响点击, 默认为false
*/
void setCanInterruptVideoPlay(boolean canInterruptVideoPlay);
/**
* 设置暂停图标和大小
*
* @param pauseIcon
* @param size 单位为dp, 20 到 200之间,默认为 50
*/
void setPauseIcon(Bitmap pauseIcon, int size);
Draw视频监听
//点击监听器必须在getAdView之前调用
ad.setDrawVideoListener(new TTDrawFeedAd.DrawVideoListener() {
/**
* 点击重试按钮
*/
@Override
public void onClickRetry() {
}
/**
* 点击查看详情或下载按钮
*/
@Override
public void onClick() {
}
});
DrawVideoListener说明
方法
说明
onClickRetry()
广告点击重试的回调
onClick()
广告点击查看详情或下载回调
销毁广告对象
在Activity的onDestroy回调方法中销毁广告view
//在Activity的onDestroy方法中清空广告对象
@Override
protected void onDestroy() {
super.onDestroy();
if (ad != null) {
ad = null;
}
}
参考Demo
原生Draw广告请参考Demo中的DrawNativeVideoActivity示例
自渲染Draw注意点:
1、AdInteractionListener涉及到广告计费,必须正确调用 convertView必须使用ViewGroup
2、Draw视频不支持TTAdDislike逻辑