SDK说明


激励视频

<h1>激励视频广告(WindMillRewardVideoAd)<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%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91/#%E6%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91%E5%B9%BF%E5%91%8A-windmillrewardvideoad">​</a></h1> <p>激励视频广告是一种全新的广告形式,用户可选择观看视频广告以换取有价物,例如虚拟货币、应用内物品和独家内容等等;这类广告一般有一定长度,部分可支持跳过(具体支持视不同adn而定)。</p> <p>&gt; 注:部分ADN广告无点击、跳过回调</p> <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%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91/#_1-%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E">​</a></h2> <p>objective-c</p> <pre><code>@interface WindMillRewardVideoAd : NSObject @property (nonatomic, weak) id&amp;lt;WindMillRewardVideoAdDelegate&amp;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&amp;lt;WindMillAdInfo *&amp;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&amp;lt;NSString *, NSString *&amp;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%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91/#_2-%E7%9B%91%E5%90%AC%E5%9B%9E%E8%B0%83">​</a></h2> <table> <thead> <tr> <th>回调</th> <th>含义</th> <th>使用建议</th> </tr> </thead> <tbody> <tr> <td>rewardVideoAdDidLoad:</td> <td>广告加载成功</td> <td>当次加载成功标识/可调用show的条件/加载数据统计</td> </tr> <tr> <td>rewardVideoAdDidLoad: didFailWithError:</td> <td>广告加载失败</td> <td>当次加载失败标识/重新加载条件/加载数据统计/失败原因排查</td> </tr> <tr> <td>rewardVideoAdDidVisible</td> <td>广告展示成功</td> <td>当次展示标识/展示数据统计</td> </tr> <tr> <td>rewardVideoAdDidClick:</td> <td>广告点击事件</td> <td>点击数据统计</td> </tr> <tr> <td>rewardVideoAdDidClickSkip:</td> <td>广告跳过事件</td> <td>跳过数据统计</td> </tr> <tr> <td>rewardVideoAdDidClose:</td> <td>广告关闭</td> <td>广告销毁/自定义预缓存时机</td> </tr> <tr> <td>rewardVideoAd: reward:</td> <td>奖励发放的标识(包括adn的C2C/)</td> <td>标识奖励发放的条件</td> </tr> <tr> <td>rewardVideoAdDidPlayFinish: didFailWithError:</td> <td>视频播放结束(可能因为错误非正常结束)</td> <td>标识播放结束(包括播放错误)/问题排查</td> </tr> </tbody> </table> <p>objective-c</p> <pre><code>@protocol WindMillRewardVideoAdDelegate&amp;lt;NSObject&amp;gt; /** This method is called when video ad material loaded successfully. */ - (void)rewardVideoAdDidLoad:(WindMillRewardVideoAd *)rewardVideoAd; /** This method is called when video ad materia failed to load. @param error : the reason of error */ - (void)rewardVideoAdDidLoad:(WindMillRewardVideoAd *)rewardVideoAd didFailWithError:(NSError *)error; /** This method is called when video ad slot will be showing. */ - (void)rewardVideoAdWillVisible:(WindMillRewardVideoAd *)rewardVideoAd; /** This method is called when video ad slot has been shown. */ - (void)rewardVideoAdDidVisible:(WindMillRewardVideoAd *)rewardVideoAd; /** This method is called when video ad is clicked. */ - (void)rewardVideoAdDidClick:(WindMillRewardVideoAd *)rewardVideoAd; /** This method is called when video ad is clicked skip button. */ - (void)rewardVideoAdDidClickSkip:(WindMillRewardVideoAd *)rewardVideoAd; /** This method is called when video ad is can be motivated */ - (void)rewardVideoAd:(WindMillRewardVideoAd *)rewardVideoAd reward:(WindMillRewardInfo *)reward; /** This method is called when video ad is about to close. */ - (void)rewardVideoAdDidClose:(WindMillRewardVideoAd *)rewardVideoAd; /** This method is called when video ad play completed or an error occurred. @param error : the reason of error */ - (void)rewardVideoAdDidPlayFinish:(WindMillRewardVideoAd *)rewardVideoAd 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%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91/#_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%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91/#_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 = @&amp;quot;user_id&amp;quot;; request.placementId = @&amp;quot;ea1f8f7b662&amp;quot;; request.options = @{@&amp;quot;test_key&amp;quot;:@&amp;quot;test_value&amp;quot;};//s2s激励时自定义参数 //rewardVideoAd全局对象,后续可以使用平台提供的预加载功能提高填充速度 if (self.rewardVideoAd == nil) { self.rewardVideoAd = [[WindMillRewardVideoAd alloc] initWithRequest:request]; } self.rewardVideoAd.delegate = self; [self.rewardVideoAd 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%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91/#_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.rewardVideoAd.ready) { [self.rewardVideoAd 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%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91/#_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>rewardVideoAdDidLoad:</code>广告加载成功的回调</li> <li>WindMillRewardVideoAd每个广告位ID创建一个实例对象,多个实例对象之间的预加载逻辑互不干扰。</li> </ul> <p>objective-c</p> <pre><code>WindMillAdRequest *request = [WindMillAdRequest request]; request.userId = @&amp;quot;user_id&amp;quot;; request.placementId = @&amp;quot;ea1f8f7b662&amp;quot;; //rewardVideoAd全局对象,不能每次都重新new实例对象,否则预加载功能不生效 if (self.rewardVideoAd == nil) { self.rewardVideoAd = [[WindMillRewardVideoAd alloc] initWithRequest:request]; } self.rewardVideoAd.delegate = self; [self.rewardVideoAd loadAdData];</code></pre> <h2>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%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91/#_4-scene-%E4%BB%A3%E7%A0%81%E4%BD%8D%E5%9C%BA%E6%99%AF">​</a></h2> <ul> <li>适用Adn: Sigmob,穿山甲</li> <li>使用说明:如果需要传入一定的场景来用于区别看广告场景,请使用该接口(一般游戏会用到)</li> <li>接口说明:</li> </ul> <p>objective-c</p> <pre><code>// WindMillAdSceneId: 自定义场景ID // WindMillAdSceneDesc: 自定义场景描述 NSDictionary *sceneDicsBySDK = @{ WindMillAdSceneId: @&amp;quot;1&amp;quot;, WindMillAdSceneDesc: @&amp;quot;custom scene description&amp;quot; }; [self.rewardVideoAd showAdFromRootViewController:self.viewController options:sceneDicsBySDK];</code></pre> <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/%E6%BF%80%E5%8A%B1%E8%A7%86%E9%A2%91/#_5-%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%A5%96%E5%8A%B1%E6%A0%A1%E9%AA%8C">​</a></h2> <p>当选择需要服务端验证时,开发者需要按照各Adn要求进行接口开发,并在adn平台上做相应配置。</p> <p>服务端回调是指在用户看完激励视频达到奖励条件时,对应广告的adn服务端会向开发者服务端发送一个验证请求,同时客户端会给出- (void)rewardVideoAd:(WindMillRewardVideoAd *)rewardVideoAd reward:(WindMillRewardInfo *)reward;:回调,开发者根据回调进行奖励发放。</p> <p>&gt; <strong>注意:在满足激励条件时会触发此回调,与是否选择服务端验证以及服务端验证是否成功无关。</strong></p>

页面列表

ITEM_HTML