①BUNativeAd 类提供了原生广告的数据类型等各种信息,开发者在获取数据后可在属性 data(BUMaterialMeta)里面获取图片类广告的数据信息,如交互的广告类型、图片、广告logo、广告描述、标题等等。
②BUNativeAd类提供了原生广告的数据绑定、点击事件的上报,开发者可自行定义信息流广告展示形态与布局。
③使用BUAdSlot初始化一个BUNativeAd的对象,调用loadAdData:方法,开发者可以在拉取广告成功的回调中获取到BUMaterialMeta中的广告数据。
④开发者可提前创建好需要展示广告的视图,在创建好的视图中按照自身项目需求渲染广告样式。
⑤开发者可以使用registerContainer:withClickableViews:clickableViews注册绑定点击的 View,包含图片、按钮等等。备注
:
⑥开发者想要获取视频类广告的相关数据信息,需初始化BUNativeAdRelatedView类,来获取需要添加的广告logo、dislike按钮、视频视图等等。
⑦如果当前dislike样式不满足自身项目需求,可参照BUDislike类自行实现dislike按钮样式。
⑧如果需要添加广告logo、dislike按钮、视频视图等,请先初始化BUNativeAdRelatedView。
BUAdSlot 对象为加载广告时需要设置的广告位描述信息,在BUNativeAd、BUNativeAdsManager、BUBannerAdView、BUInterstitialAd中均需要初始化阶段传入。在加载广告前,必须须设置好。一次请求多条广告数据请使用BUNativeAdsManager
BUNativeAd 类为加载广告的接口类,可以通过数据接口每次请求一个广告数据,并能协助 UIView 注册处理各种广告点击事件,设置delegate后可获取数据。rootViewController是必传参数,是弹出落地页广告ViewController的。
BUAdSlot接口说明
字段定义 | 字段名称 | 字段类型 | 备注 |
ID | 代码位 | NSString | 必传参数,代码位ID |
AdType | 广告类型 | BUAdSlotAdType | 必传参数;BUAdSlotAdTypeUnknown = 0, BUAdSlotAdTypeBanner = 1, // bannar广告 BUAdSlotAdTypeInterstitial = 2, // 插屏广告 BUAdSlotAdTypeSplash = 3, // 开屏广告 BUAdSlotAdTypeSplash_Cache = 4, // 缓存的开屏广告 BUAdSlotAdTypeFeed = 5, // 信息流广告 BUAdSlotAdTypePaster = 6, // paster ads BUAdSlotAdTypeRewardVideo = 7, // 激励视频广告 BUAdSlotAdTypeFullscreenVideo = 8, // 全屏视频广告 BUAdSlotAdTypeDrawVideo = 9, // 垂直(沉浸式)视频广告 |
position | 广告位置 | BUAdSlotPosition | 必传参数;BUAdSlotPositionTop = 1, BUAdSlotPositionBottom = 2, BUAdSlotPositionFeed = 3, BUAdSlotPositionMiddle = 4, // 只供插屏广告使用 BUAdSlotPositionFullscreen = 5, |
imgSizeArray | 一组图片尺寸 | NSMutableArray<BUSize *> | // 单位px;可选参数@property (nonatomic, assign) NSInteger width;@property (nonatomic, assign) NSInteger height; |
imgSize | 图片尺寸 | BUSize | // 单位px;必传参数@property (nonatomic, assign) NSInteger width;@property (nonatomic, assign) NSInteger height; |
iconSize | logo尺寸 | BUSize | // 单位px;可选参数@property (nonatomic, assign) NSInteger width;@property (nonatomic, assign) NSInteger height; |
titleLengthLimit | 标题最大长度限制 | NSInteger | 可选参数;广告标题最大长度限制 |
descLengthLimit | 描述最大长度限制 | NSInteger | 可选参数;广告描述最大长度限制 |
dictionaryValue | / | NSDictionary | / |
广告数据的载体类 BUMaterialMeta ,访问可以获取所有的广告属性。
BUMaterialMeta接口说明
字段定义 | 字段名称 | 字段类型 | 备注 |
interactionType | 广告交互类型 | BUInteractionType | BUInteractionTypeCustorm = 0,BUInteractionTypeNO_INTERACTION = 1, // 纯广告展示BUInteractionTypeURL = 2, // 使用浏览器打开网页BUInteractionTypePage = 3, // 在app内打开网页BUInteractionTypeDownload = 4, // 下载appBUInteractionTypePhone = 5, // 打电话BUInteractionTypeMessage = 6, // 发信息BUInteractionTypeEmail = 7, // 发邮件BUInteractionTypeVideoAdDetail = 8 // 视频广告详情页 |
imageAry | 物料图片 | NSArray<BUImage *> | 物料图片 |
icon | logo标识 | BUImage | logo标识 |
AdTitle | 广告标题 | NSString | 广告标题 |
AdDescription | 广告描述 | NSString | 广告描述 |
source | 广告源 | NSString | 广告源 |
buttonText | 文本按钮 | NSString | 文本按钮 |
imageMode | 信息流广告模式 | BUFeedADMode | 仅使用于信息流广告,其他广告忽略此属性BUFeedADModeSmallImage = 2, //小图BUFeedADModeLargeImage = 3, //大图BUFeedADModeGroupImage = 4, //组图BUFeedVideoAdModeImage = 5, // 视频广告 |
score | 星级评级 | NSInteger | 评级标准1~5 |
commentNum | 评论数 | NSInteger | 评论数 |
appSize | 广告安装包大小 | NSInteger | 广告安装包大小,单位字节 |
videoDuration | 视频时长 | NSInteger | 视频时长 |
mediaExt | 透传参数 | NSDictionary | 透传参数 |
相关视图类可以添加logo、广告标签、视频视图、不喜欢按钮等。
BUNativeAdRelatedView接口说明
字段定义 | 字段名称 | 字段类型 | 备注 |
dislikeButton | dislike按钮 | UIButton | 需主动添加视图,接受用户反馈,提高广告的准确性。 |
adLabel | 广告Label | UILabel | 广告标签,需主动添加到视图中。 |
logoImageView | 广告logo | UIImageView | 广告logo,需主动添加到视图中。 |
logoADImageView | 广告logo+广告标识语 | UIImageView | 广告logo+广告标识语,需主动添加到视图中。 |
videoAdView | 视频View | BUVideoAdView | 视频View,需主动添加到视图中。 |
refreshData:nativeAd | / | / | 刷新数据回调方法;注意:添加logo、广告标签、视频视图、dislike按钮,每次获取物料信息后需要刷新调用-(void)refreshData:(BUNativeAd *)nativeAd 方法刷新对应的视图绑定的数据. |
BUVideoAdView 提供了 play、pause、currentPlayTime 等方法,开发者可用于在信息流中实现划入屏幕自动播放,划出屏幕暂停,点击传入已播放时间用于续播等。
BUVideoAdView接口说明
回调方法 | 注释 |
- (CGFloat)currentPlayTime; | 获取播放进度(当前时间)方法 |
- (void)play; | 播放方法 |
- (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: | 自定义暂停按钮样式方法 |
BUVideoAdViewDelegate回调说明
回调方法 | 注释 |
videoAdView:didLoadFailWithError:videoAdView | 播放失败时调用此方法;返回的错误码(error)表示播放失败的原因,所有错误码详情请见链接。Link |
videoAdView: stateDidChanged: | 当videoAdView回放状态更改时调用此方法。playerState:更改后的状态 |
playerDidPlayFinish: | 播放完成时调用此方法 |
videoAdViewDidClick:videoAdView | 点击回调方法,点击视频区域会触发此回调方法 |
videoAdViewFinishViewDidClick: | 此方法在单击videoAdView的finish视图时被调用 |
videoAdViewDidCloseOtherController: interactionType | :此回调在广告跳转到其他控制器时,该控制器被关闭时调用interactionType:此参数可区分是打开的appstore/网页/视频广告详情页面 |
BUVideoAdView初始化事例
通过BUDislike类可以自定义dislike按钮的样式。
BUDislike接口说明
回调方法 | 注释 | 其他说明 |
@property (nonatomic, copy, readonly) NSArray<BUDislikeWords *> *filterWords; | BUDislikeWords数组如果[filterWords.options count] > 0可展示第二页 | - |
initWithNativeAd: | 使用nativeAd初始化以获得filterWords返回BUDislike | - |
didSelectedFilterWordWithReason: | 1)在用户选择不喜欢的原因后调用此方法。(仅适用于使用 BUDislike.filterWords 的对象)2)如果 [filterWords.options count]> 0 。不需要调用这个方法。3)不能更改 BUDislike.filterWords ,filterWord必须是BUDislike中的一个,否则将被过滤。 | - |
nativeAd: adContainerViewDidRemoved: | 信息流广告的强制关闭广告回调,需要媒体在此回调做关闭的相关处理避免页面布局异常 | 3600版本SDK新增,自渲染信息流/Banner广告使用 |
注意:使用BUDislike类必须确保用户点击后调用接口 (didSelectedFilterWordWithReason:) 将原因上报
在线客服智能客服 7*24小时在线人工客服 工作日 10~12点/14~19点