开屏广告适用于应用启动时展示,为用户提供品牌曝光和内容预览。
#import <SmartdigimktSDK/SDMSplashAd.h>
// 创建开屏广告实例
SDMSplashAd *splashAd = [[SDMSplashAd alloc] initAdWithPlacementId:@"placement_id"];
// 设置代理
splashAd.loadDelegate = self;
splashAd.showDelegate = self;
// 加载广告
[splashAd load];
#pragma mark - SDMPublicLoadingDelegate
// 广告加载成功(带超时信息)
- (void)onAdLoaded:(SDMSplashAd *)item isTimeout:(BOOL)isTimeout {
NSLog(@"开屏广告加载成功,是否超时: %@", isTimeout ? @"是" : @"否");
}
// 广告加载失败
- (void)onAdLoadFail:(SDMBaseAd *)item error:(NSError *)error {
NSLog(@"开屏广告加载失败: %@", error.localizedDescription);
}
// 开屏广告加载超时
- (void)onAdLoadTimeout:(SDMSplashAd *)item {
NSLog(@"开屏广告加载超时");
}
#pragma mark - SDMPubSplashDelegate
// 广告展示成功
- (void)onAdShow:(SDMSplashAd *)item {
NSLog(@"开屏广告展示成功");
}
// 广告被点击
- (void)onAdClick:(SDMSplashAd *)item extra:(nullable NSDictionary *)extra {
NSLog(@"开屏广告被点击");
}
// 广告关闭
- (void)onAdClose:(SDMSplashAd *)item extra:(nullable NSDictionary *)extra {
NSLog(@"开屏广告关闭");
}
// 广告展示失败
- (void)onAdShowFail:(SDMSplashAd *)item error:(NSError *)error {
NSLog(@"开屏广告展示失败: %@", error.localizedDescription);
}
// 广告Deeplink跳转回调
- (void)onDeeplinkCallback:(SDMSplashAd *)item result:(BOOL)success {
NSLog(@"开屏广告Deeplink跳转结果: %@", success ? @"成功" : @"失败");
}
在展示广告前,应先检查广告是否已准备就绪。
// 检查广告是否准备就绪
if ([splashAd isReady]) {
NSLog(@"开屏广告已准备就绪,可以展示");
} else {
NSLog(@"开屏广告未准备就绪");
}
开屏广告支持以下可选参数配置:
// 设置开屏广告容器视图
splashAd.containerView = containerView; // 展示开屏广告的底部logo容器视图
// 设置开屏广告窗口
splashAd.window = window; // 展示开屏广告的窗口
// 设置广告加载超时时间(单位:秒)
splashAd.fetchAdTimeout = 5.0; // 加载超时时间设置,单位秒
// 检查广告是否准备就绪
if ([splashAd isReady]) {
// 方法1:使用showAd方法展示广告
[splashAd showAd];
// 方法2:设置展示参数后展示
// 设置展示的窗口
splashAd.window = showWindow;
// 设置展示的视图控制器
splashAd.showViewController = inViewController;
// 调用展示方法
[splashAd showAd];
} else {
NSLog(@"开屏广告未准备就绪");
}
// 检查广告是否准备就绪
if ([splashAd isReady]) {
// 创建自定义底部视图
UIView *customBottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
customBottomView.backgroundColor = [UIColor whiteColor];
// 设置展示参数
splashAd.window = showWindow;
splashAd.showViewController = inViewController;
// 设置底部视图
adInfo.bottomView = customBottomView;
// 展示广告
[splashAd showAd];
} else {
NSLog(@"开屏广告未准备就绪");
}
在不再需要广告实例时,及时释放资源避免内存泄漏。
// 销毁开屏广告
[splashAd destroy];