Menu

Custom Interstitial Ads

1. Description

Use interstitial ad placements to configure native ad sources

Please go here to view the support scope of this feature

2. Developer Dashboard Configuration

  • 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

3. SDK Configuration

  • If configured to choose SDK rendering: Rendered by the SDK's built-in layout style, no additional code setup required
  • If configured to choose developer self-rendering: Do not use the SDK's built-in layout style, customize style rendering for ads. Use the following method when displaying ads:

Step 1, when displaying interstitial ads, use the following API

objc Copy
[[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:

objc Copy
- (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:

  1. 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.
  2. 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.
Previous
Interstitial Ads
Next
Banner Ads
Last modified: 2025-07-31Powered by