使用插屏广告位配置原生广告源
请前往这里查看本功能的支持范围
管理后台创建插屏广告位,并添加或编辑支持广告样式混用的广告源
决定渲染方式,如果选择SDK渲染,不用额外添加集成代码。选择开发者自渲染需要添加额外的集成代码
步骤 1,展示插屏广告时,使用以下 API
[[ATAdManager sharedManager] showInterstitialWithPlacementID:@"your placement id" scene:@"your scene id" inViewController:inViewController delegate:self nativeMixViewBlock:^(ATSelfRenderingMixInterstitialView * _Nonnull selfRenderingMixInterstitialView) {
[weakSelf renderSelfWith:selfRenderingMixInterstitialView];
}];
步骤 2,在nativeMixViewBlock:中对组件进行赋值并布局,示例如下:
- (void)renderSelfWith:(ATSelfRenderingMixInterstitialView *)selfRenderingMixInterstitialView {
CGRect rect = selfRenderingMixInterstitialView.frame;
UIImageView *bigImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, rect.size.width, rect.size.height)];
[bigImage setContentMode:UIViewContentModeScaleAspectFit];
[bigImage sd_setImageWithURL:[NSURL URLWithString:selfRenderingMixInterstitialView.mainImageURLString]];
[selfRenderingMixInterstitialView addSubview:bigImage];
UIView *mediaView = [selfRenderingMixInterstitialView networkMediaView];
if (mediaView) {
mediaView.frame = CGRectMake(0, 0, rect.size.width, rect.size.height);
[selfRenderingMixInterstitialView addSubview:mediaView];
}
UIView *optionView = [selfRenderingMixInterstitialView networkOptionsView];
if (optionView) {
optionView.frame = CGRectMake(0, rect.size.height - 30, 25, 25);
[selfRenderingMixInterstitialView addSubview:optionView];
}
UIImageView *iconImage = [[UIImageView alloc] initWithFrame:CGRectMake(20, rect.size.height - 200, 80, 80)];
[iconImage setContentMode:UIViewContentModeScaleAspectFit];
[iconImage sd_setImageWithURL:[NSURL URLWithString:selfRenderingMixInterstitialView.iconImageURLString]];
[selfRenderingMixInterstitialView addSubview:iconImage];
iconImage.layer.masksToBounds = YES;
iconImage.layer.cornerRadius = 8;
UILabel *label = [[UILabel alloc] init];
label.text = selfRenderingMixInterstitialView.titleString;
label.textColor = [UIColor whiteColor];
label.frame = CGRectMake(120, rect.size.height - 190, 200, 30);
[selfRenderingMixInterstitialView addSubview:label];
UILabel *label2 = [[UILabel alloc] init];
label2.text = selfRenderingMixInterstitialView.textString;
label2.textColor = [UIColor whiteColor];
label2.frame = CGRectMake(120, rect.size.height - 160, 200, 30);
[selfRenderingMixInterstitialView addSubview:label2];
UILabel *domainLabel = [[UILabel alloc] init];
domainLabel.text = selfRenderingMixInterstitialView.domainString;
domainLabel.textColor = [UIColor whiteColor];
domainLabel.frame = CGRectMake(0, rect.size.height - 50, 200, 10);
[selfRenderingMixInterstitialView addSubview:domainLabel];
UILabel *sponsoredLabel = [[UILabel alloc] init];
sponsoredLabel.text = selfRenderingMixInterstitialView.sponsorString;
sponsoredLabel.textColor = [UIColor whiteColor];
sponsoredLabel.frame = CGRectMake(120, rect.size.height - 30, 200, 30);
[selfRenderingMixInterstitialView addSubview:sponsoredLabel];
UILabel *label3 = [[UILabel alloc] init];
label3.text = selfRenderingMixInterstitialView.ctaString;
label3.textColor = [UIColor whiteColor];
label3.frame = CGRectMake(120, rect.size.height - 90, 200, 40);
[selfRenderingMixInterstitialView addSubview:label3];
label3.layer.masksToBounds = YES;
label3.layer.cornerRadius = 20;
label3.backgroundColor = [UIColor blueColor];
label3.textAlignment = NSTextAlignmentCenter;
ATSelfRenderingMixInterstitialModel *mixInterstitialModel = [ATSelfRenderingMixInterstitialModel loadMixInterstitialModel:^(ATSelfRenderingMixInterstitialModel * _Nonnull mixInterstitialModel) {
mixInterstitialModel.titleLabel = label;
mixInterstitialModel.textLabel = label2;
mixInterstitialModel.ctaView = label3;
mixInterstitialModel.iconImageView = iconImage;
mixInterstitialModel.domainLabel = domainLabel;
mixInterstitialModel.advertiserLabel = sponsoredLabel;
}];
[selfRenderingMixInterstitialView bindViewRelation:mixInterstitialModel];
if (mediaView) {
[selfRenderingMixInterstitialView registerClickableViewArray:@[label,bigImage,mediaView,label2,label3,iconImage]];
} else {
[selfRenderingMixInterstitialView registerClickableViewArray:@[label,bigImage,label2,label3,iconImage]];
}
}
温馨提示:
- 当您在后台设置开发者自渲染方式时,如果没在代码实现自渲染布局,则会默认用SDK内置的布局样式进行渲染。
- 当您后台设置开发者自渲染方式并且有在代码设置自渲染布局时,广告背景默认是全透明的,您需要自行实现半屏和全屏的效果。