
创建TTAdNative对象
创建广告请求类型参数AdSlot
参数 | 说明 |
setCodeId | 平台创建的代码位ID 以9开头9位数 |
setAdCount | 请求数量1-3条,建议设置1 |
setImageAcceptedSize | 设置请求广告的尺寸 单位:px |
setAdLoadType() | 用于标注此次的广告请求用途为预加载(当做缓存)还是实时加载,方便后续为开发者优化相关策略,传入参数值: |
调用 TTAdNative.loadFeedAd(AdSlot adSlot, FeedAdListener listener)方法加载信息流广告,并在onFeedAdLoad回调通过TTFeedAd广告对象获取广告样式,标题,描述,图片链接等字段并自行渲染;
方法 | 说明 |
onError() | 请求失败回调 |
onFeedAdLoad() | 请求成功回调,参考demo获取广告元素并自行渲染 |
接入方可调用loadDrawFeedAd(AdSlot adSlot, @NonNull DrawFeedAdListener listener)异步加载广告,并在onDrawFeedAdLoad回调将广告view添加到广告容器中。接入方同时可以获取其他广告信息,比如title、buttonText等信息,自定义绘制整个广告区域,可以和自己的应用的样式风格尽可能的接近。
回调 | 说明 |
onError() | 广告请求失败回调 返回的错误码(code)说明详见链接 |
onDrawFeedAdLoad() | 广告请求成功的回调,获取广告视频播放的view并放入广告容器中 |
信息流TTFeedAd、Draw信息流TTDrawFeedAd、Banner TTAdNative都继承TTNativeAd
开发者通过广告对象获取广告元素,如标题,描述,logo等自行渲染广告样式
类型 | 方法 | 返回类型 | 说明 |
回调监听 | setVideoAdListener(TTFeedAd.VideoAdListener var1) | void | 设置广告交互监听回调 |
setDownloadListener(TTAppDownloadListener var1); | void | 设置广告下载监听回调 | |
registerViewForInteraction((ViewGroup) convertView, images, clickViewList, creativeViewList,adViewHolder.mDislike,new TTNativeAd.AdInteractionListener() | void | 重要! 这个涉及到广告计费,必须正确调用。请参考5. 信息流广告行为监听 接入 | |
获取广告元素 | getVideoDuration(); | int | 获取广告视频时长 |
getAdViewWidth() | int | 获取广告view的宽度 | |
getAdViewHeight() | int | 获取广告view的高度 | |
getVideoCoverImage() | TTImage | 获取视频封面图 | |
getAdLogo() | Bitmap | 获取穿山甲穿山甲logo,图片大小:80*80 | |
getTitle() | String | 获取广告标题 | |
getDescription() | String | 获取广告标描述 | |
getIcon() | TTImage | 获取广告icon | |
getSource() | String | 广告描述 | |
getImageList() | List<TTImage> | 获取广告图片Image list | |
getInteractionType() | 获取广告的交互类型 | ||
getImageMode() | int | 获取广告类型 | |
getAdView() | View | 获取视频View,不支持返回视频url,开发者需要将视频view添加到容器 | |
其他 | getMediaExtraInfo() | Map<String, Object> | 获取广告其他信息 |
setCanInterruptVideoPlay(boolean var1) | / | draw广告特有,可在广告加载完成后调用此方法设置是否允许视频区域响应点击,并且暂停/继续播放视频广告。 | |
setPauseIcon(Bitmap var1, int var2) | / | draw广告特有,设置视频广告的暂停图标及其大小。 | |
自定义播放器 | getCustomVideo().getVideoUrl() | String | 视频url |
getCustomVideo().reportVideoPause(long var1) | void | 上报视频暂停播放事件,var1 播放时长 | |
getCustomVideo().reportVideoContinue(long var1); | void | 上报视频继续播放事件,var1 播放时长 | |
getCustomVideo().reportVideoFinish() | void | 上报视频播放完成事件 | |
getCustomVideo().reportVideoFinish() | void | 上报视频播放中断事件,var1 播放时长 | |
getCustomVideo().reportVideoBreak(long var1) | void | 上报视频播放中断事件,var1 播放时长 | |
getCustomVideo().reportVideoAutoStart(); | void | 上报视频自动播放事件, var1 播放时长 | |
getCustomVideo().reportVideoStartError(int var1, int var2) | void | 上报视频开始播放错误事件,var1 错误码,var2 其他错误码 | |
getCustomVideo().reportVideoError(long var1, int var2, int var3) | void | 上报视频开始播放错误事件,var1 播放时长,var2 错误码,var3 其他错误码 |
调用registerViewForInteraction注册广告点击行为(这个涉及到广告计费,必须正确调用),convertView必须使用ViewGroup
加载到信息流/Draw广告后,接入方需要注册在信息流广告中可以点击的View,即ad.registerViewForInteraction()方法,以实现广告的功能交互及计费。包含图文点击区域的注册和创意按钮点击区域的注册。对于落地页广告,用户点击图文广告区域会跳转到相应的落地页,点击附加创意区域会进行电话拨打、应用下载等操作。
getView()方法中调用。方法 | 说明 |
onAdClicked() | 点击普通区域回调 |
onAdCreativeClick() | 点击创意区域回调 |
onAdShow() | 广告展示回调 |
SDK针对应用下载广告提供了下载状态监听器,接入方可注册该监听器以监听下载状态的变化,监听器支持未下载、下载中、下载暂停、下载失败、下载完成、安装完成的回调。
生效范围:穿山甲所有广告类型都可根据此回调去进行下载进度的监听。
方法 | 说明 |
onIdle() | 绑定下载监听回调, 未开始下载 |
onDownloadActive(long totalBytes, long currBytes, String fileName, String appName); | 下载中回调 |
onDownloadPaused(long totalBytes, long currBytes, String fileName, String appName) | 下载暂停回调 |
onDownloadFailed(long totalBytes, long currBytes, String fileName, String appName) | 下载失败回调 |
onDownloadFinished(long totalBytes, String fileName, String appName); | 下载完成回调 |
nInstalled(String fileName, String appName); | 安装完成回调 |
方法 | 说明 |
onIdle() | 绑定下载监听回调 |
onDownloadActive() | 下载中回调 |
onDownloadPaused() | 下载暂停回调 |
onDownloadFailed() | 下载失败回调 |
onDownloadFinished() | 下载完成回调 |
onInstalled() | 安装完成回调 |
方法 | 说明 |
onClickRetry() | 广告点击重试的回调 |
onClick() | 广告点击查看详情或下载回调 |
onVideoAdComplete() | 广告播放完成 |
功能简介:dislike 功能是用于收集用户负反馈来优化内容/广告推荐策略、提升用户体验的核心功能,不支持移除
支持范围:自渲染/模版 信息流、自渲染/模版 Banner、 Draw视频不支持TTAdDislike逻辑。
注意事项: getDislikeDialog(Activity activity)建议传当前activity,否则可能会影响dislike对话框弹出
TTFeedAd.getDislikeDialog()或TTBannerAd.getDislikeDialog()。即可获得TTAdDislike对象。方法 | 说明 |
onItemClick() | 自定义样式情况下用户点击filterWord回调 |
onSelected() | 默认dislike样式,点击filterWord回调。开发者可以在此回调中移除广告 |
onCancel() | 默认dislike样式,点击取消回调 |
onShow() | 默认dislike样式,dislike弹窗展示回到 |
穿山甲SDK在6820及以上版本针对自渲染信息流支持获取应用的下载七项信息:应用名称、开发者、版本号、隐私政策、权限列表、产品功能、备案信息的接口
注册直接下载区域
获取下载应用信息 | 获取广告七要素 | 说明 |
ad.getComplianceInfo( ) | getAppName() | 获取应用名称 |
getAppVersion() | 获取应用版本号 | |
getDeveloperName() | 获取开发者公司名称 | |
getPrivacyUrl() | 获取隐私协议 | |
getPermissionsMap() | 获取权限名称及权限描述列表 | |
getPermissionUrl() | 获取权限列表url | |
getFunctionDescUrl() | 获取产品功能url |
抖音直播电商预算已成为巨量引擎最具竞争力的优势预算,这类预算的推广目标是抖音直播间,在广告表现形式上按直播拉流样式展示能提升CPM。因此在媒体自渲染的场景上,我们期望与媒体一起优化直播电商广告的样式,提升整体消耗。
优化方案 | 方案概述 | 媒体要求 | 示意图(供参考) | |
样式优化 | 直播拉流&直播样式 | 当返回广告时,根据imagemode=166区分是否为直播拉流广告,如是:
|
| |
优惠券样式 | 当返回直播广告(pro_type为2)或短视频广告(pro_type为1)时,根据coupon.has_coupon(1 有优惠券,0无优惠券)区分是否带优惠券,如有获取优惠券金额等字段用作样式展示 | 无 | ||
新增软广位 | 软文 | 在feed流/draw流场景,可以在原有代码位之外新开代码位,将这批代码位线下提供给BD配置只返回特定直播广告 |
| |
push | 在app内任意场景新增push卡片样式,作为特殊代码位,代码位的配置和展示逻辑同上(需标注“来自抖音”),请求时机媒体决定,一次拉取1条广告 | |||
1.5卡 | 在feed流上新增1.5卡片样式,作为特殊代码位,代码位的配置和展示逻辑同上(需标注“来自抖音”),设置X个代码位、每个代码位每次拉取1条广告 | |||
客户端竞价:以下字段均可从media_ext获取(当pro_type=2时,是闭环电商的直播预算;当pro_type=1时,是闭环电商的短视频预算),部分字段获取不到请联系TS开通对应权限
服务端竞价:以下字段可从ext中的media_ext获取(当pro_type=2时,是闭环电商的直播预算;当pro_type=1时,是闭环电商的短视频预算)
接入文档:穿山甲后台-接入与测试-接入中心-广告变现-服务端竞价SDK接入说明)
获取示例:
直播:
一级分类 | 字段含义 | 字段名 | 是否必传 | 字段格式 | 备注 |
直播间信息 | 主播头像 icon | avatar_url | 必传 | string | |
主播名称 | author_nickname | 必传 | string | ||
粉丝量 | follower_count | 必传 | int64 | ||
在线观看人数 | watch_count | 必传 | int64 | 在线观看人数较少,推荐用粉丝量 | |
商品信息 | 商品图片 | img_list | 必传 | []string | |
商品名称 | name | 必传 | string | ||
商品展示价 | effective_price | 必传 | int64 | 单位:元 | |
商品展示价 | effective_price_origin | 必传 | int64 | 单位:分 | |
商品划线价(原价) | regular_price | 非必传 | int64 | 单位:元 | |
商品划线价(原价) | regular_price_origin | 非必传 | int64 | 单位:分 | |
商品分类 | category | 非必传 | object | ||
商品销量 | sell_num | 必传 | int64 | ||
券信息 | 是否有券 | has_coupon | 有券时必传 | bool | |
优惠券类型(26 - 满减券) | type | 有券时必传 | int64 | ||
优惠面额 | amount | 有券时必传 | int64 | 单位:元 | |
优惠券使用门槛 | threshold | 是满减券时会有 | int64 | 单位:元 | |
优惠券开始生效时间 | start_time | 有券时必传 | string | 生效时间和过期时间粒度较粗,可以采用固定文案 “领取后 30 分钟内有效” | |
优惠券过期时间 | expire_time | 有券时必传 | string |
短视频:
一级分类 | 字段含义 | 字段名 | 是否必传 | 字段格式 | 备注 |
店铺信息 | 店铺名称 | shop_name | 必传 | string | |
商品信息 | 商品图片 | image | 必传 | string | |
商品名称 | name | 必传 | string | ||
商品服务 | service_text | string | “限时秒杀” | ||
商品价格 | market_price | 必传 | int64 | 单位:元 | |
商品价格 | market_price_origin | 必传 | int64 | 单位:分 | |
商品最低价格 | discount_price | 非必传 | int64 | 单位:元 | |
商品最低价格 | discount_price_origin | 非必传 | int64 | 单位:分 | |
商品分类 | category | 必传 | object | ||
商品销量 | sell_num | 必传 | int64 | ||
券信息 | 是否有券 | has_coupon | 有券时必传 | bool | |
优惠券类型(26 - 满减券) | type | 有券时必传 | int64 | ||
优惠面额 | amount | 有券时必传 | int64 | 单位:元 | |
优惠券使用门槛 | threshold | 是满减券时会有 | int64 | 单位:元 | |
优惠券开始生效时间 | start_time | 有券时必传 | string | 生效时间和过期时间粒度较粗,可以采用固定文案 “领取后 30 分钟内有效” | |
优惠券过期时间 | expire_time | 有券时必传 | string |
开发者可参考SDK预览工具定出直播拉流广告;
信息流自渲染流量已支持配置“摇一摇”的创意交互形式。完成配置后,用户在展示“摇一摇”样式的信息流广告上可以根据提示摇动手机触发交互,丰富用户体验。根据穿山甲在信息流模板渲染广告上的实验数据,增加摇一摇交互可对CPM提升27%+。
强烈建议:已经展示过且不再使用的广告需要在合适的时机调用onDestroy方法及时对广告进行销毁,避免内存异常场景。
原生Draw广告:请参考Demo中的DrawNativeVideoActivity示例。
原生信息流:使用RecyclerView可参看Demo中FeedRecyclerActivity 、使用ListView请参考Demo中FeedListActivity 。
自渲染信息流直播流样式,具体实例代码可以查看FeedListActivity中image_mode为166的样式实现。
Online Customer Service24/7 Online Customer Service BotManual customer service, weekdays 10~ 12 o'clock/14~ 19 o'clock