使用横幅广告位配置原生广告。
请前往这里查看本功能的支持范围
1. 管理后台创建横幅广告位,并添加或编辑支持广告样式混用的广告源
2. 如果后台选择由Taku渲染(SDK渲染),此时UI元素无法自行设置布局,您需要正确指定banner容器大小即可,无需修改代码,可跳过以下步骤。
3. 如果后台选择自渲染,需要额外集成代码,请先阅读本注意事项后再进行代码对接。
若您后台配置采用自渲染方案,请注意以下几点:
拿到UI元素自行配置布局,调用展示若没有触发show回调,则表示您渲染的UI元素不够,或是布局存在问题,导致广告平台判定为无效展示,您需要根据实际情况调整以满足广告平台要求。
没在代码实现自渲染返回广告View,则会默认用SDK内置的布局样式进行渲染。
有在代码设置自渲染返回广告View时,则广告背景默认是全透明。
对下图的mainImageView或mediaView的处理,它们的布局是一致的,当mediaView有值时,布局mediaView并显示在最上方。
4.建议渲染的元素与图例说明如下:
广告元素有些必须渲染,有些则是可选渲染,详情请参考本篇末尾
广告元素字段不一定有值,使用前需要判空
#import <Masonry/Masonry.h>
- (void)showBanner {
// 展示前判断广告是否准备好
if ([[ATAdManager sharedManager] bannerAdReadyForPlacementID:@"your banner placementID"]) {
// 移除可能存在的旧BannerView
NSInteger tag = 3333;
[[self.view viewWithTag:tag] removeFromSuperview];
//Retrieve banner view
ATShowConfig *showConfig = ATShowConfig.new;
//若没有场景配置,使用默认场景可传入空字符串
showConfig.scene = @"your scene id";
//展示时透传参数
showConfig.showCustomExt = @"testShowCustomExt";
__weak __typeof(self)weakSelf = self;
ATBannerView *bannerView = [[ATAdManager sharedManager] retrieveBannerViewForPlacementID:@"your banner ad id"
config:showConfig
nativeMixBannerViewBlock:^(ATNativeBannerView * _Nonnull nativeBannerView) {
//Taku后台选择自渲染时,由您进行ATNativeBannerView的约束设置 ,选择Taku渲染则不会回调
[weakSelf developerSlefRender:nativeBannerView];
}];
if (bannerView != nil) {
bannerView.delegate = self;
bannerView.presentingViewController = self;
bannerView.translatesAutoresizingMaskIntoConstraints = NO;
bannerView.tag = tag;
[self.view addSubview:bannerView];
//Layour banner
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:bannerView attribute:NSLayoutAttributeCenterX multiplier:1.0f constant:.0f]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:bannerView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1.0f constant:CGRectGetHeight([UIApplication sharedApplication].statusBarFrame) + CGRectGetHeight(self.navigationController.navigationBar.frame)]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:bannerView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:_adSize.width]];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:bannerView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:_adSize.height]];
} else {
NSLog(@"Banner ad's not ready for placementID:%@", @"your banner placementID");
}
}
- (void)developerSlefRender:(ATNativeBannerView *)nativeBannerView {
// 只渲染部分作为示例
[nativeBannerView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(350);
make.height.mas_equalTo(150);
make.center.mas_equalTo(nativeBannerView.superview);
}];
[nativeBannerView.textLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(nativeBannerView);
make.right.mas_equalTo(nativeBannerView);
make.height.mas_equalTo(30);
make.bottom.mas_equalTo(nativeBannerView.mas_bottom).offset(-5);
}];
[nativeBannerView.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(nativeBannerView);
make.right.mas_equalTo(nativeBannerView);
make.height.mas_equalTo(30);
make.bottom.mas_equalTo(nativeBannerView.textLabel.mas_top).offset(-5);
}];
// 添加点击注册控件
NSMutableArray *regisArray = [NSMutableArray array];
if (nativeBannerView.textLabel) {
[regisArray addObject:nativeBannerView.textLabel];
}
if (nativeBannerView.titleLabel) {
[regisArray addObject:nativeBannerView.titleLabel];
}
[nativeBannerView registerClickableViewArray:regisArray];
}
对于建议渲染的组件,如果您选择不渲染,需要确认该广告平台的展示曝光回调是否正常触发。
API元素 | 类型 | 是否渲染 | 渲染要求说明 |
---|---|---|---|
titleLabel (对应title) | UILabel | 建议渲染 | 广告标题,建议显示 |
textLabel (对应mainText) | UILabel | 可选 | 广告描述文字,根据UI空间决定 |
ctaLabel (对应ctaText) | UILabel | 可选 | 行动号召按钮文字 |
advertiserLabel (对应advertiser) | UILabel | 条件必选 | 使用Yandex平台时必须渲染 |
iconImageView (对应iconUrl/icon) | UIImageView | 建议渲染 | 广告图标,建议显示 |
logoImageView (对应logoUrl/logo) | UIImageView | 必须渲染 | 平台Logo必须显示 |
mainImageView (对应imageUrl/mainImage) | UIImageView | 建议渲染 | 不渲染需确认展示曝光回调 |
adImageView | UIImageView | 建议渲染 | 广告"Ad"标识图片 |
ratingLabel (对应rating) | UILabel | 可选 | 评分信息 |
sponsorLabel | UILabel | 可选 | 赞助商信息 |
domainLabel (对应domain) | UILabel | 条件必选 | 仅Yandex平台必须渲染 |
warningLabel (对应warning) | UILabel | 条件必选 | 仅Yandex平台必须渲染 |
dislikeButton | UIButton | 建议渲染 | 通用关闭按钮,建议保留 |
netWorkMediaView (对应videoUrl) | UIView | 建议渲染 | 视频广告时建议添加,不渲染需确认展示曝光回调 |
netWorkMediaBackView | UIView | 可选 | 媒体视图的背景,当没有MediaView和主图mainImageView时,才会创建这个视图 |
netWorkOptionView | UIView | 建议渲染 | 广告平台选项视图,建议保留 |