
draw广告分为自渲染广告和模板广告,类型取决于三方SDK的支持情况。SDK 提供draw广告的数据绑定、点击事件的上报。
注意事项:
支持一键复制实现融合基础功能实现,工具地址。
使用BUNativeAdsManager对象调用loadAd请求广告,详细示例请参见Demo中BUMDDrawAdViewController类。
方法 | 说明 |
@property (nonatomic, strong, nullable) BUAdSlot *adslot; | 广告配置对象 |
@property (nonatomic, strong, nullable) NSArray<BUNativeAd *> *data; | |
@property (nonatomic, weak, nullable) id<BUNativeAdsManagerDelegate> delegate; | BUNativeAdsManagerDelegate,聚合维度使用BUMNativeAdsManagerDelegate |
@property (nonatomic, weak, nullable) id<BUNativeExpressAdViewDelegate> nativeExpressAdViewDelegate; | BUNativeExpressAdViewDelegate |
@property (nonatomic, assign, readwrite) CGSize adSize; | 广告尺寸 |
- (instancetype)initWithSlot:(BUAdSlot * _Nullable) slot; | 创建广告对象 |
- (void)loadAdDataWithCount:(NSInteger)count; | 加载广告数量 |
@property (nonatomic, strong, nullable, readonly) BUNativeAdsManagerMediation *mediation; | 当使用聚合广告位时,存在该属性,可获取聚合维度相关功能 |
方法 | 说明 |
@property (nonatomic, weak) UIViewController *rootViewController; | 必要,设置广告详情跳转控制器 |
- (void)destory; | 不再使用加载成功后回调的视图对象组时,可调用该方法释放占用的内存 |
@property (nonatomic, assign, readonly) BOOL isLoading; | 广告是否加载中 |
- (void)addParam:(id)param withKey:(NSString *)key; | 添加参数param 参数值key 参数key |
- (NSArray<BUMAdLoadInfo *> *)getAdLoadInfoList; | 一次waterfall中各adn代码位加载广告失败原因,建议调用时机:展示广告时/超时时/全部返回报错时;返回nil表示一次加载无代码位加载失败或其加载无响应 |
方法 | 说明 |
- (void)nativeAdsManagerSuccessToLoad:(BUNativeAdsManager *)adsManager nativeAds:(NSArray<BUNativeAd *> *_Nullable)nativeAdDataArray; | 加载成功 |
- (void)nativeAdsManager:(BUNativeAdsManager *)adsManager didFailWithError:(NSError *_Nullable)error; | 加载失败 |
BUNativeAd为请求原生广告返回的广告类,可直接将BUMCanvasView添加到父视图上进行展示,目前仅支持frame布局方式,不支持自动布局。
方法 | 说明 |
@property (nonatomic, weak, readwrite, nullable) id<BUNativeAdDelegate> delegate; | BUNativeAdDelegate,聚合维度使用BUMNativeAdDelegate |
@property (nonatomic, strong, readwrite, nullable) BUAdSlot *adslot; | 广告对象 |
@property (atomic, strong, readonly, nullable) BUMaterialMeta *data; | 物料信息 |
@property (nonatomic, weak, readwrite) UIViewController *rootViewController; | 必要,设置广告详情跳转控制器 |
- (instancetype)initWithSlot:(BUAdSlot *)slot; | 创建广告对象 |
- (void)registerContainer:(__kindof UIView *)containerViewwithClickableViews:(NSArray<__kindof UIView *> *_Nullable)clickableViews; | 在原生广告视图中注册可点击视图。 containerView:必要;原生广告的容器视图 clickableViews:可选;可点击的视图数组 |
- (void)unregisterView; | 取消注册视图 |
- (void)loadAdData; | 加载广告 |
- (NSString *)getAdCreativeToken; | 物料ID聚合维度不支持 |
@property (nonatomic, strong, nullable, readonly) BUNativeAdMediation *mediation; | 当使用聚合广告位时,存在该属性,可获取聚合维度相关功能 |
方法 | 说明 |
@property (nonatomic, assign, readonly) BOOL isExpressAd; | 是否是模板广告,由adapter开发者实现 |
@property (nonatomic, strong, readonly, nonnull)BUMCanvasView *canvasView; | 如果是模板广告可直接将该视图添加到需要展示的位置,如果是非模板广告可对该视图内部控件进行布局操作 |
@property (nonatomic, weak, readwrite, nullable) id<BUMNativeAdVideoDelegate> videoDelegate; | 视频播放代理协议对象 |
@property (nonatomic, weak, readwrite, nullable) id<BUMNativeAdExpressDelegate> expressDelegate; | 聚合混出模板广告时,模板广告代理协议对象 |
@property (nonatomic, strong, readonly) BUMVideoAdReporter *videoAdReporter; | 自渲染视频类广告事件上报对象,仅采用自定义视频播放器时需要上报,部分ADN需申请白名单 |
- (void)render; | [必要]渲染模板广告,开发者调用前无需区分是否为模板广告,GroMore会自行处理 |
- (void)reSizeMediaView; | 更新模板媒体视图大小 |
@property (nonatomic, assign, readonly) BOOL isReady; | 是否已经准备广告展示,理论上在广告加载回调后即为YES,但受一些因素的影响(例如广告失效),可能为NO。建议在广告展示前调用该方法进行是否可以展示 |
- (nullable BUMRitInfo *)getShowEcpmInfo; | 返回显示广告对应的披露信息 |
- (BUDictionary *_Nullable)extraData; | 广告的扩展信息,可能为nil |
@property (nonatomic, copy, readonly) NSString *adViewID; | 广告视图的唯一标识 |
自渲染广告物料信息
方法 | 说明 |
@property (nonatomic, assign) BUInteractionType interactionType; | 交互类型 |
@property (nonatomic, strong) NSArray<BUImage *> *imageAry; | 图片数组 |
@property (nonatomic, strong) BUImage *icon; | logo图标 |
@property (nonatomic, copy) NSString *AdTitle; | 广告标题 |
@property (nonatomic, copy) NSString *AdDescription; | 广告描述 |
@property (nonatomic, copy) NSString *source; | 广告源 |
@property (nonatomic, copy) NSString *buttonText; | 创意区域按钮文本 |
@property (nonatomic, assign) BUFeedADMode imageMode; | 广告样式 |
@property (nonatomic, assign) NSInteger score; | 评分 |
@property (nonatomic, assign) NSInteger commentNum; | 评论数 |
@property (nonatomic, assign) NSInteger appSize; | app大小 |
@property (nonatomic, assign) NSInteger videoDuration; | 视频时长 |
@property (nonatomic, copy, readonly) NSString *videoUrl; | 视频url |
@property (nonatomic, assign, readonly) BOOL allowCustomVideoPlayer; | 自定义播放器 |
@property (nonatomic, assign, readonly) NSInteger videoResolutionWidth; | 视频分辨率宽度聚合维度不支持此场景 |
@property (nonatomic, assign, readonly) NSInteger videoResolutionHeight; | 视频分辨率高度聚合维度不支持此场景 |
@property (nonatomic, copy) NSArray<BUDislikeWords *> *filterWords; | dislike原因 |
@property (nonatomic, strong) BUPersonalizationPrompts *personalPrompts DEPRECATED_MSG_ATTRIBUTE("The 'personalPrompts' api will not work and will be removed in the future."); | 个性化广告聚合维度不支持此场景 |
@property (nonatomic, copy) NSDictionary *mediaExt; | 配置参数 |
@property (nonatomic, copy) NSString *ADXName; | adx名称 |
@property (nonatomic, strong) BUAdGroupInfo *groupInfo;- (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError * __autoreleasing *)error; | 聚合维度不支持此场景 |
@property (nonatomic, strong, nullable, readonly) BUMaterialMetaMediation *mediation; | 当使用聚合广告位时,存在该属性,可获取聚合维度相关功能 |
方法 | 说明 |
@property (nonatomic, strong, readonly, nullable) BUImage *adLogo; | 广告adn的logo,如果logo有宽高,请尽量配置width和height |
@property (nonatomic, assign, readonly) CGFloat videoAspectRatio; | 视频纵横比(width/height),如果没有值或者异常返回0 |
@property (nonatomic, strong, readonly, nullable) NSString *appPrice; | app购买价格,例如'免费',没有则为nil |
@property (nonatomic, copy, readonly, nullable) NSString *advertiser; | 广告商标识,广告商的名称或者链接 |
@property (copy, nonatomic, readonly, nullable) NSString *brandName; | 品牌名称,若广告返回中无品牌名称则为空 |
控件信息
方法 | 说明 |
@property (nonatomic, strong, readonly, nullable) BUMaterialMeta *data; | 非模板Native广告的物料数据,模板广告时为nil |
@property (nonatomic, assign, readonly) BOOL hasSupportActionBtn; | 是否支持自定义事件按钮,如果为YES,开发者可以配置 callToActionBtn 的UI数值,默认为YES |
@property (nonatomic, strong, readonly, nonnull) UILabel *titleLabel; | 广告标题,需要开发者根据广告物料自己指定展示内容 |
@property (nonatomic, strong, readonly, nonnull) UILabel *descLabel; | 广告描述,需要开发者根据广告物料自己指定展示内容 |
@property (nonatomic, strong, nullable) UIImageView *iconImageView; | 广告图标,可能不存在,需要开发者根据广告物料自己指定展示内容 |
@property (nonatomic, strong, readonly, nonnull) UIImageView *imageView; | 广告大图,需要开发者根据广告物料自己指定展示内容,系统会自动创建,但内容需开发者自行校验 |
@property (nonatomic, strong, readonly, nonnull) UIButton *callToActionBtn; | 广告详情/下载按钮,可能不存在,文案内容需要开发者根据广告物料自己获取 |
@property (nonatomic, strong, nullable) UIView *advertiserView; | 广告商视图,可能不存在,开发者可自行赋值处理 |
@property (nonatomic, strong, nullable) UIButton *dislikeBtn; | 广告关闭按钮,可能不存在,开发者需自行处理响应事件 |
@property (nonatomic, strong, nullable) UIView *adLogoView; | 广告LOGO视图,可能不存在,需要开发者根据广告物料自己指定展示内容 |
@property (nonatomic, strong, readonly, nullable) UIView *mediaView; | 媒体视图,即视频广告的视频图层,非视频广告不存在该视图 |
- (void)registerClickableViews:(nullable NSArray<UIView *> *)views; | 注册可点击区域,由GroMore透传数据,是否生效由adapter 和 adn 决定views 可响应点击操作的视图 |
方法 | 说明 |
- (void)nativeAdDidLoad:(BUNativeAd *)nativeAd; | 广告加载成功聚合维度不支持此场景 |
- (void)nativeAdDidLoad:(BUNativeAd *)nativeAd view:(UIView *_Nullable)view; | 广告加载成功聚合维度不支持此场景 |
- (void)nativeAd:(BUNativeAd *)nativeAd didFailWithError:(NSError *_Nullable)error; | 广告加载失败 |
- (void)nativeAdDidBecomeVisible:(BUNativeAd *)nativeAd; | 广告展示 |
- (void)nativeAdDidCloseOtherController:(BUNativeAd *)nativeAd interactionType:(BUInteractionType)interactionType; | 此方法在另一个控制器关闭时调用。interactionType:在app中打开appstore或打开网页或查看视频广告详情页面。 |
- (void)nativeAdDidClick:(BUNativeAd *)nativeAd withView:(UIView *_Nullable)view; | 广告点击 |
- (void)nativeAd:(BUNativeAd *_Nullable)nativeAd dislikeWithReason:(NSArray<BUDislikeWords *> *_Nullable)filterWords; | dislike原因 |
- (void)nativeAd:(BUNativeAd *_Nullable)nativeAd adContainerViewDidRemoved:(UIView *)adContainerView; | 删除广告视图容器nativeAd:广告材料adContainerView:广告视图容器聚合维度不支持场景。 |
- (void)nativeAdWillPresentFullScreenModal:(BUNativeAd *_Nonnull)nativeAd; | 广告即将展示全屏页面/商店时触发nativeAd 广告视图 |
方法 | 说明 |
- (void)nativeAdWillPresentFullScreenModal:(BUNativeAd *_Nonnull)nativeAd; | 广告即将展示全屏页面/商店时触发 |
- (void)nativeAdExpressViewRenderSuccess:(BUNativeAd *_Nonnull)nativeAd; | 聚合维度混出模板广告时渲染成功回调,可能不会回调 |
- (void)nativeAdExpressViewRenderFail:(BUNativeAd *_Nonnull)nativeAd error:(NSError *_Nullable)error; | 聚合维度混出模板广告时渲染失败回调,可能不会回调 |
- (void)nativeAdVideo:(BUNativeAd *_Nullable)nativeAd stateDidChanged:(BUPlayerPlayState)playerState; | 当视频播放状态改变之后触发 |
- (void)nativeAdVideoDidClick:(BUNativeAd *_Nullable)nativeAd; | 广告视图中视频视图被点击时触发 |
- (void)nativeAdVideoDidPlayFinish:(BUNativeAd *_Nullable)nativeAd; | 广告视图中视频播放完成时触发 |
- (void)nativeAdShakeViewDidDismiss:(BUNativeAd *_Nullable)nativeAd; | 广告摇一摇提示view消除时调用该方法 |
- (void)nativeAdVideo:(BUNativeAd *_Nullable)nativeAdView rewardDidCountDown:(NSInteger)countDown; | 激励信息流视频进入倒计时状态时调用 |
注意事项:
adslot.mediation.bidNotify = YES后可触发didReceiveBidResult,开发者可在该方法中获取竞价结果、价格等信息。详细示例请参见Demo中BUMDDrawAdViewController类。
Online Customer Service24/7 Online Customer Service BotManual customer service, weekdays 10~ 12 o'clock/14~ 19 o'clock