Help Center/Details/

自渲染Draw

简介

自渲染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条
        .setAdLoadType(PRELOAD)//推荐使用,用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略
        .build();

参数说明

参数 说明
setCodeId 平台创建的代码位ID 以9开头9位数字
setAdCount 请求数量1-3条,建议设置1
setImageAcceptedSize 设置请求广告的尺寸 单位:px
setAdLoadType() 用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略,传入参数值:
UNKNOWN//未知,默认值,开发者未传入,或当此次加载的广告用途未知时使用
PRELOAD//预加载,当此次加载的广告用途为预加载(当作缓存)时使用
LOAD//实时加载,当此次加载的广告用途为实时播放时使用

请求广告

接入方可调用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<TTDrawFeedAd> 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<TTImage> 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<View> clickViews, @Nullable List<View> creativeViews, AdInteractionListener listener);

    /**
     * 注册可点击的View,click/show会在内部完成
     *
     * @param container     渲染广告最外层的ViewGroup
     * @param clickViews    可点击的View的列表
     * @param creativeViews 用于下载或者拨打电话的View
     * @param listener      点击回调
     */
    void registerViewForInteraction(@NonNull ViewGroup container, @NonNull List<View> clickViews, @Nullable List<View> 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<View> clickViews = new ArrayList<>();
clickViews.add(title);
clickViews.add(desc);
List<View> 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逻辑

Did the content solve your problem?
Contact us