SDK说明


banner广告

<h1>banner广告(WindMillBannerView)</h1> <p><strong>注意事项: 1、需要初始化时配置广告基本信息。例如期望尺寸,为避免渲染过程产生广告视图形变,务必和媒体平台配置相同尺寸; 2、通过设置WindMillBannerViewDelegate代理,获取广告、展示、点击、关闭等回调。值得注意的是一定要设置rootViewController,即跳转落地页需要的viewController; 3、banner广告视图需要开发者手动移除。</strong></p> <h2>1. 接口说明</h2> <h3>WindMillAdRequest</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>WindMillBannerView</h3> <p>objective-c</p> <pre><code>NS_ASSUME_NONNULL_BEGIN @interface WindMillBannerView : UIView /// 广告代理对象 [必传] @property (nonatomic, weak) id&amp;lt;WindMillBannerViewDelegate&amp;gt; delegate; /// 视图控制器 [必传] @property (nonatomic, weak) UIViewController *viewController; /// Banner展现和轮播时的动画效果开关,默认打开 [可选] @property (nonatomic) BOOL animated; /// 广告位ID @property (nonatomic, copy, readonly) NSString *placementId; /** * 广告是否有效,以下情况会返回NO,建议在展示广告之前判断,否则会影响计费或展示失败 * a.广告未拉取成功 * b.广告过期 */ @property (nonatomic, readonly) BOOL isAdValid; /// 在广告展示后,描述当前播放广告源信息 @property (nonatomic, strong, readonly) WindMillAdInfo *adInfo; /// 广告实际的大小 @property (nonatomic, assign, readonly) CGSize adSize; /// 构造方法 /// - Parameter request: 广告请求对象 [必传] - (instancetype)initWithRequest:(WindMillAdRequest *)request; /// 构造方法 /// - Parameters: /// - request: 广告请求对象 [必传] /// - expectSize: 期望的广告视图大小 [必传] - (instancetype)initWithRequest:(WindMillAdRequest *)request expectSize:(CGSize)expectSize; /// 加载广告 - (void)loadAdData; /// 填充后可调用, 返回广告缓存池内所有信息 - (NSArray&amp;lt;WindMillAdInfo *&amp;gt; *)getCacheAdInfoList; @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/%E6%A8%AA%E5%B9%85%E5%B9%BF%E5%91%8A/#_2-%E7%9B%91%E5%90%AC%E5%9B%9E%E8%B0%83">​</a></h2> <p>objective-c</p> <pre><code>NS_ASSUME_NONNULL_BEGIN @protocol WindMillBannerViewDelegate &amp;lt;NSObject&amp;gt; @optional /// 广告自动刷新成功回调 /// - Parameter bannerAdView: WindMillBannerView 实例对象 - (void)bannerAdViewDidAutoRefresh:(WindMillBannerView *)bannerAdView; /// 广告自动刷新失败回调 /// - Parameters: /// - bannerAdView: WindMillBannerView 实例对象 /// - error: 具体错误信息 - (void)bannerView:(WindMillBannerView *)bannerAdView failedToAutoRefreshWithError:(NSError *)error; /// 广告加载成功回调 /// - Parameter bannerAdView: WindMillBannerView 实例对象 - (void)bannerAdViewLoadSuccess:(WindMillBannerView *)bannerAdView; /// 广告加载失败回调 /// - Parameters: /// - bannerAdView: WindMillBannerView 实例对象 /// - error: 具体错误信息 - (void)bannerAdViewFailedToLoad:(WindMillBannerView *)bannerAdView error:(NSError *)error; /// 广告曝光回调 /// - Parameter bannerAdView: WindMillBannerView 实例对象 - (void)bannerAdViewWillExpose:(WindMillBannerView *)bannerAdView; /// 广告点击回调 /// - Parameter bannerAdView: WindMillBannerView 实例对象 - (void)bannerAdViewDidClicked:(WindMillBannerView *)bannerAdView; /// 当用户由于点击要离开您的应用程序时触发该回调,您的应用程序将移至后台 /// - Parameter bannerAdView: WindMillBannerView 实例对象 - (void)bannerAdViewWillLeaveApplication:(WindMillBannerView *)bannerAdView; /// 将打开全屏视图。在打开storekit或在应用程序中打开网页时触发 /// - Parameter bannerAdView: WindMillBannerView 实例对象 - (void)bannerAdViewWillOpenFullScreen:(WindMillBannerView *)bannerAdView; /// 将关闭全屏视图。关闭storekit或关闭应用程序中的网页时发送 /// - Parameter bannerAdView: WindMillBannerView 实例对象 - (void)bannerAdViewCloseFullScreen:(WindMillBannerView *)bannerAdView; /// 广告视图被移除 /// - Parameter bannerAdView: WindMillBannerView 实例对象 - (void)bannerAdViewDidRemoved:(WindMillBannerView *)bannerAdView; @end NS_ASSUME_NONNULL_END</code></pre> <h2>3. 调用示例</h2> <h3>3.1 广告加载</h3> <p>objective-c</p> <pre><code>WindMillAdRequest *request = [WindMillAdRequest request]; request.userId = @&amp;quot;user_id&amp;quot;; request.placementId = @&amp;quot;聚合广告id&amp;quot;; request.options = @{@&amp;quot;test_key&amp;quot;:@&amp;quot;test_value&amp;quot;};//s2s激励时自定义参数,key和value都是媒体开发自定义 WindMillBannerView *bannerView = [[WindMillBannerView alloc] initWithRequest:request]; bannerView.delegate = self; bannerView.viewController = self; [bannerView loadAdData]; //在刷新成功和加载成功的回调中设置bannerView的frame //成功加载广告 - (void)bannerAdViewLoadSuccess:(WindMillBannerView *)bannerAdView { CGSize adSize = bannerAdView.adSize; CGFloat space = (UIScreen.mainScreen.bounds.size.width - adSize.width)/2.0; bannerAdView.frame = CGRectMake(space, 0, adSize.width, adSize.height); } //bannerView自动刷新 - (void)bannerAdViewDidAutoRefresh:(WindMillBannerView *)bannerAdView { CGSize adSize = bannerAdView.adSize; CGFloat space = (UIScreen.mainScreen.bounds.size.width - adSize.width)/2.0; bannerAdView.frame = CGRectMake(space, 0, adSize.width, adSize.height); }</code></pre> <h2>4. Banner广告显示和隐藏时机</h2> <h3>开启自动刷新功能</h3> <p>当开启自动刷新功能时,开发者只需要调用loadAdData一次,在加载广告成功的回调(bannerAdViewLoadSuccess:)中可以把bannerView添加到屏幕上。</p> <pre><code>- (void)bannerAdViewLoadSuccess:(WindMillBannerView *)bannerAdView { CGSize adSize = bannerAdView.adSize; CGFloat space = (UIScreen.mainScreen.bounds.size.width - adSize.width)/2.0; bannerAdView.frame = CGRectMake(space, 0, adSize.width, adSize.height); }</code></pre> <p>在收到刷新成功的回调中(bannerAdViewDidAutoRefresh:)根据adSize调整BannerView的frame。</p> <pre><code>- (void)bannerAdViewDidAutoRefresh:(WindMillBannerView *)bannerAdView { CGSize adSize = bannerAdView.adSize; CGFloat space = (UIScreen.mainScreen.bounds.size.width - adSize.width)/2.0; bannerAdView.frame = CGRectMake(space, 0, adSize.width, adSize.height); }</code></pre> <p>在收到bannerAdViewDidRemoved:回调,可以移除bannerView,同时把bannerView释放掉。</p> <pre><code>- (void)bannerAdViewDidRemoved:(WindMillBannerView *)bannerAdView { [self.bannerView removeFromSuperview]; self.bannerView.delegate = nil; self.bannerView = nil; }</code></pre> <h3>关闭自动刷新功能</h3> <p>当不使用自动刷新功能时,开发者不会收到刷新成功和失败的回调。 当调用一次loadAdData加载广告成功时,开发者可将bannerView添加到屏幕上,当收到bannerAdViewDidRemoved:广告视图移除回调通知时,开发者需要主动调用[bannerView removeFromSuperview];方法移除bannerView; 若需要再次展示新的banner广告,开发者需要再次调用loadAdData接口,在加载成功的回调中,将对应的bannerView添加到屏幕即可。</p>

页面列表

ITEM_HTML