Help Center/Details/

Android自渲染基础模块配置说明

TTNativeAd 对象

生效范围:

范围: 自渲染信息流、自渲染Draw、自渲染插屏、自渲染Banner

TTNativeAd接口说明

public interface TTNativeAd {

    /**
     * 获取穿山甲穿山甲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();

    /**
     * 获取原生广告交互类型
     *
     * @return 2:在浏览器打开网页,3:在app中打开,4:下载应用,5:拨打电话 其它:未知类型
     */
    int getInteractionType();


    /**
     * 得到原生广告图片模式
     *
     * @return 3 大图 2小图 4 组图 5 视频 其它:未知类型
     */
    int getImageMode();
    
    /**
     * 获取负反馈选项数据
     *
     * @return
     */
    List<FilterWord> getFilterWords();

    /**
     * 获取“为什么看到此广告”的原因 - //3410版本新增
     */
    PersonalizationPrompt getPersonalizationPrompt();

    /**
     * 得到dislike dialog
     *
     * @param activity 建议传当前activity,否则可能会影响dislike对话框弹出
     * @return
     */
    TTAdDislike getDislikeDialog(Activity activity);

    /**
     * 自定义dislike dialog
     *
     * @param dialog 自定义dialog,需要由外部传入
     * @return
     */
    TTAdDislike getDislikeDialog(TTDislikeDialogAbstract dialog);

    /**
     * 获取下载状态控制器
     */
    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会在内部完成,注册dislike按钮
     *
     * @param container     渲染广告最外层的ViewGroup
     * @param clickViews    可点击的View的列表
     * @param creativeViews 用于下载或者拨打电话的View
     * @param dislikeView   dislike按钮
     * @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 getAdView();

    /**
     * 信息流广告交互回调接口
     */
    interface AdInteractionListener {

        /**
         * 广告点击的回调,点击后的动作由sdk控制
         *
         * @param ad
         */
        void onAdClicked(View view, TTNativeAd ad);

        /**
         * 创意广告点击回调
         *
         * @param view
         * @param ad
         */
        void onAdCreativeClick(View view, TTNativeAd ad);

        /**
         * 广告展示回调
         *
         * @param ad
         */
        void onAdShow(TTNativeAd ad);
    }
}
  • 自渲染banner和自渲染插屏请求广告时使用的type类型不同
  • setNativeAdType(AdSlot.TYPE_INTERACTION_AD)//请求原生广告时候,请务必调用该方法,设置参数为TYPE_BANNER或TYPE_INTERACTION_AD
  • 自渲染banner是在FrameLayout控件上创建一个view 把广告元素添加到view后 把view绑定到对应控件
  • 自渲染插屏是直接创建一个Dialog 在dialog中创建布局 把对应广告元素添加即可

Dislike

生效范围:

自渲染信息流广告、Banner广告的Dislike逻辑

介绍

SDK为接入方提供了信息流广告、Banner广告的Dislike逻辑,当用户选择关闭广告时候,会有提示询问用户,包含“不感兴趣”、“看过了”选项供用户选择。该反馈主要用于头条广告对用户端的广告策略,用来优化提升广告的点击率,提升广告效果及合作伙伴的收益。

注意:
如果使用Dislike逻辑,初始化TTAdNative mTTAdNative =
ttAdManager.createAdNative(activity)时,参数务必传入activity

广告接入Dislike

获得TTFeedAd或TTBannerAd后,调用TTFeedAd.getDislikeDialog()或TTBannerAd.getDislikeDialog()即可获得TTAdDislike对象。DislikeInteractionCallback为用户选择结果回调接口
以下逻辑为穿山甲3500版本SDK中逻辑,3500以下版本SDK开发者可参考对应demo进行集成

private void bindDislikeAction(View dislike, final TTFeedAd ad, boolean isCustomDislike) {
        if (isCustomDislike) {
            // 使用自定义Dislike,用户选择"为什么看到此广告",开发者需要执行startPersonalizePromptActivity逻辑进行跳转
            final DislikeInfo dislikeInfo = ad.getDislikeInfo();
            if (dislikeInfo == null || dislikeInfo.getFilterWords() == null || dislikeInfo.getFilterWords().isEmpty()) {
                return;
            }
            final DislikeDialog dislikeDialog = new DislikeDialog(this, dislikeInfo);
            dislikeDialog.setOnPersonalizationPromptClick(new DislikeDialog.OnPersonalizationPromptClick() {
                @Override
                public void onClick(PersonalizationPrompt personalizationPrompt) {
                    TToast.show(FeedVideoActivity.this, "点击了为什么看到此广告");
                }
            });
            ad.setDislikeDialog(dislikeDialog);
            dislike.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dislikeDialog.show();
                }
            });
        } else {
            // 使用默认Dislike
            final TTAdDislike ttAdDislike = ad.getDislikeDialog(this);
            dislike.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (ttAdDislike != null)
                        ttAdDislike.showDislikeDialog();
                }
            });
        }


    }
关闭广告监听
DislikeInteractionCallback
回调 说明
onItemClick() 自定义样式情况下用户点击filterWord回调
onClick() 自定义样式情况下用户点击了”为什么看到此广告“
onSelected() 默认dislike样式,点击filterWord回调。开发者可以在此回调中移除广告
onCancel() 默认dislike样式,点击取消回调
onShow() 默认dislike样式,dislike弹窗展示回到
onRefuse() 默认dislike样式,用户重复点击dislike按钮回调。3600版本废除

下载监听

生效范围

穿山甲所有广告类型都可根据此回调去进行下载进度的监听

下载回调注册

SDK针对应用下载广告提供了下载状态监听器,接入方可注册该监听器以监听下载状态的变化,监听器支持未下载、下载中、下载暂停、下载失败、下载完成、安装完成的回调。
使用示例:

//广告对象直接调用setDownloadListener方法
AD.setDownloadListener(new TTAppDownloadListener() {
	//未开始下载
    @Override
    public void onIdle() {

   }
   ...
});

下载监听回调说明

public interface TTAppDownloadListener {

    void onIdle(); // 未开始下载

    /**
     * 下载中回调
     * @param totalBytes 安装包总字节数 -1 :未知
     * @param currBytes 当前已下载的字节数
     * @param fileName 下载文件名称
     * @param appName 当前下载的APP名
     */
    void onDownloadActive(long totalBytes, long currBytes, String fileName, String appName); // 下载中

    /**
     * 下载暂停回调
     * @param totalBytes 安装包总字节数 -1 :未知
     * @param currBytes 当前已下载的字节数
     * @param fileName 下载文件名称
     * @param appName 当前下载的APP名
     */
    void onDownloadPaused(long totalBytes, long currBytes, String fileName, String appName);

    /**
     * 下载失败回调
     * @param totalBytes 安装包总字节数 -1 :未知
     * @param currBytes 当前已下载的字节数
     * @param fileName 下载文件名称
     * @param appName 当前下载的APP名
     */
    void onDownloadFailed(long totalBytes, long currBytes, String fileName, String appName);

    /**
     * 下载完成回调
     * @param totalBytes 安装包总字节数 -1 :未知
     * @param fileName 下载文件名称
     * @param appName 当前下载的APP名
     */
    void onDownloadFinished(long totalBytes, String fileName, String appName);

    /**
     * 安装完成回调
     * @param fileName 下载文件名称
     * @param appName 当前下载的APP名
     */
    void onInstalled(String fileName, String appName);

}
TTAppDownloadListener
方法 说明
onIdle() 绑定下载监听回调
onDownloadActive() 下载中回调
onDownloadPaused() 下载暂停回调
onDownloadFailed() 下载失败回调
onDownloadFinished() 下载完成回调
onInstalled() 安装完成回调
Did the content solve your problem?
Contact us