横幅广告适用于应用界面的固定位置展示,如页面顶部或底部。
#import <SmartdigimktSDK/SDMBannerView.h>
// 创建Banner广告实例
SDMBannerView *bannerView = [[SDMBannerView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 250)];
// 设置广告位ID
bannerView.placementId = @"your_placement_id";
// 设置代理
bannerView.delegate = self;
// 创建广告请求参数(可选)
SDMAdRequest *adRequest = [[SDMAdRequest alloc] init];
// 加载广告
[bannerView loadWithAdRequest:adRequest];
实现 SDMBannerViewDelegate
协议来处理广告相关的回调:
#pragma mark - SDMBannerViewDelegate
// 广告加载成功
- (void)onAdLoaded:(SDMBannerView *)bannerView {
NSLog(@"Banner广告加载成功");
}
// 广告加载失败
- (void)onAdLoadFail:(SDMBannerView *)bannerView error:(NSError *)error {
NSLog(@"Banner广告加载失败: %@", error.localizedDescription);
}
// 广告展示成功
- (void)onAdShow:(SDMBannerView *)bannerView {
NSLog(@"Banner广告展示成功");
}
// 广告被点击
- (void)onAdClick:(SDMBannerView *)bannerView extra:(nullable NSDictionary *)extra {
NSLog(@"Banner广告被点击");
}
// 广告关闭
- (void)onAdClose:(SDMBannerView *)bannerView extra:(nullable NSDictionary *)extra {
NSLog(@"Banner广告关闭");
}
// Deeplink跳转结果回调
- (void)onDeeplinkCallback:(SDMBannerView *)bannerView result:(BOOL)success {
NSLog(@"Banner广告Deeplink跳转结果: %@", success ? @"成功" : @"失败");
}
Banner广告在加载成功后会自动展示,只需将Banner广告视图添加到您的视图层级中即可:
// 将Banner广告添加到视图中
[self.view addSubview:bannerView];
// 设置Banner广告的约束
[bannerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view.mas_top).offset(100);
make.centerX.equalTo(self.view.mas_centerX);
make.width.equalTo(@(bannerView.frame.size.width));
make.height.equalTo(@(bannerView.frame.size.height));
}];
// 检查Banner广告是否准备就绪
if ([bannerView isAdReady]) {
NSLog(@"Banner广告已准备就绪");
} else {
NSLog(@"Banner广告未准备就绪");
}
在不再需要广告实例时,及时释放资源避免内存泄漏。
// 销毁Banner广告
[bannerView destroy];