ATRewardedVideoWrapper.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  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 ATRewardedVideoWrapper:ATAdWrapper {
  10. static private Dictionary<string, ATRewardedVideoAdClient> clients;
  11. static private string CMessageReceiverClass = "ATRewardedVideoWrapper";
  12. static public new void InvokeCallback(JsonData jsonData) {
  13. Debug.Log("Unity: ATRewardedVideoWrapper::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("OnRewardedVideoLoaded")) {
  26. OnRewardedVideoLoaded((string)msgDict["placement_id"]);
  27. } else if (callback.Equals("OnRewardedVideoLoadFailure")) {
  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["code"] != null) { errorDict.Add("code", errorMsg["code"]); }
  31. if (errorMsg["reason"] != null) { errorDict.Add("message", errorMsg["reason"]); }
  32. OnRewardedVideoLoadFailure((string)msgDict["placement_id"], errorDict);
  33. } else if (callback.Equals("OnRewardedVideoPlayFailure")) {
  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. OnRewardedVideoPlayFailure((string)msgDict["placement_id"], errorDict);
  39. } else if (callback.Equals("OnRewardedVideoPlayStart")) {
  40. OnRewardedVideoPlayStart((string)msgDict["placement_id"], extraJson);
  41. } else if (callback.Equals("OnRewardedVideoPlayEnd")) {
  42. OnRewardedVideoPlayEnd((string)msgDict["placement_id"], extraJson);
  43. } else if (callback.Equals("OnRewardedVideoClick")) {
  44. OnRewardedVideoClick((string)msgDict["placement_id"], extraJson);
  45. } else if (callback.Equals("OnRewardedVideoClose")) {
  46. OnRewardedVideoClose((string)msgDict["placement_id"], (bool)msgDict["rewarded"], extraJson);
  47. } else if (callback.Equals("OnRewardedVideoReward")) {
  48. OnRewardedVideoReward((string)msgDict["placement_id"], extraJson);
  49. } else if (callback.Equals("OnRewardedVideoAdAgainPlayStart")) {
  50. OnRewardedVideoAdAgainPlayStart((string)msgDict["placement_id"], extraJson);
  51. } else if (callback.Equals("OnRewardedVideoAdAgainPlayEnd")) {
  52. OnRewardedVideoAdAgainPlayEnd((string)msgDict["placement_id"], extraJson);
  53. } else if (callback.Equals("OnRewardedVideoAdAgainPlayFailed")) {
  54. Dictionary<string, object> errorDict = new Dictionary<string, object>();
  55. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  56. if (errorMsg.ContainsKey("code")) { errorDict.Add("code", errorMsg["code"]); }
  57. if (errorMsg.ContainsKey("reason")) { errorDict.Add("message", errorMsg["reason"]); }
  58. OnRewardedVideoAdAgainPlayFailed((string)msgDict["placement_id"], errorDict);
  59. } else if (callback.Equals("OnRewardedVideoAdAgainPlayClicked")) {
  60. OnRewardedVideoAdAgainPlayClicked((string)msgDict["placement_id"], extraJson);
  61. }else if (callback.Equals("OnAgainReward")) {
  62. OnAgainReward((string)msgDict["placement_id"], extraJson);
  63. }else if (callback.Equals("startLoadingADSource")) {
  64. StartLoadingADSource((string)msgDict["placement_id"], extraJson);
  65. }else if (callback.Equals("finishLoadingADSource")) {
  66. FinishLoadingADSource((string)msgDict["placement_id"], extraJson);
  67. }else if (callback.Equals("failToLoadADSource")) {
  68. Dictionary<string, object> errorDict = new Dictionary<string, object>();
  69. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  70. if (errorMsg["code"] != null) { errorDict.Add("code", errorMsg["code"]); }
  71. if (errorMsg["reason"] != null) { errorDict.Add("message", errorMsg["reason"]); }
  72. FailToLoadADSource((string)msgDict["placement_id"],extraJson,errorDict);
  73. }else if (callback.Equals("startBiddingADSource")) {
  74. StartBiddingADSource((string)msgDict["placement_id"], extraJson);
  75. }else if (callback.Equals("finishBiddingADSource")) {
  76. FinishBiddingADSource((string)msgDict["placement_id"], extraJson);
  77. }else if (callback.Equals("failBiddingADSource")) {
  78. Dictionary<string, object> errorDict = new Dictionary<string, object>();
  79. Dictionary<string, object> errorMsg = JsonMapper.ToObject<Dictionary<string, object>>(msgJsonData["error"].ToJson());
  80. if (errorMsg["code"] != null) { errorDict.Add("code", errorMsg["code"]); }
  81. if (errorMsg["reason"] != null) { errorDict.Add("message", errorMsg["reason"]); }
  82. FailBiddingADSource((string)msgDict["placement_id"],extraJson, errorDict);
  83. }
  84. }
  85. //Public method(s)
  86. static public void setClientForPlacementID(string placementID, ATRewardedVideoAdClient client) {
  87. if (clients == null) clients = new Dictionary<string, ATRewardedVideoAdClient>();
  88. if (clients.ContainsKey(placementID)) clients.Remove(placementID);
  89. clients.Add(placementID, client);
  90. }
  91. static public void setExtra(Dictionary<string, object> extra) {
  92. Debug.Log("Unity: ATRewardedVideoWrapper::setExtra()");
  93. ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "setExtra:", new object[]{extra});
  94. }
  95. static public void loadRewardedVideo(string placementID, string customData) {
  96. Debug.Log("Unity: ATRewardedVideoWrapper::loadRewardedVideo(" + placementID + ")");
  97. ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "loadRewardedVideoWithPlacementID:customDataJSONString:callback:", new object[]{placementID, customData != null ? customData : ""}, true);
  98. }
  99. static public bool isRewardedVideoReady(string placementID) {
  100. Debug.Log("Unity: ATRewardedVideoWrapper::isRewardedVideoReady(" + placementID + ")");
  101. return ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "rewardedVideoReadyForPlacementID:", new object[]{placementID});
  102. }
  103. static public void showRewardedVideo(string placementID, string mapJson) {
  104. Debug.Log("Unity: ATRewardedVideoWrapper::showRewardedVideo(" + placementID + ")");
  105. ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "showRewardedVideoWithPlacementID:extraJsonString:", new object[]{placementID, mapJson});
  106. }
  107. static public void clearCache() {
  108. Debug.Log("Unity: ATRewardedVideoWrapper::clearCache()");
  109. ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "clearCache", null);
  110. }
  111. static public string checkAdStatus(string placementID) {
  112. Debug.Log("Unity: ATRewardedVideoWrapper::checkAdStatus(" + placementID + ")");
  113. return ATUnityCBridge.GetStringMessageFromC(CMessageReceiverClass, "checkAdStatus:", new object[]{placementID});
  114. }
  115. static public string getValidAdCaches(string placementID)
  116. {
  117. Debug.Log("Unity: ATRewardedVideoWrapper::getValidAdCaches(" + placementID + ")");
  118. return ATUnityCBridge.GetStringMessageFromC(CMessageReceiverClass, "getValidAdCaches:", new object[] { placementID });
  119. }
  120. static public void entryScenarioWithPlacementID(string placementID, string scenarioID)
  121. {
  122. Debug.Log("Unity: ATRewardedVideoWrapper::entryScenarioWithPlacementID(" + placementID + scenarioID + ")");
  123. ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "entryScenarioWithPlacementID:scenarioID:", new object[]{placementID, scenarioID});
  124. }
  125. //Callbacks
  126. static public void OnRewardedVideoLoaded(string placementID) {
  127. Debug.Log("Unity: ATRewardedVideoWrapper::OnRewardedVideoLoaded()");
  128. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdLoaded(placementID);
  129. }
  130. static public void OnRewardedVideoLoadFailure(string placementID, Dictionary<string, object> errorDict) {
  131. Debug.Log("Unity: ATRewardedVideoWrapper::OnRewardedVideoLoadFailure()");
  132. Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict));
  133. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdFailed(placementID, (string)errorDict["code"], (string)errorDict["message"]);
  134. }
  135. static public void OnRewardedVideoPlayFailure(string placementID, Dictionary<string, object> errorDict) {
  136. Debug.Log("Unity: ATRewardedVideoWrapper::OnRewardedVideoPlayFailure()");
  137. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdPlayFailed(placementID, (string)errorDict["code"], (string)errorDict["message"]);
  138. }
  139. static public void OnRewardedVideoPlayStart(string placementID, string callbackJson) {
  140. Debug.Log("Unity: ATRewardedVideoWrapper::OnRewardedVideoPlayStart()");
  141. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdPlayStart(placementID, callbackJson);
  142. }
  143. static public void OnRewardedVideoPlayEnd(string placementID, string callbackJson) {
  144. Debug.Log("Unity: ATRewardedVideoWrapper::OnRewardedVideoPlayEnd()");
  145. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdPlayEnd(placementID, callbackJson);
  146. }
  147. static public void OnRewardedVideoClick(string placementID, string callbackJson) {
  148. Debug.Log("Unity: ATRewardedVideoWrapper::OnRewardedVideoClick()");
  149. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdPlayClicked(placementID, callbackJson);
  150. }
  151. static public void OnRewardedVideoClose(string placementID, bool rewarded, string callbackJson) {
  152. Debug.Log("Unity: ATRewardedVideoWrapper::OnRewardedVideoClose()");
  153. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdClosed(placementID, rewarded, callbackJson);
  154. }
  155. static public void OnRewardedVideoReward(string placementID, string callbackJson)
  156. {
  157. Debug.Log("Unity: ATRewardedVideoWrapper::OnRewardedVideoReward()");
  158. if (clients[placementID] != null) clients[placementID].onRewardedVideoReward(placementID, callbackJson);
  159. }
  160. //------again callback
  161. static public void OnRewardedVideoAdAgainPlayStart(string placementID, string callbackJson)
  162. {
  163. Debug.Log("Unity: ATRewardedVideoWrapper::onRewardedVideoAdAgainPlayStart()");
  164. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdAgainPlayStart(placementID, callbackJson);
  165. }
  166. static public void OnRewardedVideoAdAgainPlayEnd(string placementID, string callbackJson)
  167. {
  168. Debug.Log("Unity: ATRewardedVideoWrapper::onRewardedVideoAdAgainPlayEnd()");
  169. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdAgainPlayEnd(placementID, callbackJson);
  170. }
  171. static public void OnRewardedVideoAdAgainPlayFailed(string placementID, Dictionary<string, object> errorDict)
  172. {
  173. Debug.Log("Unity: ATRewardedVideoWrapper::onRewardedVideoAdAgainPlayFailed()");
  174. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdAgainPlayFailed(placementID, (string)errorDict["code"], (string)errorDict["message"]);
  175. }
  176. static public void OnRewardedVideoAdAgainPlayClicked(string placementID, string callbackJson)
  177. {
  178. Debug.Log("Unity: ATRewardedVideoWrapper::onRewardedVideoAdAgainPlayClicked()");
  179. if (clients[placementID] != null) clients[placementID].onRewardedVideoAdAgainPlayClicked(placementID, callbackJson);
  180. }
  181. static public void OnAgainReward(string placementID, string callbackJson)
  182. {
  183. Debug.Log("Unity: ATRewardedVideoWrapper::onAgainReward()");
  184. if (clients[placementID] != null) clients[placementID].onAgainReward(placementID, callbackJson);
  185. }
  186. // Auto
  187. static public void addAutoLoadAdPlacementID(string placementID)
  188. {
  189. Debug.Log("Unity: ATRewardedVideoWrapper::addAutoLoadAdPlacementID(" + placementID + ")");
  190. ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "addAutoLoadAdPlacementID:callback:", new object[]{placementID}, true);
  191. }
  192. static public void removeAutoLoadAdPlacementID(string placementID)
  193. {
  194. Debug.Log("Unity: ATRewardedVideoWrapper::removeAutoLoadAdPlacementID(" + placementID + ")");
  195. ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "removeAutoLoadAdPlacementID:", new object[]{placementID});
  196. }
  197. static public bool autoLoadRewardedVideoReadyForPlacementID(string placementID)
  198. {
  199. Debug.Log("Unity: ATRewardedVideoWrapper::autoLoadRewardedVideoReadyForPlacementID(" + placementID + ")");
  200. return ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "autoLoadRewardedVideoReadyForPlacementID:", new object[]{placementID});
  201. }
  202. static public string getAutoValidAdCaches(string placementID)
  203. {
  204. Debug.Log("Unity: ATRewardedVideoWrapper::getAutoValidAdCaches");
  205. return ATUnityCBridge.GetStringMessageFromC(CMessageReceiverClass, "getAutoValidAdCaches:", new object[]{placementID});
  206. }
  207. static public string checkAutoAdStatus(string placementID) {
  208. Debug.Log("Unity: ATRewardedVideoWrapper::checkAutoAdStatus(" + placementID + ")");
  209. return ATUnityCBridge.GetStringMessageFromC(CMessageReceiverClass, "checkAutoAdStatus:", new object[]{placementID});
  210. }
  211. static public void setAutoLocalExtra(string placementID, string customData)
  212. {
  213. Debug.Log("Unity: ATRewardedVideoWrapper::setAutoLocalExtra(" + placementID + customData + ")");
  214. ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "setAutoLocalExtra:customDataJSONString:", new object[] {placementID, customData != null ? customData : ""});
  215. }
  216. static public void entryAutoAdScenarioWithPlacementID(string placementID, string scenarioID)
  217. {
  218. Debug.Log("Unity: ATRewardedVideoWrapper::entryAutoAdScenarioWithPlacementID(" + placementID + scenarioID + ")");
  219. ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "entryAutoAdScenarioWithPlacementID:scenarioID:", new object[]{placementID, scenarioID});
  220. }
  221. static public void showAutoRewardedVideo(string placementID, string mapJson) {
  222. Debug.Log("Unity: ATRewardedVideoWrapper::showAutoRewardedVideo(" + placementID + ")");
  223. ATUnityCBridge.SendMessageToC(CMessageReceiverClass, "showAutoRewardedVideoWithPlacementID:extraJsonString:", new object[]{placementID, mapJson});
  224. }
  225. // ad source callback
  226. static public void StartLoadingADSource(string placementID, string callbackJson)
  227. {
  228. Debug.Log("Unity: ATRewardedVideoWrapper::StartLoadingADSource()");
  229. if (clients[placementID] != null) clients[placementID].startLoadingADSource(placementID, callbackJson);
  230. }
  231. static public void FinishLoadingADSource(string placementID, string callbackJson)
  232. {
  233. Debug.Log("Unity: ATRewardedVideoWrapper::FinishLoadingADSource()");
  234. if (clients[placementID] != null) clients[placementID].finishLoadingADSource(placementID, callbackJson);
  235. }
  236. static public void FailToLoadADSource(string placementID, string callbackJson, Dictionary<string, object> errorDict)
  237. {
  238. Debug.Log("Unity: ATRewardedVideoWrapper::FailToLoadADSource()");
  239. Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict));
  240. if (clients[placementID] != null) clients[placementID].failToLoadADSource(placementID, callbackJson,(string)errorDict["code"], (string)errorDict["message"]);
  241. }
  242. static public void StartBiddingADSource(string placementID, string callbackJson)
  243. {
  244. Debug.Log("Unity: ATRewardedVideoWrapper::StartBiddingADSource()");
  245. if (clients[placementID] != null) clients[placementID].startBiddingADSource(placementID, callbackJson);
  246. }
  247. static public void FinishBiddingADSource(string placementID, string callbackJson)
  248. {
  249. Debug.Log("Unity: ATRewardedVideoWrapper::FinishBiddingADSource()");
  250. if (clients[placementID] != null) clients[placementID].finishBiddingADSource(placementID, callbackJson);
  251. }
  252. static public void FailBiddingADSource(string placementID, string callbackJson,Dictionary<string, object> errorDict)
  253. {
  254. Debug.Log("Unity: ATRewardedVideoWrapper::FailBiddingADSource()");
  255. Debug.Log("placementID = " + placementID + "errorDict = " + JsonMapper.ToJson(errorDict));
  256. if (clients[placementID] != null) clients[placementID].failBiddingADSource(placementID,callbackJson,(string)errorDict["code"], (string)errorDict["message"]);
  257. }
  258. }