123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- //
- // GDTSplashAd.h
- // GDTMobApp
- //
- // 广点通开屏广告,目前只支持iPhone设备上展示垂直方向的开屏广告
- // Created by GaoChao on 15/8/20.
- // Copyright © 2015年 Tencent. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import <UIKit/UIKit.h>
- #import "GDTSDKDefines.h"
- #import "GDTSplashZoomOutView.h"
- @class GDTSplashAd;
- @protocol GDTSplashAdDelegate <NSObject>
- @optional
- /**
- * 开屏广告成功展示
- */
- - (void)splashAdSuccessPresentScreen:(GDTSplashAd *)splashAd;
- /**
- * 开屏广告素材加载成功
- */
- - (void)splashAdDidLoad:(GDTSplashAd *)splashAd;
- /**
- * 开屏广告展示失败
- */
- - (void)splashAdFailToPresent:(GDTSplashAd *)splashAd withError:(NSError *)error;
- /**
- * 应用进入后台时回调
- * 详解: 当点击下载应用时会调用系统程序打开,应用切换到后台
- */
- - (void)splashAdApplicationWillEnterBackground:(GDTSplashAd *)splashAd;
- /**
- * 开屏广告曝光回调
- */
- - (void)splashAdExposured:(GDTSplashAd *)splashAd;
- /**
- * 开屏广告点击回调
- */
- - (void)splashAdClicked:(GDTSplashAd *)splashAd;
- /**
- * 开屏广告将要关闭回调
- */
- - (void)splashAdWillClosed:(GDTSplashAd *)splashAd;
- /**
- * 开屏广告关闭回调
- */
- - (void)splashAdClosed:(GDTSplashAd *)splashAd;
- /**
- * 开屏广告点击以后即将弹出全屏广告页
- */
- - (void)splashAdWillPresentFullScreenModal:(GDTSplashAd *)splashAd;
- /**
- * 开屏广告点击以后弹出全屏广告页
- */
- - (void)splashAdDidPresentFullScreenModal:(GDTSplashAd *)splashAd;
- /**
- * 点击以后全屏广告页将要关闭
- */
- - (void)splashAdWillDismissFullScreenModal:(GDTSplashAd *)splashAd;
- /**
- * 点击以后全屏广告页已经关闭
- */
- - (void)splashAdDidDismissFullScreenModal:(GDTSplashAd *)splashAd;
- /**
- * 开屏广告剩余时间回调
- */
- - (void)splashAdLifeTime:(NSUInteger)time;
- @end
- @interface GDTSplashAd : NSObject
- /**
- * 委托对象
- */
- @property (nonatomic, weak) id<GDTSplashAdDelegate> delegate;
- /**
- * 拉取广告超时时间,默认为3秒
- * 详解:拉取广告超时时间,开发者调用loadAd方法以后会立即展示backgroundImage,然后在该超时时间内,如果广告拉
- * 取成功,则立马展示开屏广告,否则放弃此次广告展示机会。
- */
- @property (nonatomic, assign) CGFloat fetchDelay;
- /**
- * 开屏广告的背景图片
- * 可以设置背景图片作为开屏加载时的默认背景
- */
- @property (nonatomic, strong) UIImage *backgroundImage;
- /**
- * 开屏广告的背景色
- * 可以设置开屏图片来作为开屏加载时的默认图片
- */
- @property (nonatomic, copy) UIColor *backgroundColor;
- /**
- * 跳过按钮的位置
- */
- @property (nonatomic, assign) CGPoint skipButtonCenter;
- /**
- * 是否需要开屏视频V+功能
- */
- @property (nonatomic, assign) BOOL needZoomOut;
- /**
- * 当广告命中开屏视频V+时,splshZoomOutView有值
- * splashZoomOutView推荐尺寸为9:16,最小尺寸推荐为126*224
- */
- @property (nonatomic, strong, readonly) GDTSplashZoomOutView *splashZoomOutView;
- /**
- 返回广告平台名称
-
- @return 当使用流量分配功能时,用于区分广告平台;未使用时为空字符串
- */
- - (NSString *)adNetworkName;
- /**
- 返回广告的eCPM等级
-
- @return 成功返回一个包含数字的string,@""或nil表示无权限或后台异常
- */
- - (NSString *)eCPMLevel;
- /**
- * 构造方法
- * 详解:placementId - 广告位 ID
- */
- - (instancetype)initWithPlacementId:(NSString *)placementId;
- /**
- 预加载闪屏广告接口
-
- @param placementId 广告位ID
- */
- - (void)preloadSplashOrderWithPlacementId:(NSString *)placementId;
- #pragma mark - Parallel method
- /**
- * 返回广告是否可展示
- * 对于并行请求,在调用showAdInWindow前时需判断下
- * @return 当广告已经加载完成且未曝光时,为YES,否则为NO
- */
- - (BOOL)isAdValid;
- /**
- * 发起拉取广告请求,只拉取不展示
- * 详解:广告素材及广告图片拉取成功后会回调splashAdDidLoad方法,当拉取失败时会回调splashAdFailToPresent方法
- */
- - (void)loadAd;
- /**
- * 展示广告,调用此方法前需调用isAdValid方法判断广告素材是否有效
- * 详解:广告展示成功时会回调splashAdSuccessPresentScreen方法,展示失败时会回调splashAdFailToPresent方法
- */
- - (void)showAdInWindow:(UIWindow *)window withBottomView:(UIView *)bottomView skipView:(UIView *)skipView;
- /**
- * 发起拉取全屏广告请求,只拉取不展示
- * 详解:广告素材及广告图片拉取成功后会回调splashAdDidLoad方法,当拉取失败时会回调splashAdFailToPresent方法
- */
- - (void)loadFullScreenAd;
- /**
- * 展示全屏广告,调用此方法前需调用isAdValid方法判断广告素材是否有效
- * 详解:广告展示成功时会回调splashAdSuccessPresentScreen方法,展示失败时会回调splashAdFailToPresent方法
- */
- - (void)showFullScreenAdInWindow:(UIWindow *)window withLogoImage:(UIImage *)logoImage skipView:(UIView *)skipView;
- /**
- * 构造方法
- * 详解:appId - 媒体 ID
- * placementId - 广告位 ID
- */
- - (instancetype)initWithAppId:(NSString *)appId placementId:(NSString *)placementId GDT_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请使用 initWithPlacementId:");
- /**
- * 广告发起请求并展示在Window中
- * 详解:[可选]发起拉取广告请求,并将获取的广告以全屏形式展示在传入的Window参数中
- * 提示: Splash广告只支持竖屏
- * @param window 展示全屏开屏的容器
- */
- - (void)loadAdAndShowInWindow:(UIWindow *)window GDT_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请分别使用loadAd 和 showAdInWindow:接口");
- /**
- * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面或是自定义View
- * 详解:[可选]发起拉取广告请求,并将获取的广告以半屏形式展示在传入的Window的上半部,剩余部分展示传入的bottomView
- * 请注意1.bottomView需设置好宽高,所占的空间不能过大,并保证高度不超过屏幕高度的 25%。2.Splash广告只支持竖屏
- * @param window 展示开屏的容器
- * bottomView 自定义底部View,可以在此View中设置应用Logo
- */
- - (void)loadAdAndShowInWindow:(UIWindow *)window withBottomView:(UIView *)bottomView GDT_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请分别使用loadAd 和 showAdInWindow:接口");
- /**
- * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面或是自定义View,skipView是自定义的“跳过”样式
- * 详解:[可选]发起拉取广告请求,并将获取的广告以半屏形式展示在传入的Window的上半部,剩余部分展示传入的bottomView
- * 请注意1.bottomView需设置好宽高,所占的空间不能过大,并保证高度不超过屏幕高度的 25%。2.Splash广告只支持竖屏
- * skipView
- * @param window 展示开屏的容器
- * bottomView 自定义底部View,可以在此View中设置应用Logo
- skipView 自定义”跳过“View.
- */
- - (void)loadAdAndShowInWindow:(UIWindow *)window withBottomView:(UIView *)bottomView skipView:(UIView *)skipView GDT_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请分别使用loadAd 和 showAdInWindow:接口");
- /**
- * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面或是自定义View,skipView是自定义的“跳过”样式
- * 详解:[可选]发起拉取广告请求,并将获取的广告全屏展示, 可自定义 logo
- * skipView
- * @param window 展示开屏的容器
- * logoImage 自定义logo 展示在屏幕左下角
- skipView 自定义”跳过“View.
- */
- - (void)loadAdAndShowFullScreenInWindow:(UIWindow *)window withLogoImage:(UIImage *)logoImage skipView:(UIView *)skipView GDT_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请分别使用loadFullScreenAd 和 showFullScreenAdInWindow:接口");
- @end
|