💡Tips
- 为提高开屏广告的加载效率可以参考预置策略
- 可根据实际业务需要传入期望的
开屏广告加载超时时间,建议传入 6000ms - 10000ms- 广告加载超时时间,即可以等待开屏广告加载的最长时间(仅为等待广告加载的超时,不包括广告展示的时间)
- ⚠️ 传入的超时时间太短或没有根据传入的超时时间去作为开屏等待加载广告的时间,可能会影响开屏广告的效果
//导入头文件
#import <AnyThinkSplash/AnyThinkSplash.h>
@interface SplashVC () <ATADXPublicLoadingDelegate, ATADXPubSplashLoadingDelegate>
@property (nonatomic, strong) ATADXSplashAd *splashAd;
@end
@implementation SplashVC
//广告位ID
#define SplashPlacementID @"广告位id"
//场景ID,可选,可在后台生成。没有可传入空字符串
#define SplashSceneID @""
#pragma mark - Load Ad 加载广告
/// 加载广告
- (void)loadAd {
NSMutableDictionary *loadConfigDict = [NSMutableDictionary dictionary];
//开屏超时时间
[loadConfigDict setValue:@(8) forKey:kATSplashExtraTolerateTimeoutKey];
//自定义load参数
[loadConfigDict setValue:@"media_val_SplashVC" forKey:kATAdLoadingExtraMediaExtraKey];
ATADXSplashAd *adInfo = [[ATADXSplashAd alloc] initAdWithPlacementId:SplashPlacementID];
self.splashAd = adInfo;
adInfo.extra = loadConfigDict;
// adInfo.containerView = [self footLogoView];
adInfo.loadDelegate = self;
adInfo.showDelegate = self;
[adInfo loadSplash];
}
/// 可选接入开屏底部LogoView
- (UIView *)footLogoView {
//宽度为屏幕宽度,高度<=25%的屏幕高度(根据广告平台要求而定)
UIView * footerCtrView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kOrientationScreenWidth, 120)];
footerCtrView.backgroundColor = UIColor.whiteColor;
//添加图片
UIImageView * logoImageView = [UIImageView new];
logoImageView.image = [UIImage imageNamed:@"logo"];
logoImageView.contentMode = UIViewContentModeCenter;
logoImageView.frame = footerCtrView.frame;
[footerCtrView addSubview:logoImageView];
//添加点击事件
// UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(footerImgClick:)];
// logoImageView.userInteractionEnabled = YES;
// [logoImageView addGestureRecognizer:tap];
return footerCtrView;
}
#pragma mark - ATADXPublicLoadingDelegate
/// 广告位加载失败
- (void)didFailToLoadADXItem:(ATADXBaseAd *)item
error:(NSError*)error {
}
/// 开屏广告加载完成 - 是否超时回调
- (void)adxDidFinishLoadingSplashAd:(ATADXBaseAd *)item
isTimeout:(BOOL)isTimeout {
}
/// 开屏加载超时
- (void)adxDidTimeoutLoadingSplashAd:(ATADXBaseAd *)item {
}
#pragma mark - Show Ad 展示广告
- (void)showSplash {
//场景统计功能,呈现在后台的 数据报表 -> 漏斗分析报表 -> 到达广告场景 ,在展示广告前调用。可选接入
//[[ATAdManager sharedManager] entrySplashScenarioWithPlacementID:SplashPlacementID scene:SplashSceneID];
BOOL isReady = [self.splashAd isReady];
if (!isReady) {
return;
}
//展示配置,Scene传入后台的场景ID,没有可传入空字符串,showCustomExt参数可传入自定义参数字符串
ATShowConfig *config = [[ATShowConfig alloc] initWithScene:SplashSceneID showCustomExt:@"testShowCustomExt"];
//开屏相关参数配置
NSMutableDictionary *configDict = [NSMutableDictionary dictionary];
UIWindow *window = [UIApplication sharedApplication].keyWindow;
//展示广告,在App原window中展示
[self.splashAd showSplashWithConfig:config window:window inViewController:self.tabBarController extra:configDict];
}
/// 开屏广告已展示
- (void)adxSplashDidShow:(ATADXBaseAd *)item {
}
/// 开屏广告已点击
- (void)adxSplashDidClick:(ATADXBaseAd *)item {
}
/// 开屏广告已关闭
- (void)adxSplashDidClose:(ATADXBaseAd *)item {
}
@optional
/// 开屏广告已打开或跳转深链接页面
- (void)adxSplashDeepLinkOrJump:(ATADXBaseAd *)item
result:(BOOL)success {
}
/// 开屏广告展示失败
- (void)adxSplashDidShowFailed:(ATADXBaseAd *)item
error:(NSError *)error {
}
可参考此文档:客户端竞价