## 插屏互动广告 ### **插屏互动广告** PlayableAds提供一种可交互的插屏广告,增加了广告的趣味性。插屏互动广告使用单例模式,添加子视图的方式展示广告。使用简单,参考如下步骤: #### **1 引入头文件 PlayableAds.h**
#import
#### **2 初始化并设置代理**
```objective-c /* * 初始化 * key 广告位的key */ - (instancetype _Nonnull)initWithKey:(NSString *_Nonnull)key; /** * 设置插屏互动广告回调 * */ @property (nonatomic, weak, nullable)id delegate; ```
#### **3 设置广告位名字(可选)**
```objective-c /* * 广告位名字 */ @property (nonatomic, strong) NSString *_Nullable placeId; ```
#### **4 设置区域,默认为国外(可选)**
```objective-c /* * 区域(区分国内国外),请在load和show方法前设置 */ @property (nonatomic, assign) VGGlobalZone zone; ```
#### **5 检查广告是否可显示**
```objective-c /* * 判断预加载的内容是否可显示(校验使用) */ - (BOOL)isReady; ```
#### **6 加载广告**
```objective-c /* * 加载插屏互动广告 */ - (void)loadInterstitialAdsResources; ```
#### **7 展示广告**
```objective-c /** * 展示插屏互动广告 * viewController 展示广告的控制器(controller) */ - (void)showInterstitialAdsWithController:(UIViewController *_Nonnull)viewController; ```
#### **8 示例代码**
我们仅以Xcode工程作为示例,其它IDE工程,请参考修改!
```objective-c - (void)enterGame:(id)sender{ if ([self.interstitial isReady]) { [self.interstitial showInterstitialAdsWithController:self.navigationController]; }else{ [self.interstitial loadInterstitialAdsResources]; } } ```
#### **9 获取即将播放的广告信息**
```objective-c /** * 返回待播放的插屏互动广告Info * @{@"icon":@""} */ - (NSDictionary *_Nullable)getOfferInfo; ```
在对象被销毁时,将代理置空: ```objective-c self.interstitial.delegate = nil; ```
目前提供的回调方法有: ```objective-c /** *加载成功 */ - (void)playableAdsInterstitialLoadSuccessWithKey:(NSString *_Nonnull)key placeId:(NSString *_Nullable)placeId; /** *加载失败 */ - (void)playableAdsInterstitialLoadFailed:(NSDictionary *_Nullable)dic withKey:(NSString *_Nonnull)key placeId:(NSString *_Nullable)placeId; /** *广告打开 */ - (void)playableAdsInterstitialDidOpenWithKey:(NSString *_Nonnull)key placeId:(NSString *_Nullable)placeId; /** *广告点击 */ - (void)playableAdsInterstitialDidClick:(NSString *_Nullable)placeString withKey:(NSString *_Nonnull)key placeId:(NSString *_Nullable)placeId; /** *广告关闭 */ - (void)playableAdsInterstitialDidCloseWithKey:(NSString *_Nonnull)key placeId:(NSString *_Nullable)placeId; ```
**调用展示广告和加载广告方法前,必须先设置delegate,否则将收不到回调。播放当前广告时,默认预加载下一个。加载广告的顺序是先检查本地,如果没有,再向服务器请求。**