Use interstitial ad placements to configure native ad sources
Please go here to view the support scope of this feature
Create an interstitial ad placement in the management dashboard and add or edit ad sources that support mixed ad formats
Decide on the rendering method. If you choose SDK rendering, no additional integration code is needed. Choosing developer self-rendering requires additional integration code
Step 1, when displaying interstitial ads, use the following API
[[ATAdManager sharedManager] showInterstitialWithPlacementID:@"your placement id" scene:@"your scene id" inViewController:inViewController delegate:self nativeMixViewBlock:^(ATSelfRenderingMixInterstitialView * _Nonnull selfRenderingMixInterstitialView) {
[weakSelf renderSelfWith:selfRenderingMixInterstitialView];
}];
Step 2, assign values to components and layout in nativeMixViewBlock:, example as follows:
- (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]];
}
}
Tips:
- When you set the developer self-rendering method in the dashboard, if you don't implement self-rendering layout in the code, it will default to using the SDK's built-in layout style for rendering.
- When you set the developer self-rendering method in the dashboard and have set self-rendering layout in the code, the ad background is fully transparent by default, and you need to implement half-screen and full-screen effects yourself.