插屏广告
<h1>插屏广告(WindMillIntersititialAd )<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%8F%92%E5%B1%8F%E5%B9%BF%E5%91%8A/#%E6%8F%92%E5%B1%8F%E5%B9%BF%E5%91%8A-windmillintersititialad"></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/%E6%8F%92%E5%B1%8F%E5%B9%BF%E5%91%8A/#_1-%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E"></a></h2>
<p>objective-c</p>
<pre><code>@interface WindMillIntersititialAd : NSObject
@property (nonatomic, weak) id&lt;WindMillIntersititialAdDelegate&gt; delegate;
@property (nonatomic, strong, readonly) NSString *placementId;
@property (nonatomic, getter=isAdReady, readonly) BOOL ready;
/// 获取当前播放的广告网络的详细信息
@property (nonatomic, strong, readonly) WindMillAdInfo *adInfo;
- (instancetype)initWithRequest:(WindMillAdRequest *)request;
- (void)loadAdData;
/// 填充后可调用, 返回广告缓存池内所有信息
- (NSArray&lt;WindMillAdInfo *&gt; *)getCacheAdInfoList;
/**
Display video ad.
@param rootViewController : root view controller for displaying ad.
@param extras : Extended parameters for displaying ad.
*/
- (void)showAdFromRootViewController:(UIViewController *)rootViewController
options:(NSDictionary&lt;NSString *, NSString *&gt; *)extras;
@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%8F%92%E5%B1%8F%E5%B9%BF%E5%91%8A/#_2-%E7%9B%91%E5%90%AC%E5%9B%9E%E8%B0%83"></a></h2>
<table>
<thead>
<tr>
<th>回调</th>
<th>含义</th>
</tr>
</thead>
<tbody>
<tr>
<td>intersititialAdDidLoad:</td>
<td>广告加载成功</td>
</tr>
<tr>
<td>intersititialAdDidLoad:didFailWithError</td>
<td>广告加载失败</td>
</tr>
<tr>
<td>intersititialAdWillVisible:</td>
<td>广告即将展示</td>
</tr>
<tr>
<td>intersititialAdDidVisible:</td>
<td>广告展示</td>
</tr>
<tr>
<td>intersititialAdDidClick:</td>
<td>广告点击</td>
</tr>
<tr>
<td>intersititialAdDidClickSkip:</td>
<td>广告点击跳过</td>
</tr>
<tr>
<td>intersititialAdDidPlayFinish:didFailWithError</td>
<td>广告视频播放结束/错误</td>
</tr>
<tr>
<td>intersititialAdDidClose:</td>
<td>广告关闭</td>
</tr>
<tr>
<td>intersititialAdDidCloseOtherController:withInteractionType:</td>
<td>广告关闭详情页或者storekit</td>
</tr>
</tbody>
</table>
<p>objective-c</p>
<pre><code>@protocol WindMillIntersititialAdDelegate&lt;NSObject&gt;
/**
This method is called when video ad material loaded successfully.
*/
- (void)intersititialAdDidLoad:(WindMillIntersititialAd *)intersititialAd;
/**
This method is called when video ad materia failed to load.
@param error : the reason of error
*/
- (void)intersititialAdDidLoad:(WindMillIntersititialAd *)intersititialAd didFailWithError:(NSError *)error;
/**
This method is called when video ad slot will be showing.
*/
- (void)intersititialAdWillVisible:(WindMillIntersititialAd *)intersititialAd;
/**
This method is called when video ad slot has been shown.
*/
- (void)intersititialAdDidVisible:(WindMillIntersititialAd *)intersititialAd;
/**
This method is called when video ad is clicked.
*/
- (void)intersititialAdDidClick:(WindMillIntersititialAd *)intersititialAd;
/**
This method is called when video ad is clicked skip button.
*/
- (void)intersititialAdDidClickSkip:(WindMillIntersititialAd *)intersititialAd;
/**
This method is called when video ad is about to close.
*/
- (void)intersititialAdDidClose:(WindMillIntersititialAd *)intersititialAd;
/** now only support 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)intersititialAdDidCloseOtherController:(WindMillIntersititialAd *)intersititialAd withInteractionType:(WindMillInteractionType)interactionType;
/**
This method is called when video ad play completed or an error occurred.
@param error : the reason of error
*/
- (void)intersititialAdDidPlayFinish:(WindMillIntersititialAd *)intersititialAd didFailWithError:(NSError *)error;
@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/%E6%8F%92%E5%B1%8F%E5%B9%BF%E5%91%8A/#_3-%E8%B0%83%E7%94%A8%E7%A4%BA%E4%BE%8B"></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/%E6%8F%92%E5%B1%8F%E5%B9%BF%E5%91%8A/#_3-1-%E5%B9%BF%E5%91%8A%E5%8A%A0%E8%BD%BD"></a></h3>
<p>objective-c</p>
<pre><code>WindMillAdRequest *request = [WindMillAdRequest request];
request.userId = @&quot;user_id&quot;;
request.placementId = @&quot;ea1f8f7b662&quot;;
//intersititialAd全局对象
if (self.intersititialAd == nil) {
self.intersititialAd = [[WindMillIntersititialAd alloc] initWithRequest:request];
}
self.intersititialAd = self;
[self.intersititialAd loadAdData];</code></pre>
<h3>3.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%8F%92%E5%B1%8F%E5%B9%BF%E5%91%8A/#_3-2-%E5%B9%BF%E5%91%8A%E6%92%AD%E6%94%BE"></a></h3>
<p>objective-c</p>
<pre><code>//WindMillAdSceneName在播放时可以定义播放的场景
if (self.intersititialAd.ready) {
[self.intersititialAd showAdFromRootViewController:self.viewController options:nil];
}</code></pre>
<h3>3.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/%E6%8F%92%E5%B1%8F%E5%B9%BF%E5%91%8A/#_3-3-%E5%B9%BF%E5%91%8A%E9%A2%84%E5%8A%A0%E8%BD%BD%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9"></a></h3>
<ul>
<li>需要在变现平台开启预加载功能</li>
<li>当广告开始播放时,SDK会自动执行下一条广告加载逻辑,当下一跳广告加载成功后,SDK会再次回调开发者<code>intersititialAdDidLoad:</code>广告加载成功的回调</li>
<li>WindMillIntersititialAd每个广告位ID创建一个实例对象,多个实例对象之间的预加载逻辑互不干扰。</li>
</ul>
<p>objective-c</p>
<pre><code>WindMillAdRequest *request = [WindMillAdRequest request];
request.userId = @&quot;user_id&quot;;
request.placementId = @&quot;ea1f8f7b662&quot;;
//intersititialAd全局对象,不能每次都重新new实例对象,否则预加载功能不生效
if (self.intersititialAd == nil) {
self.intersititialAd = [[WindMillIntersititialAd alloc] initWithRequest:request];
}
self.intersititialAd = self;
[self.intersititialAd loadAdData];</code></pre>
<h3>4. Scene(代码位场景)<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%8F%92%E5%B1%8F%E5%B9%BF%E5%91%8A/#_4-scene-%E4%BB%A3%E7%A0%81%E4%BD%8D%E5%9C%BA%E6%99%AF"></a></h3>
<ul>
<li>适用Adn: Sigmob,穿山甲</li>
<li>使用说明:如果需要传入一定的场景来用于区别看广告场景,请使用该接口(一般游戏会用到)</li>
<li>接口说明:</li>
</ul>
<p>objective-c</p>
<pre><code>// WindMillAdSceneId: 自定义场景ID
// WindMillAdSceneDesc: 自定义场景描述
NSDictionary *sceneDicsBySDK = @{
WindMillAdSceneId: @&quot;1&quot;,
WindMillAdSceneDesc: @&quot;custom scene description&quot;
};
[self.intersititialAd showAdFromRootViewController:self.viewController options:sceneDicsBySDK];</code></pre>