插屏广告适用于应用内自然过渡场景,如页面切换时展示。
#import <SmartdigimktSDK/SDMInterstitialAd.h>
// 创建插屏广告实例
SDMInterstitialAd *interstitialAd = [[SDMInterstitialAd alloc] initAdWithPlacementId:@"placement_id"];
// 设置代理
interstitialAd.loadDelegate = self;
interstitialAd.showDelegate = self;
// 加载广告
[interstitialAd load];
插屏广告支持以下可选参数配置:
// 设置自定义参数(用于数据统计和分析)
NSMutableDictionary *adSourceExtra = [@{} mutableCopy];
[adSourceExtra setValue:@"value1" forKey:@"key1"];
[adSourceExtra setValue:@"value2" forKey:@"key2"];
interstitialAd.adSourceExtra = adSourceExtra;
#pragma mark - SDMPublicLoadingDelegate
// 广告加载成功
- (void)onAdLoaded:(SDMBaseAd *)item {
NSLog(@"插屏广告加载成功");
}
// 广告加载失败
- (void)onAdLoadFail:(SDMBaseAd *)item error:(NSError *)error {
NSLog(@"插屏广告加载失败: %@", error.localizedDescription);
}
#pragma mark - SDMPubInterstitialDelegate
// 广告展示
- (void)onAdShow:(SDMInterstitialAd *)item {
NSLog(@"插屏广告展示");
}
// 广告点击
- (void)onAdClick:(SDMInterstitialAd *)item extra:(nullable NSDictionary *)extra {
NSLog(@"插屏广告点击");
}
// 广告关闭
- (void)onAdClose:(SDMInterstitialAd *)item extra:(nullable NSDictionary *)extra {
NSLog(@"插屏广告关闭");
}
// 广告展示失败
- (void)onAdShowFail:(SDMInterstitialAd *)item error:(NSError *)error {
NSLog(@"插屏广告展示失败: %@", error.localizedDescription);
}
// 视频开始播放
- (void)onAdVideoStart:(SDMInterstitialAd *)item {
NSLog(@"插屏广告视频开始播放");
}
// 视频播放结束
- (void)onAdVideoEnd:(SDMInterstitialAd *)item {
NSLog(@"插屏广告视频播放结束");
}
// 是否以Deeplink形式跳转
- (void)onDeeplinkCallback:(SDMInterstitialAd *)item result:(BOOL)success {
NSLog(@"插屏广告Deeplink跳转: %@", success ? @"成功" : @"失败");
}
// 检查插屏广告是否准备就绪
if ([interstitialAd isReady]) {
NSLog(@"插屏广告已准备就绪");
} else {
NSLog(@"插屏广告未准备就绪");
}
// 检查广告是否准备就绪
if ([interstitialAd isReady]) {
// 展示广告
[interstitialAd showAd];
} else {
NSLog(@"插屏广告未准备就绪");
}
在不再需要广告实例时,及时释放资源避免内存泄漏。
// 销毁插屏广告
[interstitialAd destroy];