Search...
Menu

Banner Ads

💡Tips


objective-c Copy
@interface BannerVC () <MCBannerAdViewAdDelegate, MCAdRevenueDelegate>

@property (nonatomic, strong) UIView *adView;
@property (nonatomic, strong) MCBannerAdView *bannerView;
@property (nonatomic, assign) BOOL hasLoaded; 

@end

@implementation BannerVC

#define BannerPlacementID @"your mediation unit id"

//Scene ID
#define BannerSceneID @""

//Configure banner dimensions for example:320x50
#define BannerSize CGSizeMake(320, 50)

#pragma mark - Load Ad
- (void)loadAd {
    if (!self.bannerView) {
        _bannerView = [[MCBannerAdView alloc] initWithPlacementId:BannerPlacementID adFormat:[MCAdFormat banner]];
    }
    self.bannerView.delegate = self;
    self.bannerView.revenueDelegate = self;
    self.bannerView.bannerSize = BannerSize;
    self.bannerView.placement = BannerSceneID;
    
    [self.bannerView loadAd];
}

#pragma mark - MCBannerAdViewAdDelegate
// Ad load success
- (void)didLoadAd:(MCAdInfo *)ad {
    self.hasLoaded = YES; 
}

// Ad load failure
- (void)didFailToLoadAdWithError:(MCError *)error {
    self.hasLoaded = NO; 
}

// Ad display success
- (void)didDisplayAd:(MCAdInfo *)ad {

}

// Ad closed
- (void)didHideAd:(MCAdInfo *)ad {
    [self removeAd];
}

// Ad click
- (void)didClickAd:(MCAdInfo *)ad {

}

// Ad display failure
- (void)didFailToDisplayAd:(MCAdInfo *)ad withError:(MCError *)error {

}

// Triggered when collapsible banner expands (if supported by ad network) 
- (void)didExpandAd:(MCAdInfo *)ad { }

// Triggered when collapsible banner collapses (if supported by ad network)  
- (void)didCollapseAd:(MCAdInfo *)ad { }

#pragma mark - MCAdRevenueDelegate
// Revenue tracking
- (void)didPayRevenueForAd:(MCAdInfo *)ad {

}

objective-c Copy
BOOL isready = self.hasLoaded;

if (isready && self.bannerView) {
    self.adView = [[UIView alloc]init];
    self.adView.backgroundColor =  randomColor;
    [self.adView addSubview:self.bannerView];
    
    [self.view insertSubview:self.adView belowSubview:self.footView];
   
    [self.adView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.height.equalTo(@(_adSize.height));
        make.width.equalTo(@(_adSize.width));
        make.top.equalTo(self.view).offset(100);
    }];
    
    [self.bannerView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.equalTo(self.adView);
    }];
}

3. Resource Release

objective-c Copy
// Remove BannerView
- (void)removeAd {
    if (self.adView && self.adView.superview) {
        [self.adView removeFromSuperview];
        [self.bannerView destroyAd];
        _bannerView = nil;
        self.adView = nil;
        self.hasLoaded = NO;
    }
}

4. Customized Parameter Configuration

objective-c Copy
- (void)loadAd {
    MCBannerAdView *bannerView = [[MCBannerAdView alloc] initWithPlacementId:self.placementID];
    bannerView.delegate = self;
    bannerView.revenueDelegate = self;
    
    [bannerView setLoadExtraParameter:@{
        @"userData": @"test_userData"
    }];
    
    [bannerView setExtraParameter:@{
        @"test_extra_key": @"test_extra_value"
    }];
    
    [bannerView loadAd];
    self.bannerView = bannerView;
}

- (void)didLoadAd:(MCAdInfo *)ad {
    // Retrieve customized parameters
    NSString *originDataJsonString = ad.originData;
}  
Previous
Native Ads
Next
Callback Information
Last modified: 2025-06-26Powered by