
使用BUAdSlot创建广告请求参数,然后使用BUNativeAdsManager对象调用loadAdDataWithCount请求广告
BUNativeAd 类为加载广告的接口类,可以通过数据接口每次请求一个广告数据,并能协助 UIView 注册处理各种广告点击事件,设置delegate后可获取数据。rootViewController是必传参数,是弹出落地页广告ViewController的。
方法 | 说明 |
- (instancetype)initWithSlot:(BUAdSlot * _Nullable) slot | 构建请求参数BUAdSlot,详见使用示例 |
- (void)loadAdDataWithCount:(NSInteger)count | 请求广告数量为1到3条,一次请求不超过3个 |
使用BUNativeAdsManager调用loadAdDataWithCount请求广告,并在接收到nativeAdDidLoad回调后获取广告元素并渲染广告样式,通过设置BUNativeAdsManagerDelegate、BUVideoAdViewDelegate、BUNativeAdDelegate代理,获取广告展示、点击等回调监听。
BUNativeAd类提供了原生广告的数据绑定、点击事件的上报,开发者可自行定义信息流广告展示形态与布局。
1、传入clickableViews不为空时,只有clickableViews 和视频区域可以响应点击进行转化
2、传入clickableViews为空时,默认整个广告可响应点击进行转化
方法 | 说明 |
- (void)registerContainer:(__kindof UIView *)containerView withClickableViews:(NSArray<__kindof UIView *> *_Nullable)clickableViews; | 注册绑定点击的View |
分类 | 字段/方法定义 | 字段类型 | 说明 |
获取广告信息 | interactionType | BUInteractionType | 广告交互类型: |
imageAry | NSArray<BUImage *> | 物料图片 | |
icon | BUImage | logo标识 | |
AdTitle | NSString | 广告标题 | |
AdDescription | NSString | 广告描述 | |
source | NSString | 广告源 | |
buttonText | NSString | 文本按钮 | |
imageMode | BUFeedADMode | 信息流广告模式,仅使用于信息流广告,其他广告忽略此属性BUFeedADModeSmallImage = 2, //小图 | |
score | NSInteger | 星级评级:评级标准1~5 | |
commentNum | NSInteger | 评论数 | |
appSize | NSInteger | 广告安装包大小,单位字节 | |
videoDuration | NSInteger | 视频时长 | |
mediaExt | NSDictionary | 透传参数 | |
视频视图 | - (CGFloat)currentPlayTime; | CGFloat | 获取播放进度(当前时间)方法 |
- (void)play; | void | 播放方法 | |
- (void)pause; | - (void)pause; | 暂停方法 | |
@property (nonatomic, weak, readwrite) UIViewController *rootViewController; | / | 必传参数;设置rootViewController,广告跳转的载体,根视图控制器。 | |
@property (nonatomic, assign) BOOL drawVideoClickEnable; | / | 是否允许点击暂停视频,默认NO。仅用于Draw视频广告(沉浸式广告) | |
@property (nonatomic, strong, readwrite, nullable) BUMaterialMeta *materialMeta; | / | BUMaterialMeta广告数据的载体类,用于获取广告的所有属性 | |
@property (nonatomic, assign) BOOL supportAutoPlay; | / | 是否支持自动播放,视频广告的自定义模式,默认支持自动播放 | |
playerPlayIncon: playInconSize: | 自定义暂停按钮样式方法,设置CGSizeZero默认使用图片大小 | ||
相关视图类BUNativeAdRelatedView | dislikeButton | UIButton | dislike按钮,需主动添加视图,接受用户反馈,提高广告的准确性。 |
adLabel | UILabel | 广告标签,需主动添加到视图中。 | |
logoImageView | UIImageView | 广告logo,需主动添加到视图中。 | |
logoADImageView | UIImageView | 广告logo+广告标识语,需主动添加到视图中。 | |
videoAdView | BUVideoAdView | 视频View,需主动添加到视图中。 | |
refreshData:nativeAd | / | 刷新数据回调方法;注意:添加logo、广告标签、视频视图、dislike按钮,每次获取物料信息后需要刷新调用-(void)refreshData:(BUNativeAd *)nativeAd 方法刷新对应的视图绑定的数据. | |
广告状态监听 | nativeAdDidLoad | / | 广告物料加载成功 |
nativeAd:didFailWithError | / | 返回的错误码(error)说明详见链接。Link | |
nativeAdDidBecomeVisible | / | 广告显示回调 | |
nativeAdDidCloseOtherController: interactionType | / | 此回调在广告跳转到其他控制器时,该控制器被关闭时调用 | |
nativeAdDidClick:withView | / | 除视频区域外,点击会响应此回调方法 | |
nativeAd:dislikeWithReason | / | dislike按钮点击回调,需要在此回调方法中进行响应的数据处理 | |
视频播放监听 | videoAdView:didLoadFailWithError:videoAdView | / | 播放失败时调用此方法;返回的错误码(error)详见链接。Link |
videoAdView: stateDidChanged: | / | 当videoAdView回放状态更改时调用此方法。playerState:更改后的状态 | |
playerDidPlayFinish: | / | 播放完成时调用此方法 | |
videoAdViewDidClick:videoAdView | / | 点击回调方法,点击视频区域会触发此回调方法 | |
videoAdViewFinishViewDidClick: | / | 此方法在单击videoAdView的finish视图时被调用 | |
videoAdViewDidCloseOtherController: interactionType | / | :此回调在广告跳转到其他控制器时,该控制器被关闭时调用interactionType:此参数可区分是打开的appstore/网页/视频广告详情页面 |
BUVideoAdView初始化示例
BUVideoAdView视频视图示例
功能简介:dislike 功能是用于收集用户负反馈来优化内容/广告推荐策略、提升用户体验的核心功能,不支持移除
支持范围:自渲染/模版 信息流、自渲染/模版 Banner、 Draw视频不支持Dislike逻辑。
方法 | 说明 |
@property (nonatomic, copy, readonly) NSArray<BUDislikeWords *> *filterWords; | BUDislikeWords数组,如果[filterWords.options count] > 0可展示第二页 |
initWithNativeAd: | 使用nativeAd初始化以获得filterWords返回BUDislike |
didSelectedFilterWordWithReason: | 1)在用户选择不喜欢的原因后调用此方法。(仅适用于使用 BUDislike.filterWords 的对象) |
nativeAd: adContainerViewDidRemoved: | 信息流广告的强制关闭广告回调,需要媒体在此回调做关闭的相关处理避免页面布局异常 |
抖音直播电商预算已成为巨量引擎最具竞争力的优势预算,这类预算的推广目标是抖音直播间,在广告表现形式上按直播拉流样式展示能提升CPM。因此在媒体自渲染的场景上,我们期望与媒体一起优化直播电商广告的样式,提升整体消耗。抖音直播电商预算已成为巨量引擎最具竞争力的优势预算,这类预算的推广目标是抖音直播间,在广告表现形式上按直播拉流样式展示能提升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条广告 | |||
iOS 7100及以上默认支持接入直播拉流预算,若存在以下两种情况可参考文档接入
客户端竞价:以下字段均可从media_ext获取(当pro_type=2时,是闭环电商的直播预算;当pro_type=1时,是闭环电商的短视频预算),部分字段获取不到请联系TS开通对应权限
服务端竞价:以下字段可从ext中的media_ext获取(当pro_type=2时,是闭环电商的直播预算;当pro_type=1时,是闭环电商的短视频预算)
接入文档:穿山甲后台-接入与测试-接入中心-广告变现-服务端竞价SDK接入说明)
获取示例:
直播间信息:ad.mediaExt[@"live_room"]
商品信息:ad.mediaExt[@"product"]
券信息:ad.mediaExt[@"coupon"]
直播:
一级分类 | 字段含义 | 字段名 | 是否必传 | 字段格式 | 备注 |
直播间信息 | 主播头像 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%+。
自渲染信息流:详细接入可参照Demo中的BUDFeedViewController类,广告加载请求部分可参照loadNativeAds方法
自渲染Draw:接入方法可参照demo中BUDDrawVideoViewController类进行相应的对接处理
Online Customer Service24/7 Online Customer Service BotManual customer service, weekdays 10~ 12 o'clock/14~ 19 o'clock