Help Center/Details/

iOS模板渲染Draw

简介:

模板渲染Draw:场景应在应用的内容流中与应用内容穿插展示,Draw信息流广告默认全屏展示。

支持的广告尺寸:竖版视频(宽高比16:9)&横版视频(宽高比9:16)

权限:

模版渲染Draw视频广告: 默认提供

模版渲染Draw信息流广告

使用说明

模版Draw信息流广告使用BUNativeExpressAdManager对象调用loadAd请求广告,使用BUNativeExpressAdView对象来进行广告的渲染render,通过设置BUNativeExpressAdViewDelegate代理,获取广告、展示、点击、关闭等回调。

创建广告位对象、请求广告

BUNativeExpressAdManager

请求广告时需要传入广告位对象,广告位对象创建时必须传入广告位ID

必传参数:

字段定义 字段名称 字段类型 备注
BUAdSlot / / 基本信息配置,详见事例
adSize 广告尺寸 CGSize 广告尺寸,默认全屏展示

请求广告前需要配置BUAdSlot广告的基本信息,使用BUNativeExpressAdManager创建对象,使用BUNativeExpressAdManager调用loadAd请求广告

 BUAdSlot *slot1 = [[BUAdSlot alloc] init];
 slot1.ID = self.viewModel.slotID;
 slot1.AdType = BUAdSlotAdTypeDrawVideo; //required
 slot1.isOriginAd = YES; //required
 slot1.position = BUAdSlotPositionTop;
 slot1.imgSize = [BUSize sizeBy:BUProposalSize_DrawFullScreen];
  if (!self.nativeExpressAdManager) {
       self.nativeExpressAdManager = [[BUNativeExpressAdManager alloc] initWithSlot:slot1 adSize:self.view.bounds.size];
    }
  self.nativeExpressAdManager.adSize = self.view.bounds.size;
  self.nativeExpressAdManager.delegate = self;
  [self.nativeExpressAdManager loadAdDataWithCount:count];

注意:

  1. self.nativeExpressAdManager可以重用
  2. 模版Draw信息流广告尺寸adSize默认全屏展示
  3. 模版Draw信息流广告可多条广告同时请求,最大请求数量为3

展示广告

由于官方Demo使用tableView进行的广告的插入展示,直接更新数据源即可更新广告的相关插入展示,此处建议开发者在收到nativeExpressAdSuccessToLoad回调后再进行广告的渲染展示,可保证播放流畅和展示流畅,用户体验更好。

展示Draw信息流广告

在收到nativeExpressAdSuccessToLoad回调后再进行广告的渲染展示,刷新数据源

- (void)nativeExpressAdSuccessToLoad:(BUNativeExpressAdManager *)nativeExpressAd views:(NSArray<__kindof BUNativeExpressAdView *> *)views {
    if (views.count) {
        NSMutableArray *dataSources = [self.dataSource mutableCopy];
        [views enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            BUNativeExpressAdView *expressView = (BUNativeExpressAdView *)obj;
            expressView.rootViewController = self;
            // important: 此处会进行WKWebview的渲染,建议一次最多预加载三个广告,如果超过3个会很大概率导致WKWebview渲染失败。
            [expressView render];
            NSUInteger index = rand() % (self.dataSource.count-3)+2;
            [dataSources insertObject:expressView atIndex:index];
        }];
        self.dataSource = [dataSources copy];
    }
    [self.tableView reloadData];
}

注意事项

  1. self.nativeExpressAdManager可以重用
  2. 模版Draw信息流广告尺寸adSize默认全屏展示
  3. 模版Draw信息流广告可多条广告同时请求,最大请求数量为3

资源

详细接入可参照Demo中的BUDExpressDrawViewController类,广告加载请求部分可参照loadData方法,广告展示渲染部分可参照nativeExpressAdSuccessToLoad方法

Did the content solve your problem?
Contact us