GDTRewardVideoAd.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. //
  2. // GDTRewardVideoAd.h
  3. // GDTMobSDK
  4. //
  5. // Created by royqpwang on 2018/9/1.
  6. // Copyright © 2018年 Tencent. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import "GDTSDKDefines.h"
  11. #import "GDTLoadAdParams.h"
  12. #import "GDTServerSideVerificationOptions.h"
  13. #import "GDTAdProtocol.h"
  14. NS_ASSUME_NONNULL_BEGIN
  15. @protocol GDTRewardedVideoAdDelegate;
  16. @interface GDTRewardVideoAd : NSObject <GDTAdProtocol>
  17. /**
  18. * 广告是否有效,以下情况会返回NO,建议在展示广告之前判断,否则会影响计费或展示失败
  19. * a.广告未拉取成功
  20. * b.广告已经曝光过
  21. * c.广告过期
  22. */
  23. @property (nonatomic, getter=isAdValid, readonly) BOOL adValid;
  24. @property (nonatomic) BOOL videoMuted;
  25. @property (nonatomic, assign, readonly) NSInteger expiredTimestamp;
  26. @property (nonatomic, weak) id <GDTRewardedVideoAdDelegate> delegate;
  27. @property (nonatomic, readonly) NSString *placementId;
  28. @property (nonatomic, strong) GDTLoadAdParams *loadAdParams;
  29. @property (nonatomic, strong) GDTServerSideVerificationOptions *serverSideVerificationOptions;
  30. /**
  31. 构造方法
  32. @param placementId - 广告位 ID
  33. @return GDTRewardVideoAd 实例
  34. */
  35. - (instancetype)initWithPlacementId:(NSString *)placementId;
  36. /**
  37. * 构造方法, S2S bidding 后获取到 token 再调用此方法
  38. * @param placementId 广告位 ID
  39. * @param token 通过 Server Bidding 请求回来的 token
  40. */
  41. - (instancetype)initWithPlacementId:(NSString *)placementId token:(NSString *)token;
  42. /**
  43. * S2S bidding 竞胜之后调用, 需要在调用广告 show 之前调用
  44. * @param eCPM - 曝光扣费, 单位分,若优量汇竞胜,在广告曝光时回传,必传
  45. * 针对本次曝光的媒体期望扣费,常用扣费逻辑包括一价扣费与二价扣费,当采用一价扣费时,胜者出价即为本次扣费价格;当采用二价扣费时,第二名出价为本次扣费价格.
  46. */
  47. - (void)setBidECPM:(NSInteger)eCPM;
  48. /**
  49. 加载广告方法 支持 iOS8.1 及以上系统
  50. */
  51. - (void)loadAd;
  52. /**
  53. 展示广告方法
  54. @param rootViewController 用于 present 激励视频 VC
  55. @return 是否展示成功
  56. */
  57. - (BOOL)showAdFromRootViewController:(UIViewController *)rootViewController;
  58. /**
  59. 返回广告的eCPM,单位:分
  60. @return 成功返回一个大于等于0的值,-1表示无权限或后台出现异常
  61. */
  62. - (NSInteger)eCPM;
  63. /**
  64. 返回广告的eCPM等级
  65. @return 成功返回一个包含数字的string,@""或nil表示无权限或后台异常
  66. */
  67. - (NSString *)eCPMLevel;
  68. /**
  69. 返回广告平台名称
  70. @return 当使用激励视频聚合功能时,用于区分广告平台
  71. */
  72. - (NSString *)adNetworkName;
  73. /**
  74. * 当广告类型为 GDTRewardAdTypeVideo时,返回视频时长,单位 ms,当广告类型为GDTRewardAdTypePage时,返回0
  75. */
  76. - (CGFloat)videoDuration;
  77. /**
  78. * 激励广告的类型,需在gdt_rewardVideoAdDidLoad回调后调用
  79. */
  80. - (GDTRewardAdType)rewardAdType;
  81. @end
  82. @protocol GDTRewardedVideoAdDelegate <GDTAdDelegate>
  83. @optional
  84. /**
  85. 广告数据加载成功回调
  86. @param rewardedVideoAd GDTRewardVideoAd 实例
  87. */
  88. - (void)gdt_rewardVideoAdDidLoad:(GDTRewardVideoAd *)rewardedVideoAd;
  89. /**
  90. 视频数据下载成功回调,已经下载过的视频会直接回调
  91. @param rewardedVideoAd GDTRewardVideoAd 实例
  92. */
  93. - (void)gdt_rewardVideoAdVideoDidLoad:(GDTRewardVideoAd *)rewardedVideoAd;
  94. /**
  95. 视频播放页即将展示回调
  96. @param rewardedVideoAd GDTRewardVideoAd 实例
  97. */
  98. - (void)gdt_rewardVideoAdWillVisible:(GDTRewardVideoAd *)rewardedVideoAd;
  99. /**
  100. 视频广告曝光回调
  101. @param rewardedVideoAd GDTRewardVideoAd 实例
  102. */
  103. - (void)gdt_rewardVideoAdDidExposed:(GDTRewardVideoAd *)rewardedVideoAd;
  104. /**
  105. 视频播放页关闭回调
  106. @param rewardedVideoAd GDTRewardVideoAd 实例
  107. */
  108. - (void)gdt_rewardVideoAdDidClose:(GDTRewardVideoAd *)rewardedVideoAd;
  109. /**
  110. 视频广告信息点击回调
  111. @param rewardedVideoAd GDTRewardVideoAd 实例
  112. */
  113. - (void)gdt_rewardVideoAdDidClicked:(GDTRewardVideoAd *)rewardedVideoAd;
  114. /**
  115. 视频广告各种错误信息回调
  116. @param rewardedVideoAd GDTRewardVideoAd 实例
  117. @param error 具体错误信息
  118. */
  119. - (void)gdt_rewardVideoAd:(GDTRewardVideoAd *)rewardedVideoAd didFailWithError:(NSError *)error;
  120. /**
  121. 视频广告播放达到激励条件回调
  122. @param rewardedVideoAd GDTRewardVideoAd 实例
  123. */
  124. - (void)gdt_rewardVideoAdDidRewardEffective:(GDTRewardVideoAd *)rewardedVideoAd GDT_DEPRECATED_MSG_ATTRIBUTE("接口即将废弃,请使用 gdt_rewardVideoAdDidRewardEffective:info:");
  125. /**
  126. 视频广告播放达到激励条件回调
  127. @param rewardedVideoAd GDTRewardVideoAd 实例
  128. @param info 包含此次广告行为的一些信息,例如 @{@"GDT_TRANS_ID":@"930f1fc8ac59983bbdf4548ee40ac353"}, 通过@“GDT_TRANS_ID”可获取此次广告行为的交易id
  129. */
  130. - (void)gdt_rewardVideoAdDidRewardEffective:(GDTRewardVideoAd *)rewardedVideoAd info:(NSDictionary *)info;
  131. /**
  132. 视频广告视频播放完成
  133. @param rewardedVideoAd GDTRewardVideoAd 实例
  134. */
  135. - (void)gdt_rewardVideoAdDidPlayFinish:(GDTRewardVideoAd *)rewardedVideoAd;
  136. @end
  137. NS_ASSUME_NONNULL_END