ATBannerAdClient.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using AnyThinkAds.Common;
  6. using AnyThinkAds.Api;
  7. #pragma warning disable 0067
  8. namespace AnyThinkAds.Android
  9. {
  10. public class ATBannerAdClient : AndroidJavaProxy, IATBannerAdClient
  11. {
  12. private Dictionary<string, AndroidJavaObject> bannerHelperMap = new Dictionary<string, AndroidJavaObject>();
  13. private ATBannerAdListener anyThinkListener;
  14. public event EventHandler<ATAdEventArgs> onAdLoadEvent;
  15. // triggers when a banner ad has failed to load
  16. public event EventHandler<ATAdErrorEventArgs> onAdLoadFailureEvent;
  17. // triggers when a banner ad generates an impression
  18. public event EventHandler<ATAdEventArgs> onAdImpressEvent;
  19. // triggers when the user clicks a banner ad
  20. public event EventHandler<ATAdEventArgs> onAdClickEvent;
  21. // triggers when the ad refreshes
  22. public event EventHandler<ATAdEventArgs> onAdAutoRefreshEvent;
  23. // triggers when the ad fails to auto refresh
  24. public event EventHandler<ATAdErrorEventArgs> onAdAutoRefreshFailureEvent;
  25. // triggers when the banner ad is closed
  26. public event EventHandler<ATAdEventArgs> onAdCloseEvent;
  27. // triggers when the users closes the ad via the button
  28. public event EventHandler<ATAdEventArgs> onAdCloseButtonTappedEvent;
  29. public event EventHandler<ATAdEventArgs> onAdSourceAttemptEvent;
  30. public event EventHandler<ATAdEventArgs> onAdSourceFilledEvent;
  31. public event EventHandler<ATAdErrorEventArgs> onAdSourceLoadFailureEvent;
  32. public event EventHandler<ATAdEventArgs> onAdSourceBiddingAttemptEvent;
  33. public event EventHandler<ATAdEventArgs> onAdSourceBiddingFilledEvent;
  34. public event EventHandler<ATAdErrorEventArgs> onAdSourceBiddingFailureEvent;
  35. public ATBannerAdClient() : base("com.anythink.unitybridge.banner.BannerListener")
  36. {
  37. }
  38. public void loadBannerAd(string placementId, string mapJson)
  39. {
  40. //如果不存在则直接创建对应广告位的helper
  41. if(!bannerHelperMap.ContainsKey(placementId))
  42. {
  43. AndroidJavaObject bannerHelper = new AndroidJavaObject(
  44. "com.anythink.unitybridge.banner.BannerHelper", this);
  45. bannerHelper.Call("initBanner", placementId);
  46. bannerHelperMap.Add(placementId, bannerHelper);
  47. Debug.Log("ATBannerAdClient : no exit helper ,create helper ");
  48. }
  49. try
  50. {
  51. Debug.Log("ATBannerAdClient : loadBannerAd ");
  52. bannerHelperMap[placementId].Call("loadBannerAd", mapJson);
  53. }
  54. catch (System.Exception e)
  55. {
  56. System.Console.WriteLine("Exception caught: {0}", e);
  57. Debug.Log ("ATBannerAdClient : error."+e.Message);
  58. }
  59. }
  60. public string checkAdStatus(string placementId)
  61. {
  62. string adStatusJsonString = "";
  63. Debug.Log("ATBannerAdClient : checkAdStatus....");
  64. try
  65. {
  66. if (bannerHelperMap.ContainsKey(placementId))
  67. {
  68. adStatusJsonString = bannerHelperMap[placementId].Call<string>("checkAdStatus");
  69. }
  70. }
  71. catch (System.Exception e)
  72. {
  73. System.Console.WriteLine("Exception caught: {0}", e);
  74. Debug.Log("ATBannerAdClient : error." + e.Message);
  75. }
  76. return adStatusJsonString;
  77. }
  78. public string getValidAdCaches(string placementId)
  79. {
  80. string validAdCachesString = "";
  81. Debug.Log("ATBannerAdClient : getValidAdCaches....");
  82. try
  83. {
  84. if (bannerHelperMap.ContainsKey(placementId))
  85. {
  86. validAdCachesString = bannerHelperMap[placementId].Call<string>("getValidAdCaches");
  87. }
  88. }
  89. catch (System.Exception e)
  90. {
  91. System.Console.WriteLine("Exception caught: {0}", e);
  92. Debug.Log("ATBannerAdClient : error." + e.Message);
  93. }
  94. return validAdCachesString;
  95. }
  96. public void setListener(ATBannerAdListener listener)
  97. {
  98. anyThinkListener = listener;
  99. }
  100. public void showBannerAd(string placementId, string position, string mapJson)
  101. {
  102. Debug.Log("ATBannerAdClient : showBannerAd by position" );
  103. //todo
  104. try
  105. {
  106. if (bannerHelperMap.ContainsKey(placementId))
  107. {
  108. this.bannerHelperMap[placementId].Call("showBannerAd", position, mapJson);
  109. }
  110. }
  111. catch (System.Exception e)
  112. {
  113. System.Console.WriteLine("Exception caught: {0}", e);
  114. Debug.Log("ATBannerAdClient : error." + e.Message);
  115. }
  116. }
  117. public void showBannerAd(string placementId, ATRect rect, string mapJson)
  118. {
  119. Debug.Log("ATBannerAdClient : showBannerAd " );
  120. try{
  121. if (bannerHelperMap.ContainsKey(placementId)) {
  122. this.bannerHelperMap[placementId].Call ("showBannerAd", rect.x, rect.y, rect.width, rect.height, mapJson, rect.usesPixel);
  123. }
  124. }catch(System.Exception e){
  125. System.Console.WriteLine("Exception caught: {0}", e);
  126. Debug.Log ("ATBannerAdClient : error."+e.Message);
  127. }
  128. }
  129. public void cleanBannerAd(string placementId)
  130. {
  131. Debug.Log("ATBannerAdClient : cleanBannerAd" );
  132. try{
  133. if (bannerHelperMap.ContainsKey(placementId)) {
  134. this.bannerHelperMap[placementId].Call ("cleanBannerAd");
  135. }
  136. }catch(System.Exception e){
  137. System.Console.WriteLine("Exception caught: {0}", e);
  138. Debug.Log ("ATBannerAdClient : error."+e.Message);
  139. }
  140. }
  141. public void hideBannerAd(string placementId)
  142. {
  143. Debug.Log("ATBannerAdClient : hideBannerAd");
  144. try
  145. {
  146. if (bannerHelperMap.ContainsKey(placementId))
  147. {
  148. this.bannerHelperMap[placementId].Call("hideBannerAd");
  149. }
  150. }
  151. catch (System.Exception e)
  152. {
  153. System.Console.WriteLine("Exception caught: {0}", e);
  154. Debug.Log("ATBannerAdClient : error." + e.Message);
  155. }
  156. }
  157. //针对已有的进行展示,没有就调用该方法无效
  158. public void showBannerAd(string placementId)
  159. {
  160. Debug.Log("ATBannerAdClient : showBannerAd ");
  161. try
  162. {
  163. if (bannerHelperMap.ContainsKey(placementId))
  164. {
  165. this.bannerHelperMap[placementId].Call("showBannerAd");
  166. }
  167. }
  168. catch (System.Exception e)
  169. {
  170. System.Console.WriteLine("Exception caught: {0}", e);
  171. Debug.Log("ATBannerAdClient : error." + e.Message);
  172. }
  173. }
  174. public void cleanCache(string placementId)
  175. {
  176. }
  177. //广告加载成功
  178. public void onBannerLoaded(string placementId)
  179. {
  180. Debug.Log("onBannerLoaded...unity3d.");
  181. onAdLoadEvent?.Invoke(this, new ATAdEventArgs(placementId));
  182. }
  183. //广告加载失败
  184. public void onBannerFailed(string placementId,string code, string error)
  185. {
  186. Debug.Log("onBannerFailed...unity3d.");
  187. onAdLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, code, error));
  188. }
  189. //广告点击
  190. public void onBannerClicked(string placementId, string callbackJson)
  191. {
  192. Debug.Log("onBannerClicked...unity3d.");
  193. onAdClickEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
  194. }
  195. //广告展示
  196. public void onBannerShow(string placementId, string callbackJson)
  197. {
  198. Debug.Log("onBannerShow...unity3d.");
  199. onAdImpressEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
  200. }
  201. //广告关闭
  202. public void onBannerClose(string placementId, string callbackJson)
  203. {
  204. Debug.Log("onBannerClose...unity3d.");
  205. onAdCloseEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
  206. }
  207. //广告关闭
  208. public void onBannerAutoRefreshed(string placementId, string callbackJson)
  209. {
  210. Debug.Log("onBannerAutoRefreshed...unity3d.");
  211. onAdAutoRefreshEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
  212. }
  213. //广告自动刷新失败
  214. public void onBannerAutoRefreshFail(string placementId, string code, string msg)
  215. {
  216. Debug.Log("onBannerAutoRefreshFail...unity3d.");
  217. onAdAutoRefreshFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, code, msg));
  218. }
  219. // Adsource Listener
  220. public void onAdSourceBiddingAttempt(string placementId, string callbackJson)
  221. {
  222. Debug.Log("onAdSourceBiddingAttempt...unity3d." + placementId + "," + callbackJson);
  223. onAdSourceBiddingAttemptEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
  224. }
  225. public void onAdSourceBiddingFilled(string placementId, string callbackJson)
  226. {
  227. Debug.Log("onAdSourceBiddingFilled...unity3d." + placementId + "," + callbackJson);
  228. onAdSourceBiddingFilledEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
  229. }
  230. public void onAdSourceBiddingFail(string placementId, string callbackJson, string code, string error)
  231. {
  232. Debug.Log("onAdSourceBiddingFail...unity3d." + placementId + "," + code + "," + error + "," + callbackJson);
  233. onAdSourceBiddingFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, callbackJson, code, error));
  234. }
  235. public void onAdSourceAttempt(string placementId, string callbackJson)
  236. {
  237. Debug.Log("onAdSourceAttempt...unity3d." + placementId + "," + callbackJson);
  238. onAdSourceAttemptEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
  239. }
  240. public void onAdSourceLoadFilled(string placementId, string callbackJson)
  241. {
  242. Debug.Log("onAdSourceLoadFilled...unity3d." + placementId + "," + callbackJson);
  243. onAdSourceFilledEvent?.Invoke(this, new ATAdEventArgs(placementId, callbackJson));
  244. }
  245. public void onAdSourceLoadFail(string placementId, string callbackJson, string code, string error)
  246. {
  247. Debug.Log("onAdSourceLoadFail...unity3d." + placementId + "," + code + "," + error + "," + callbackJson);
  248. onAdSourceLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId, callbackJson, code, error));
  249. }
  250. }
  251. }