SDK说明


开屏广告

<h1>开屏广告(WindMillSplashAd)<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A-windmillsplashad">​</a></h1> <h2>1. 接口说明<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_1-%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E">​</a></h2> <h3>WindMillAdRequest<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#windmilladrequest">​</a></h3> <p>objective-c</p> <pre><code>@interface WindMillAdRequest : NSObject /// 【可选】,媒体用户ID。 @property (nonatomic,copy) NSString *userId; /// 【必传】,广告位ID。 @property (nonatomic,copy) NSString *placementId; /// 【可选】,服务端激励回传时,透传参数,key和value支持自定义。 @property (nonatomic,strong) NSDictionary&amp;lt;NSString *, NSString *&amp;gt; *options; + (instancetype)request; @end</code></pre> <h3>WindMillSplashAd<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#windmillsplashad">​</a></h3> <p>objective-c</p> <pre><code>NS_ASSUME_NONNULL_BEGIN @interface WindMillSplashAd : NSObject /// 广告代理对象 [必传] @property (nonatomic, weak) id&amp;lt;WindMillSplashAdDelegate&amp;gt; delegate; /// 广告位ID @property (nonatomic,strong, readonly) NSString *placementId; /// 视图控制器 [必传] @property (nonatomic, weak) UIViewController *rootViewController; /// 在广告展示后,描述当前播放广告源信息 @property (nonatomic, strong, readonly) WindMillAdInfo *adInfo; /// 填充后可调用, 返回广告缓存池内所有信息 - (NSArray&amp;lt;WindMillAdInfo *&amp;gt; *)getCacheAdInfoList; /// 初始化splash ad对象,当请求和播放分开处理时,使用改构造函数 /// @param request 广告请求对象 [必传] /// @param extra 各个平台需要的扩展参数 [可选] /// 1、kWindMillSplashExtraBottomView: 如果需要品牌区,需要通过改参数设置,类型:UIView /// 2、kWindMillSplashExtraAdSize: 如果需要品牌区,需要通过改参数设置,类型NSString,字符串格式为NSStringFromCGSize - (instancetype)initWithRequest:(WindMillAdRequest *)request extra:(NSDictionary *)extra; /** * 返回广告是否可展示 * 对于并行请求,在调用showAdInWindow前时需判断下 * @return 当广告已经加载完成且未曝光时,为YES,否则为NO */ - (BOOL)isAdReady; /** * 广告发起请求并自动展示在Window中 * 详解:[可选]发起拉取广告请求,并将获取的广告以全屏形式展示在传入的Window参数中 */ -(void)loadAdAndShow; /** * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面或是自定义View * 详解:[可选]发起拉取广告请求,并将获取的广告以半屏形式展示在传入的Window的上半部,剩余部分展示传入的bottomView * 请注意bottomView需设置好宽高,所占的空间不能过大,并保证广告界面的高度大于360 * @param bottomView [可选] 自定义底部View,可以在此View中设置应用Logo * */ -(void)loadAdAndShowWithBottomView:(UIView * _Nullable)bottomView; /** * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面 * 详解:[logo会自动读取应用图标] * @param title 设置标题 【必传】 @param description 设置描述信息【必传】 */ - (void)loadADAndShowWithTitle:(NSString *)title description:(NSString *)description; /** * 发起拉取广告请求,只拉取不展示 * 详解:广告素材及广告图片拉取成功后会回调onSplashAdDidLoad方法,当拉取失败时会回调onSplashAdFailToPresent方法 */ - (void)loadAd; /** * 展示广告,调用此方法前需调用isAdValid方法判断广告素材是否有效 * 详解:广告展示成功时会回调onSplashAdSuccessPresentScreen方法,展示失败时会回调onSplashAdFailToPresent方法 @param window 用来展示广告的容器【必传】 @param bottomView 底部自定义视图【可选】 */ - (void)showAdInWindow:(UIWindow *)window withBottomView:(UIView * _Nullable)bottomView; /** * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面 * 详解:[logo会自动读取应用图标],请中高度位100,宽度为屏幕宽度 * @param window 容器 【必传】 @param title 设置标题 【必传】 @param desc 设置描述信息 【必传】 */ - (void)showAdInWindow:(UIWindow *)window title:(NSString *)title desc:(NSString *)desc; @end NS_ASSUME_NONNULL_END</code></pre> <h2>2. 回调监听<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_2-%E5%9B%9E%E8%B0%83%E7%9B%91%E5%90%AC">​</a></h2> <p>objective-c</p> <pre><code>NS_ASSUME_NONNULL_BEGIN @protocol WindMillSplashAdDelegate &amp;lt;NSObject&amp;gt; @optional /// 广告加载成功回调 /// - Parameter splashAd: WindMillSplashAd 实例对象 - (void)onSplashAdDidLoad:(WindMillSplashAd *)splashAd; /// 广告加载失败回调 /// - Parameters: /// - splashAd: WindMillSplashAd 实例对象 /// - error: 具体错误信息 -(void)onSplashAdLoadFail:(WindMillSplashAd *)splashAd error:(NSError *)error; /// 广告曝光回调 /// - Parameter splashAd: WindMillSplashAd 实例对象 -(void)onSplashAdSuccessPresentScreen:(WindMillSplashAd *)splashAd; /// 广告展示失败回调 /// - Parameters: /// - splashAd: WindMillSplashAd 实例对象 /// - error: 具体错误信息 -(void)onSplashAdFailToPresent:(WindMillSplashAd *)splashAd withError:(NSError *)error; /// 广告点击回调 /// - Parameter splashAd: WindMillSplashAd 实例对象 - (void)onSplashAdClicked:(WindMillSplashAd *)splashAd; /// 广告跳过回调 /// - Parameter splashAd: WindMillSplashAd 实例对象 - (void)onSplashAdSkiped:(WindMillSplashAd *)splashAd; /// 广告即将关闭回调 /// - Parameter splashAd: WindMillSplashAd 实例对象 - (void)onSplashAdWillClosed:(WindMillSplashAd *)splashAd; /// 广告关闭回调 /// - Parameter splashAd: WindMillSplashAd 实例对象 - (void)onSplashAdClosed:(WindMillSplashAd *)splashAd; /** 目前仅支持gromore csj This method is called when another controller has been closed. @param interactionType : open appstore in app or open the webpage or view video ad details page. @Note : Mediation dimension does not support this callBack. */ - (void)onSplashAdDidCloseOtherControllerWithInteractionType:(WindMillInteractionType)interactionType; /// 广告小窗口点击回调 /// - Parameter splashAd: WindMillSplashAd 实例对象 - (void)onSplashZoomOutViewAdDidClick:(WindMillSplashAd *)splashAd; /// 广告小窗口关闭回调 /// - Parameter splashAd: WindMillSplashAd 实例对象 - (void)onSplashZoomOutViewAdDidClose:(WindMillSplashAd *)splashAd; @end NS_ASSUME_NONNULL_END</code></pre> <h2>3.自动播放和预加载模式<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_3-%E8%87%AA%E5%8A%A8%E6%92%AD%E6%94%BE%E5%92%8C%E9%A2%84%E5%8A%A0%E8%BD%BD%E6%A8%A1%E5%BC%8F">​</a></h2> <h3>3.1 加载后自动展示<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_3-1-%E5%8A%A0%E8%BD%BD%E5%90%8E%E8%87%AA%E5%8A%A8%E5%B1%95%E7%A4%BA">​</a></h3> <p>sdk提供了3个接口用于开屏的自动展示,即load和play功能合成一个接口,在onSplashAdDidLoad回调后,会自动展示在当前的KeyWindow中。</p> <p>objective-c</p> <pre><code>/** * 广告发起请求并自动展示在Window中 * 详解:[可选]发起拉取广告请求,并将获取的广告以全屏形式展示在传入的Window参数中 */ -(void)loadAdAndShow; /** * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面或是自定义View * 详解:[可选]发起拉取广告请求,并将获取的广告以半屏形式展示在传入的Window的上半部,剩余部分展示传入的bottomView * 请注意bottomView需设置好宽高,所占的空间不能过大,并保证广告界面的高度大于360 * @param bottomView 【可选】自定义底部View,可以在此View中设置应用Logo * */ -(void)loadAdAndShowWithBottomView:(UIView * _Nullable)bottomView; /** * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面 * 详解:[logo会自动读取应用图标] * @param title 设置标题 【必传】 @param description 设置描述信息【必传】 */ - (void)loadADAndShowWithTitle:(NSString *)title description:(NSString *)description;</code></pre> <h3>3.2 加载后调用API后展示<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_3-2-%E5%8A%A0%E8%BD%BD%E5%90%8E%E8%B0%83%E7%94%A8api%E5%90%8E%E5%B1%95%E7%A4%BA">​</a></h3> <p>Windmill提供了预加载LoadAd接口,当广告加载成功后会回调onSplashAdDidLoad,开发者在收到加载成功回调后,可以在合适的时机调用showAd方法展示广告。</p> <p>objective-c</p> <pre><code>/** * 发起拉取广告请求,只拉取不展示 * 详解:广告素材及广告图片拉取成功后会回调onSplashAdDidLoad方法,当拉取失败时会回调onSplashAdFailToPresent方法 */ - (void)loadAd; /** * 展示广告,调用此方法前需调用isAdValid方法判断广告素材是否有效 * 详解:广告展示成功时会回调onSplashAdSuccessPresentScreen方法,展示失败时会回调onSplashAdFailToPresent方法 @param window 用来展示广告的容器【必传】 @param bottomView 底部自定义视图【可选】 */ - (void)showAdInWindow:(UIWindow *)window withBottomView:(UIView * _Nullable)bottomView; /** * 广告发起请求并展示在Window中, 同时在屏幕底部设置应用自身的Logo页面 * 详解:[logo会自动读取应用图标],请中高度位100,宽度为屏幕宽度 * @param window 容器 【必传】 @param title 设置标题 【必传】 @param desc 设置描述信息 【必传】 */ - (void)showAdInWindow:(UIWindow *)window title:(NSString *)title desc:(NSString *)desc;</code></pre> <h2>4. 自定义底部View<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_4-%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BA%95%E9%83%A8view">​</a></h2> <p>开发者可自定义开屏底部View,用于logo展示等个性化设置。自定义底部View的最大高度不得超过屏幕高度的25%,设置值超过则取25%有效值。</p> <p>目前提供多种模式设置底部View</p> <ol> <li>在播放时直接传入BottomView</li> <li>在播放时传入title和desc,SDK会去当前Icon配合标题和描述进行自动布局</li> </ol> <h3>4.1 扩展参数(extra)<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_4-1-%E6%89%A9%E5%B1%95%E5%8F%82%E6%95%B0-extra">​</a></h3> <p>开发者在使用开屏预加载模式是,需要在extra中传入kWindMillSplashExtraAdSize,由聚合SDK传入三方adn。</p> <p>如果使用自动展示模式kWindMillSplashExtraAdSize参数可以忽略。</p> <p>CGSize adSize = CGSizeMake(width, height);</p> <p>Extra = @{kWindMillSplashExtraAdSize: NSStringFromCGSize(adSize)};</p> <h2>5. 调用示例<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_5-%E8%B0%83%E7%94%A8%E7%A4%BA%E4%BE%8B">​</a></h2> <h3>5.1 自动播放<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_5-1-%E8%87%AA%E5%8A%A8%E6%92%AD%E6%94%BE">​</a></h3> <p>objective-c</p> <pre><code>WindMillAdRequest *request = [WindMillAdRequest request]; request.placementId = @&amp;quot;聚合广告位id&amp;quot;; request.userId = @&amp;quot;user_id&amp;quot;; CGFloat bottomHeight = 100; CGSize adSize = CGSizeMake(self.navigationController.view.bounds.size.width, self.navigationController.view.bounds.size.height-bottomHeight); NSDictionary *extra = @{kWindMillSplashExtraAdSize: NSStringFromCGSize(adSize)}; self.splashAd = [[WindMillSplashAd alloc] initWithRequest:request extra:extra]; self.splashAd.delegate = self; self.splashAd.rootViewController = self; UIView *bottomView; //自定义底部View if (bottomView) { [self.splashAd loadAdAndShowWithBottomView:bottomView]; }else { [self.splashAd loadAdAndShow]; }</code></pre> <h3>5.2 预加载播放<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/iOS/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_5-2-%E9%A2%84%E5%8A%A0%E8%BD%BD%E6%92%AD%E6%94%BE">​</a></h3> <p>objective-c</p> <pre><code> CGSize adSize = CGSizeMake(self.navigationController.view.bounds.size.width, self.navigationController.view.bounds.size.height-logoHeight); NSDictionary *extra = @{kWindMillSplashExtraAdSize: NSStringFromCGSize(adSize)}; WindMillAdRequest *request = [WindMillAdRequest request]; request.placementId = [self getSelectPlacementId]; request.userId = @&amp;quot;your user id&amp;quot;; self.splashAd = [[WindMillSplashAd alloc] initWithRequest:request extra:extra]; self.splashAd.delegate = self; self.splashAd.rootViewController = self; [self.splashAd loadAd]; ///广告拉取成功后会回调onSplashAdDidLoad方法,之后调用showAdInWindow UIView *bottomView; //自定义底部View, 可以为nil if (self.splashAd.isAdReady) { [self.splashAd showAdInWindow:self.view.window withBottomView: bottomView]; }</code></pre>

页面列表

ITEM_HTML