开屏

优质
小牛编辑
140浏览
2023-12-01

1. 包含头文件

#import <AdHubSDK/AdHubSDK.h>

2. AdHubSplash 的创建和初始化

在AdHubAppDelegate头文件中导入头文件并声明实例以及声明代理,(开屏需要在AppDelegate中实现,如在其他页面创建可能会出现落地页无法弹出的问题,或者在启动时不会销毁掉的VC里)

#import <AdHubSDK/AdHubSDK.h>

@interface AdHubAppDelegate () <AdHubSplashDelegate>

@property (nonatomic, strong) AdHubSplash *splash;

@end

创建和初始化广告,广告是异步的,所以不需要修改APP原有逻辑,初始化广告的方法放到

[self.window makeKeyAndVisible];

之后进行初始化

//  初始化广告位
self.splash = [[AdHubSplash alloc]initWithSpaceID:@"在平台申请的广告位ID" spaceParam:@""];
//  设置当前的VC,用于广告位点击跳转
self.splash.adhubSplashViewController = self.window.rootViewController;
self.splash.delegate = self;
[self.splash ADH_loadAndDisplayUsingKeyWindow];

如果需要设置底部的logoView可以调用相应的代理 如果异步加载先加载的首页问题,可以创建ImageView添加到Window上,在广告成功和失败时进行移除。 详细代码参考Demo

3. AdHubSplash 主要属性说明

/**
spaceID广告位ID
spaceParam备用参数
*/
@property (nonatomic, copy, readonly) NSString *spaceID;
@property (nonatomic, copy, readonly) NSString *spaceParam;

/**
用来接收开屏广告读取和展示状态变化通知的 delegate
*/
@property (nonatomic, weak) id<AdHubSplashDelegate> delegate;

/**
adhubSplashViewController 展示view的控制器或者弹出落地页的需要的控制器,此参数不能为空
*/
@property (nonatomic, weak) UIViewController *adhubSplashViewController;

/**
showLaunchImage 是否展示启动图片到广告显示。
ps:广告异步加载,会先进入主页,广告加载完成后在弹出,此属性可控制是否进入先进入主页。默认是不开启。
请在load广告前设置是否需要。
*/
@property (nonatomic, assign) BOOL showLaunchImage;

/**
初始化方法
@param spaceID 广告位 ID
@param spaceParam 广告位参数 可填写任意字符串
@return 开屏广告对象
*/
- (instancetype)initWithSpaceID:(NSString *)spaceID
spaceParam:(NSString *)spaceParam NS_DESIGNATED_INITIALIZER;

/**
请求加载开屏广告并在 UIWindow 中展现
*/
- (void)ADH_loadAndDisplayUsingKeyWindow:(UIWindow *)window;

/**
获取启动图片,特殊需求时获取
@return 启动Image
*/
+ (UIImage *)ADH_launchImage;

4. AdHubSplashDelegate 的方法说明

/**
@return 展示下部logo位置,需要给传入view设置尺寸。
*/
- (UIView *)ADH_splashBottomView;

/**
开屏展现
*/
- (void)ADH_splashDidPresentScreen:(AdHubSplash *)adHubSplash;

/**
开屏点击
*/
- (void)ADH_splashDidClick:(AdHubSplash *)adHubSplash;

/**
开屏消失
*/
- (void)ADH_splashDidDismissScreen:(AdHubSplash *)adHubSplash;

/**
开屏请求失败
*/
- (void)ADH_splash:(AdHubSplash *)adHubSplash didFailToLoadAdWithError:(AdHubRequestError *)error;