ATBannerAdWrapper.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System;
  5. using AOT;
  6. using AnyThinkAds.ThirdParty.LitJson;
  7. using AnyThinkAds.iOS;
  8. using AnyThinkAds.Api;
  9. #pragma warning disable 0109
  10. public class ATBannerAdWrapper:ATAdWrapper {
  11. static private Dictionary<string, ATBannerAdClient> clients;
  12. static private string CMessaageReceiverClass = "ATBannerAdWrapper";
  13. static public new void InvokeCallback(JsonData jsonData) {
  14. Debug.Log("Unity: ATBannerAdWrapper::InvokeCallback()");
  15. string extraJson = "";
  16. string callback = (string)jsonData["callback"];
  17. Dictionary<string, object> msgDict = JsonMapper.ToObject<Dictionary<string, object>>(jsonData["msg"].ToJson());
  18. JsonData msgJsonData = jsonData["msg"];
  19. IDictionary idic = (System.Collections.IDictionary)msgJsonData;
  20. if (idic.Contains("extra")) {
  21. JsonData extraJsonDate = msgJsonData["extra"];
  22. if (extraJsonDate != null) {
  23. extraJson = msgJsonData["extra"].ToJson();
  24. }
  25. }
  26. if (callback.Equals("OnBannerAdLoad")) {
  27. OnBannerAdLoad((string)msgDict["placement_id"]);
  28. } else if (callback.Equals("OnBannerAdLoadFail")) {
  29. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  30. OnBannerAdLoadFail((string)msgDict["placement_id"], (string)errorMsg["code"], (string)errorMsg["reason"]);
  31. } else if (callback.Equals("OnBannerAdImpress")) {
  32. OnBannerAdImpress((string)msgDict["placement_id"], extraJson);
  33. } else if (callback.Equals("OnBannerAdClick")) {
  34. OnBannerAdClick((string)msgDict["placement_id"], extraJson);
  35. } else if (callback.Equals("OnBannerAdAutoRefresh")) {
  36. OnBannerAdAutoRefresh((string)msgDict["placement_id"], extraJson);
  37. } else if (callback.Equals("OnBannerAdAutoRefreshFail")) {
  38. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  39. OnBannerAdAutoRefreshFail((string)msgDict["placement_id"], (string)errorMsg["code"], (string)errorMsg["reason"]);
  40. } else if (callback.Equals("OnBannerAdClose")) {
  41. OnBannerAdClose((string)msgDict["placement_id"]);
  42. } else if (callback.Equals("OnBannerAdCloseButtonTapped")) {
  43. OnBannerAdCloseButtonTapped((string)msgDict["placement_id"], extraJson);
  44. }else if (callback.Equals("startLoadingADSource")) {
  45. StartLoadingADSource((string)msgDict["placement_id"], extraJson);
  46. }else if (callback.Equals("finishLoadingADSource")) {
  47. FinishLoadingADSource((string)msgDict["placement_id"], extraJson);
  48. }else if (callback.Equals("failToLoadADSource")) {
  49. Dictionary<string, object> errorDict = new Dictionary<string, object>();
  50. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  51. if (errorMsg["code"] != null) { errorDict.Add("code", errorMsg["code"]); }
  52. if (errorMsg["reason"] != null) { errorDict.Add("message", errorMsg["reason"]); }
  53. FailToLoadADSource((string)msgDict["placement_id"], extraJson,errorDict);
  54. }else if (callback.Equals("startBiddingADSource")) {
  55. StartBiddingADSource((string)msgDict["placement_id"], extraJson);
  56. }else if (callback.Equals("finishBiddingADSource")) {
  57. FinishBiddingADSource((string)msgDict["placement_id"], extraJson);
  58. }else if (callback.Equals("failBiddingADSource")) {
  59. Dictionary<string, object> errorDict = new Dictionary<string, object>();
  60. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  61. if (errorMsg["code"] != null) { errorDict.Add("code", errorMsg["code"]); }
  62. if (errorMsg["reason"] != null) { errorDict.Add("message", errorMsg["reason"]); }
  63. FailBiddingADSource((string)msgDict["placement_id"],extraJson, errorDict);
  64. }
  65. }
  66. static public void loadBannerAd(string placementID, string customData) {
  67. Debug.Log("Unity: ATBannerAdWrapper::loadBannerAd(" + placementID + ")");
  68. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "loadBannerAdWithPlacementID:customDataJSONString:callback:", new object[]{placementID, customData != null ? customData : ""}, true);
  69. }
  70. static public string checkAdStatus(string placementID) {
  71. Debug.Log("Unity: ATBannerAdWrapper::checkAdStatus(" + placementID + ")");
  72. return ATUnityCBridge.GetStringMessageFromC(CMessaageReceiverClass, "checkAdStatus:", new object[]{placementID});
  73. }
  74. static public string getValidAdCaches(string placementID)
  75. {
  76. Debug.Log("Unity: ATBannerAdWrapper::getValidAdCaches(" + placementID + ")");
  77. return ATUnityCBridge.GetStringMessageFromC(CMessaageReceiverClass, "getValidAdCaches:", new object[] { placementID });
  78. }
  79. static public void hideBannerAd(string placementID) {
  80. Debug.Log("Unity: ATBannerAdWrapper::showBannerAd(" + placementID + ")");
  81. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "hideBannerAdWithPlacementID:", new object[]{placementID}, false);
  82. }
  83. static public void showBannerAd(string placementID) {
  84. Debug.Log("Unity: ATBannerAdWrapper::showBannerAd(" + placementID + ")");
  85. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "showBannerAdWithPlacementID:", new object[]{placementID}, false);
  86. }
  87. static public void showBannerAd(string placementID, string position)
  88. {
  89. Debug.Log("Unity: ATBannerAdWrapper::showBannerAd(" + placementID + "," + position + ")");
  90. Dictionary<string, object> rectDict = new Dictionary<string, object> { { "position", position } };
  91. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "showBannerAdWithPlacementID:rect:extraJsonString:", new object[] { placementID, JsonMapper.ToJson(rectDict), null}, false);
  92. }
  93. static public void showBannerAd(string placementID, string position, string mapJson)
  94. {
  95. Debug.Log("Unity: ATBannerAdWrapper::showBannerAd(" + placementID + "," + position + ")");
  96. Dictionary<string, object> rectDict = new Dictionary<string, object> { { "position", position } };
  97. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "showBannerAdWithPlacementID:rect:extraJsonString:", new object[] { placementID, JsonMapper.ToJson(rectDict), mapJson}, false);
  98. }
  99. static public void showBannerAd(string placementID, ATRect rect) {
  100. Debug.Log("Unity: ATBannerAdWrapper::showBannerAd(" + placementID + ")");
  101. Dictionary<string, object> rectDict = new Dictionary<string, object>{ {"x", rect.x}, {"y", rect.y}, {"width", rect.width}, {"height", rect.height}, {"uses_pixel", rect.usesPixel}};
  102. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "showBannerAdWithPlacementID:rect:extraJsonString:", new object[]{placementID, JsonMapper.ToJson(rectDict), null}, false);
  103. }
  104. static public void showBannerAd(string placementID, ATRect rect, string mapJson) {
  105. Debug.Log("Unity: ATBannerAdWrapper::showBannerAd(" + placementID + ")");
  106. Dictionary<string, object> rectDict = new Dictionary<string, object>{ {"x", rect.x}, {"y", rect.y}, {"width", rect.width}, {"height", rect.height}, {"uses_pixel", rect.usesPixel}};
  107. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "showBannerAdWithPlacementID:rect:extraJsonString:", new object[]{placementID, JsonMapper.ToJson(rectDict), mapJson}, false);
  108. }
  109. static public void cleanBannerAd(string placementID) {
  110. Debug.Log("Unity: ATBannerAdWrapper::cleanBannerAd(" + placementID + ")");
  111. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "removeBannerAdWithPlacementID:", new object[]{placementID}, false);
  112. }
  113. static public void clearCache() {
  114. Debug.Log("Unity: ATBannerAdWrapper::clearCache()");
  115. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "clearCache", null);
  116. }
  117. static public void setClientForPlacementID(string placementID, ATBannerAdClient client) {
  118. if (clients == null) clients = new Dictionary<string, ATBannerAdClient>();
  119. if (clients.ContainsKey(placementID)) clients.Remove(placementID);
  120. clients.Add(placementID, client);
  121. }
  122. static private void OnBannerAdLoad(string placementID) {
  123. Debug.Log("Unity: ATBannerAdWrapper::OnBannerAdLoad()");
  124. if (clients[placementID] != null) clients[placementID].OnBannerAdLoad(placementID);
  125. }
  126. static private void OnBannerAdLoadFail(string placementID, string code, string message) {
  127. Debug.Log("Unity: ATBannerAdWrapper::OnBannerAdLoadFail()");
  128. if (clients[placementID] != null) clients[placementID].OnBannerAdLoadFail(placementID, code, message);
  129. }
  130. static private void OnBannerAdImpress(string placementID, string callbackJson) {
  131. Debug.Log("Unity: ATBannerAdWrapper::OnBannerAdImpress()");
  132. if (clients[placementID] != null) clients[placementID].OnBannerAdImpress(placementID, callbackJson);
  133. }
  134. static private void OnBannerAdClick(string placementID, string callbackJson) {
  135. Debug.Log("Unity: ATBannerAdWrapper::OnBannerAdClick()");
  136. if (clients[placementID] != null) clients[placementID].OnBannerAdClick(placementID, callbackJson);
  137. }
  138. static private void OnBannerAdAutoRefresh(string placementID, string callbackJson) {
  139. Debug.Log("Unity: ATBannerAdWrapper::OnBannerAdAutoRefresh()");
  140. if (clients[placementID] != null) clients[placementID].OnBannerAdAutoRefresh(placementID, callbackJson);
  141. }
  142. static private void OnBannerAdAutoRefreshFail(string placementID, string code, string message) {
  143. Debug.Log("Unity: ATBannerAdWrapper::OnBannerAdAutoRefreshFail()");
  144. if (clients[placementID] != null) clients[placementID].OnBannerAdAutoRefreshFail(placementID, code, message);
  145. }
  146. static private void OnBannerAdCloseButtonTapped(string placementID, string callbackJson) {
  147. Debug.Log("Unity: ATBannerAdWrapper::onAdCloseButtonTapped()");
  148. if (clients[placementID] != null) clients[placementID].OnBannerAdCloseButtonTapped(placementID, callbackJson);
  149. }
  150. static private void OnBannerAdClose(string placementID) {
  151. Debug.Log("Unity: ATBannerAdWrapper::OnBannerAdClose()");
  152. if (clients[placementID] != null) clients[placementID].OnBannerAdClose(placementID);
  153. }
  154. // ad source callback
  155. static public void StartLoadingADSource(string placementID, string callbackJson)
  156. {
  157. Debug.Log("Unity: ATBannerAdWrapper::StartLoadingADSource()");
  158. if (clients[placementID] != null) clients[placementID].startLoadingADSource(placementID, callbackJson);
  159. }
  160. static public void FinishLoadingADSource(string placementID, string callbackJson)
  161. {
  162. Debug.Log("Unity: ATBannerAdWrapper::FinishLoadingADSource()");
  163. if (clients[placementID] != null) clients[placementID].finishLoadingADSource(placementID, callbackJson);
  164. }
  165. static public void FailToLoadADSource(string placementID,string callbackJson, Dictionary<string, object> errorDict)
  166. {
  167. Debug.Log("Unity: ATBannerAdWrapper::FailToLoadADSource()");
  168. Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict));
  169. if (clients[placementID] != null) clients[placementID].failToLoadADSource(placementID,callbackJson, (string)errorDict["code"], (string)errorDict["message"]);
  170. }
  171. static public void StartBiddingADSource(string placementID, string callbackJson)
  172. {
  173. Debug.Log("Unity: ATBannerAdWrapper::StartBiddingADSource()");
  174. if (clients[placementID] != null) clients[placementID].startBiddingADSource(placementID, callbackJson);
  175. }
  176. static public void FinishBiddingADSource(string placementID, string callbackJson)
  177. {
  178. Debug.Log("Unity: ATBannerAdWrapper::FinishBiddingADSource()");
  179. if (clients[placementID] != null) clients[placementID].finishBiddingADSource(placementID, callbackJson);
  180. }
  181. static public void FailBiddingADSource(string placementID,string callbackJson, Dictionary<string, object> errorDict)
  182. {
  183. Debug.Log("Unity: ATBannerAdWrapper::FailBiddingADSource()");
  184. Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict));
  185. if (clients[placementID] != null) clients[placementID].failBiddingADSource(placementID, callbackJson,(string)errorDict["code"], (string)errorDict["message"]);
  186. }
  187. }