ATSplashAdWrapper.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  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. #pragma warning disable 0109
  9. public class ATSplashAdWrapper:ATAdWrapper {
  10. static private Dictionary<string, ATSplashAdClient> clients;
  11. static private string CMessaageReceiverClass = "ATSplashAdWrapper";
  12. static public new void InvokeCallback(JsonData jsonData) {
  13. Debug.Log("Unity: ATSplashAdWrapper::InvokeCallback()");
  14. string extraJson = "";
  15. string callback = (string)jsonData["callback"];
  16. Dictionary<string, object> msgDict = JsonMapper.ToObject<Dictionary<string, object>>(jsonData["msg"].ToJson());
  17. JsonData msgJsonData = jsonData["msg"];
  18. IDictionary idic = (System.Collections.IDictionary)msgJsonData;
  19. if (idic.Contains("extra")) {
  20. JsonData extraJsonDate = msgJsonData["extra"];
  21. if (extraJsonDate != null) {
  22. extraJson = msgJsonData["extra"].ToJson();
  23. }
  24. }
  25. if (callback.Equals("OnSplashAdLoaded")) {
  26. OnSplashAdLoaded((string)msgDict["placement_id"]);
  27. } else if (callback.Equals("OnSplashAdLoadFailure")) {
  28. Dictionary<string, object> errorDict = new Dictionary<string, object>();
  29. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  30. if (errorMsg.ContainsKey("code")) { errorDict.Add("code", errorMsg["code"]); }
  31. if (errorMsg.ContainsKey("reason")) { errorDict.Add("message", errorMsg["reason"]); }
  32. OnSplashAdLoadFailure((string)msgDict["placement_id"], errorDict);
  33. } else if (callback.Equals("OnSplashAdVideoPlayFailure")) {
  34. Dictionary<string, object> errorDict = new Dictionary<string, object>();
  35. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  36. if (errorMsg.ContainsKey("code")) { errorDict.Add("code", errorMsg["code"]); }
  37. if (errorMsg.ContainsKey("reason")) { errorDict.Add("message", errorMsg["reason"]); }
  38. OnSplashAdVideoPlayFailure((string)msgDict["placement_id"], errorDict);
  39. } else if (callback.Equals("OnSplashAdVideoPlayStart")) {
  40. OnSplashAdVideoPlayStart((string)msgDict["placement_id"], extraJson);
  41. } else if (callback.Equals("OnSplashAdVideoPlayEnd")) {
  42. OnSplashAdVideoPlayEnd((string)msgDict["placement_id"], extraJson);
  43. } else if (callback.Equals("OnSplashAdShow")) {
  44. OnSplashAdShow((string)msgDict["placement_id"], extraJson);
  45. } else if (callback.Equals("OnSplashAdClick")) {
  46. OnSplashAdClick((string)msgDict["placement_id"], extraJson);
  47. } else if (callback.Equals("OnSplashAdClose")) {
  48. OnSplashAdClose((string)msgDict["placement_id"], extraJson);
  49. } else if (callback.Equals("OnSplashAdFailedToShow")) {
  50. OnSplashAdFailedToShow((string)msgDict["placement_id"]);
  51. }else if (callback.Equals("startLoadingADSource")) {
  52. StartLoadingADSource((string)msgDict["placement_id"], extraJson);
  53. }else if (callback.Equals("finishLoadingADSource")) {
  54. FinishLoadingADSource((string)msgDict["placement_id"], extraJson);
  55. }else if (callback.Equals("failToLoadADSource")) {
  56. Dictionary<string, object> errorDict = new Dictionary<string, object>();
  57. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  58. if (errorMsg["code"] != null) { errorDict.Add("code", errorMsg["code"]); }
  59. if (errorMsg["reason"] != null) { errorDict.Add("message", errorMsg["reason"]); }
  60. FailToLoadADSource((string)msgDict["placement_id"],extraJson, errorDict);
  61. }else if (callback.Equals("startBiddingADSource")) {
  62. StartBiddingADSource((string)msgDict["placement_id"], extraJson);
  63. }else if (callback.Equals("finishBiddingADSource")) {
  64. FinishBiddingADSource((string)msgDict["placement_id"], extraJson);
  65. }else if (callback.Equals("failBiddingADSource")) {
  66. Dictionary<string, object> errorDict = new Dictionary<string, object>();
  67. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  68. if (errorMsg["code"] != null) { errorDict.Add("code", errorMsg["code"]); }
  69. if (errorMsg["reason"] != null) { errorDict.Add("message", errorMsg["reason"]); }
  70. FailBiddingADSource((string)msgDict["placement_id"],extraJson, errorDict);
  71. }
  72. }
  73. static public void setClientForPlacementID(string placementID, ATSplashAdClient client) {
  74. if (clients == null) clients = new Dictionary<string, ATSplashAdClient>();
  75. if (clients.ContainsKey(placementID)) clients.Remove(placementID);
  76. clients.Add(placementID, client);
  77. }
  78. static public void loadSplashAd(string placementID, string customData) {
  79. Debug.Log("Unity: ATSplashAdWrapper::loadSplashAd(" + placementID + ")");
  80. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "loadSplashAdWithPlacementID:customDataJSONString:callback:", new object[]{placementID, customData != null ? customData : ""}, true);
  81. }
  82. static public bool hasSplashAdReady(string placementID) {
  83. Debug.Log("Unity: ATSplashAdWrapper::isSplashAdReady(" + placementID + ")");
  84. return ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "splashAdReadyForPlacementID:", new object[]{placementID});
  85. }
  86. static public void showSplashAd(string placementID, string mapJson) {
  87. Debug.Log("Unity: ATSplashAdWrapper::showSplashAd(" + placementID + ")");
  88. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "showSplashAdWithPlacementID:extraJsonString:", new object[]{placementID, mapJson});
  89. }
  90. static public void clearCache(string placementID) {
  91. Debug.Log("Unity: ATSplashAdWrapper::clearCache()");
  92. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "clearCache", null);
  93. }
  94. static public string checkAdStatus(string placementID) {
  95. Debug.Log("Unity: ATSplashAdWrapper::checkAdStatus(" + placementID + ")");
  96. return ATUnityCBridge.GetStringMessageFromC(CMessaageReceiverClass, "checkAdStatus:", new object[]{placementID});
  97. }
  98. static public string getValidAdCaches(string placementID)
  99. {
  100. Debug.Log("Unity: ATSplashAdWrapper::checkAdStatus(" + placementID + ")");
  101. return ATUnityCBridge.GetStringMessageFromC(CMessaageReceiverClass, "getValidAdCaches:", new object[] { placementID });
  102. }
  103. static public void entryScenarioWithPlacementID(string placementID, string scenarioID)
  104. {
  105. Debug.Log("Unity: ATSplashAdWrapper::entryScenarioWithPlacementID(" + placementID + scenarioID + ")");
  106. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "entryScenarioWithPlacementID:scenarioID:", new object[]{placementID, scenarioID});
  107. }
  108. //Callbacks
  109. static private void OnSplashAdLoaded(string placementID) {
  110. Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdLoaded()");
  111. if (clients[placementID] != null) clients[placementID].OnSplashAdLoaded(placementID);
  112. }
  113. static private void OnSplashAdLoadFailure(string placementID, Dictionary<string, object> errorDict) {
  114. Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdLoadFailure()");
  115. Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict));
  116. if (clients[placementID] != null) clients[placementID].OnSplashAdLoadFailure(placementID, (string)errorDict["code"], (string)errorDict["message"]);
  117. }
  118. static private void OnSplashAdVideoPlayFailure(string placementID, Dictionary<string, object> errorDict) {
  119. Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdVideoPlayFailure()");
  120. if (clients[placementID] != null) clients[placementID].OnSplashAdVideoPlayFailure(placementID, (string)errorDict["code"], (string)errorDict["message"]);
  121. }
  122. static private void OnSplashAdVideoPlayStart(string placementID, string callbackJson) {
  123. Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdPlayStart()");
  124. if (clients[placementID] != null) clients[placementID].OnSplashAdVideoPlayStart(placementID, callbackJson);
  125. }
  126. static private void OnSplashAdVideoPlayEnd(string placementID, string callbackJson) {
  127. Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdVideoPlayEnd()");
  128. if (clients[placementID] != null) clients[placementID].OnSplashAdVideoPlayEnd(placementID, callbackJson);
  129. }
  130. static private void OnSplashAdShow(string placementID, string callbackJson) {
  131. Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdShow()");
  132. if (clients[placementID] != null) clients[placementID].OnSplashAdShow(placementID, callbackJson);
  133. }
  134. static private void OnSplashAdFailedToShow(string placementID) {
  135. Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdFailedToShow()");
  136. if (clients[placementID] != null) clients[placementID].OnSplashAdFailedToShow(placementID);
  137. }
  138. static private void OnSplashAdClick(string placementID, string callbackJson) {
  139. Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdClick()");
  140. if (clients[placementID] != null) clients[placementID].OnSplashAdClick(placementID, callbackJson);
  141. }
  142. static private void OnSplashAdClose(string placementID, string callbackJson) {
  143. Debug.Log("Unity: ATSplashAdWrapper::OnSplashAdClose()");
  144. if (clients[placementID] != null) clients[placementID].OnSplashAdClose(placementID, callbackJson);
  145. }
  146. // ad source callback
  147. static public void StartLoadingADSource(string placementID, string callbackJson)
  148. {
  149. Debug.Log("Unity: ATSplashAdWrapper::StartLoadingADSource()");
  150. if (clients[placementID] != null) clients[placementID].startLoadingADSource(placementID, callbackJson);
  151. }
  152. static public void FinishLoadingADSource(string placementID, string callbackJson)
  153. {
  154. Debug.Log("Unity: ATSplashAdWrapper::FinishLoadingADSource()");
  155. if (clients[placementID] != null) clients[placementID].finishLoadingADSource(placementID, callbackJson);
  156. }
  157. static public void FailToLoadADSource(string placementID,string callbackJson, Dictionary<string, object> errorDict)
  158. {
  159. Debug.Log("Unity: ATSplashAdWrapper::FailToLoadADSource()");
  160. Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict));
  161. if (clients[placementID] != null) clients[placementID].failToLoadADSource(placementID,callbackJson,(string)errorDict["code"], (string)errorDict["message"]);
  162. }
  163. static public void StartBiddingADSource(string placementID, string callbackJson)
  164. {
  165. Debug.Log("Unity: ATSplashAdWrapper::StartBiddingADSource()");
  166. if (clients[placementID] != null) clients[placementID].startBiddingADSource(placementID, callbackJson);
  167. }
  168. static public void FinishBiddingADSource(string placementID, string callbackJson)
  169. {
  170. Debug.Log("Unity: ATSplashAdWrapper::FinishBiddingADSource()");
  171. if (clients[placementID] != null) clients[placementID].finishBiddingADSource(placementID, callbackJson);
  172. }
  173. static public void FailBiddingADSource(string placementID, string callbackJson,Dictionary<string, object> errorDict)
  174. {
  175. Debug.Log("Unity: ATSplashAdWrapper::FailBiddingADSource()");
  176. Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict));
  177. if (clients[placementID] != null) clients[placementID].failBiddingADSource(placementID,callbackJson,(string)errorDict["code"], (string)errorDict["message"]);
  178. }
  179. // Auto
  180. static public void addAutoLoadAdPlacementID(string placementID)
  181. {
  182. Debug.Log("Unity: ATSplashAdWrapper::addAutoLoadAdPlacementID(" + placementID + ")");
  183. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "addAutoLoadAdPlacementID:callback:", new object[]{placementID}, true);
  184. }
  185. static public void removeAutoLoadAdPlacementID(string placementID)
  186. {
  187. Debug.Log("Unity: ATSplashAdWrapper::removeAutoLoadAdPlacementID(" + placementID + ")");
  188. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "removeAutoLoadAdPlacementID:", new object[]{placementID});
  189. }
  190. static public bool autoLoadSplashAdReadyForPlacementID(string placementID)
  191. {
  192. Debug.Log("Unity: ATSplashAdWrapper::autoLoadSplashAdReadyForPlacementID(" + placementID + ")");
  193. return ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "autoLoadSplashAdReadyForPlacementID:", new object[]{placementID});
  194. }
  195. static public string getAutoValidAdCaches(string placementID)
  196. {
  197. Debug.Log("Unity: ATSplashAdWrapper::getAutoValidAdCaches");
  198. return ATUnityCBridge.GetStringMessageFromC(CMessaageReceiverClass, "getAutoValidAdCaches:", new object[]{placementID});
  199. }
  200. static public string checkAutoAdStatus(string placementID) {
  201. Debug.Log("Unity: ATSplashAdWrapper::checkAutoAdStatus(" + placementID + ")");
  202. return ATUnityCBridge.GetStringMessageFromC(CMessaageReceiverClass, "checkAutoAdStatus:", new object[]{placementID});
  203. }
  204. static public void setAutoLocalExtra(string placementID, string customData)
  205. {
  206. Debug.Log("Unity: ATSplashAdWrapper::setAutoLocalExtra(" + placementID + customData + ")");
  207. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "setAutoLocalExtra:customDataJSONString:", new object[] {placementID, customData != null ? customData : ""});
  208. }
  209. static public void entryAutoAdScenarioWithPlacementID(string placementID, string scenarioID)
  210. {
  211. Debug.Log("Unity: ATSplashAdWrapper::entryAutoAdScenarioWithPlacementID(" + placementID + scenarioID + ")");
  212. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "entryAutoAdScenarioWithPlacementID:scenarioID:", new object[]{placementID, scenarioID});
  213. }
  214. static public void showAutoSplashAd(string placementID, string mapJson) {
  215. Debug.Log("Unity: ATSplashAdWrapper::showAutoSplashAd(" + placementID + ")");
  216. ATUnityCBridge.SendMessageToC(CMessaageReceiverClass, "showAutoSplashAd:extraJsonString:", new object[]{placementID, mapJson});
  217. }
  218. }