GDTUnifiedBannerView.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. //
  2. // GDTUnifiedBannerView.h
  3. // GDTMobSDK
  4. //
  5. // Created by nimomeng on 2019/3/1.
  6. // Copyright © 2019 Tencent. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. #import "GDTLoadAdParams.h"
  10. #import "GDTAdProtocol.h"
  11. NS_ASSUME_NONNULL_BEGIN
  12. @class GDTUnifiedBannerView;
  13. @protocol GDTUnifiedBannerViewDelegate <GDTAdDelegate>
  14. @optional
  15. /**
  16. * 请求广告条数据成功后调用
  17. * 当接收服务器返回的广告数据成功后调用该函数
  18. */
  19. - (void)unifiedBannerViewDidLoad:(GDTUnifiedBannerView *)unifiedBannerView;
  20. /**
  21. * 请求广告条数据失败后调用
  22. * 当接收服务器返回的广告数据失败后调用该函数
  23. */
  24. - (void)unifiedBannerViewFailedToLoad:(GDTUnifiedBannerView *)unifiedBannerView error:(NSError *)error;
  25. /**
  26. * banner2.0曝光回调
  27. */
  28. - (void)unifiedBannerViewWillExpose:(GDTUnifiedBannerView *)unifiedBannerView;
  29. /**
  30. * banner2.0点击回调
  31. */
  32. - (void)unifiedBannerViewClicked:(GDTUnifiedBannerView *)unifiedBannerView;
  33. /**
  34. * banner2.0广告点击以后即将弹出全屏广告页
  35. */
  36. - (void)unifiedBannerViewWillPresentFullScreenModal:(GDTUnifiedBannerView *)unifiedBannerView;
  37. /**
  38. * banner2.0广告点击以后弹出全屏广告页完毕
  39. */
  40. - (void)unifiedBannerViewDidPresentFullScreenModal:(GDTUnifiedBannerView *)unifiedBannerView;
  41. /**
  42. * 全屏广告页即将被关闭
  43. */
  44. - (void)unifiedBannerViewWillDismissFullScreenModal:(GDTUnifiedBannerView *)unifiedBannerView;
  45. /**
  46. * 全屏广告页已经被关闭
  47. */
  48. - (void)unifiedBannerViewDidDismissFullScreenModal:(GDTUnifiedBannerView *)unifiedBannerView;
  49. /**
  50. * 当点击应用下载或者广告调用系统程序打开
  51. */
  52. - (void)unifiedBannerViewWillLeaveApplication:(GDTUnifiedBannerView *)unifiedBannerView;
  53. /**
  54. * banner2.0被用户关闭时调用
  55. * 会立即关闭当前banner广告,若启用轮播,(刷新间隔 - 当前广告已展示时间)后会展示新的广告
  56. * 若未启用轮播或不需要再展示,需在回调中将unifiedBannerView从父view移除置nil
  57. */
  58. - (void)unifiedBannerViewWillClose:(GDTUnifiedBannerView *)unifiedBannerView;
  59. @end
  60. @interface GDTUnifiedBannerView : UIView <GDTAdProtocol>
  61. /**
  62. * 委托 [可选]
  63. */
  64. @property (nonatomic, weak) id<GDTUnifiedBannerViewDelegate> delegate;
  65. /**
  66. * Banner展现和轮播时的动画效果开关,默认打开
  67. */
  68. @property (nonatomic) BOOL animated;
  69. /**
  70. * 广告刷新间隔,范围 [30, 120] 秒,默认值 30 秒。设 0 则不刷新。 [可选]
  71. */
  72. @property (nonatomic) int autoSwitchInterval;
  73. /**
  74. * QQ小游戏SDK字段透传
  75. */
  76. @property (nonatomic, strong, nullable) GDTLoadAdParams *loadAdParams;
  77. /**
  78. * 广告是否有效,以下情况会返回NO,建议在展示广告之前判断,否则会影响计费或展示失败
  79. * a.广告未拉取成功
  80. * b.广告过期
  81. */
  82. @property (nonatomic, readonly) BOOL isAdValid;
  83. /**
  84. * 构造方法
  85. * 详解:placementId - 广告位 ID
  86. * viewController - 视图控制器
  87. */
  88. - (instancetype)initWithPlacementId:(NSString *)placementId
  89. viewController:(UIViewController *)viewController;
  90. /**
  91. * 构造方法
  92. * 详解:frame - banner 展示的位置和大小
  93. * placementId - 广告位 ID
  94. * viewController - 视图控制器
  95. */
  96. - (instancetype)initWithFrame:(CGRect)frame
  97. placementId:(NSString *)placementId
  98. viewController:(UIViewController *)viewController;
  99. /**
  100. * 构造方法, S2S bidding 后获取到 token 再调用此方法
  101. * @param placementId 广告位 ID
  102. * @param token 通过 Server Bidding 请求回来的 token
  103. * @param viewController 视图控制器
  104. */
  105. - (instancetype)initWithPlacementId:(NSString *)placementId
  106. token:(NSString *)token
  107. viewController:(UIViewController *)viewController;
  108. /**
  109. * S2S bidding 竞胜之后调用, 需要在调用广告 show 之前调用
  110. * @param eCPM - 曝光扣费, 单位分,若优量汇竞胜,在广告曝光时回传,必传
  111. * 针对本次曝光的媒体期望扣费,常用扣费逻辑包括一价扣费与二价扣费,当采用一价扣费时,胜者出价即为本次扣费价格;当采用二价扣费时,第二名出价为本次扣费价格.
  112. */
  113. - (void)setBidECPM:(NSInteger)eCPM;
  114. /**
  115. * 拉取并展示广告
  116. */
  117. - (void)loadAdAndShow;
  118. /**
  119. 返回广告的eCPM,单位:分
  120. @return 成功返回一个大于等于0的值,-1表示无权限或后台出现异常
  121. */
  122. - (NSInteger)eCPM;
  123. /**
  124. 返回广告的eCPM等级
  125. @return 成功返回一个包含数字的string,@""或nil表示无权限或后台异常
  126. */
  127. - (NSString *)eCPMLevel;
  128. /**
  129. 返回广告平台名称
  130. @return 当使用激励视频聚合功能时,用于区分广告平台
  131. */
  132. - (NSString *)adNetworkName;
  133. @end
  134. NS_ASSUME_NONNULL_END