MaxSdkCallbacks.cs 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139
  1. // ReSharper disable RedundantArgumentDefaultValue
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text.RegularExpressions;
  5. using UnityEngine;
  6. using AppLovinMax.ThirdParty.MiniJson;
  7. using AppLovinMax.Internal;
  8. /// <summary>
  9. /// This is is a global Unity object that is used to forward callbacks from native iOS / Android Max code to the application.
  10. /// </summary>
  11. public static class MaxSdkCallbacks
  12. {
  13. /// <summary>
  14. /// Fired when the SDK has finished initializing
  15. /// </summary>
  16. private static Action<MaxSdkBase.SdkConfiguration> onSdkInitializedEvent;
  17. public static event Action<MaxSdkBase.SdkConfiguration> OnSdkInitializedEvent
  18. {
  19. add
  20. {
  21. LogSubscribedToEvent("OnSdkInitializedEvent");
  22. onSdkInitializedEvent += value;
  23. }
  24. remove
  25. {
  26. LogUnsubscribedToEvent("OnSdkInitializedEvent");
  27. onSdkInitializedEvent -= value;
  28. }
  29. }
  30. /// <summary>
  31. /// Fired when the application is paused or resumed.
  32. /// </summary>
  33. private static Action<bool> onApplicationStateChangedEvent;
  34. public static event Action<bool> OnApplicationStateChangedEvent
  35. {
  36. add
  37. {
  38. LogSubscribedToEvent("OnApplicationStateChangedEvent");
  39. onApplicationStateChangedEvent += value;
  40. }
  41. remove
  42. {
  43. LogUnsubscribedToEvent("OnApplicationStateChangedEvent");
  44. onApplicationStateChangedEvent -= value;
  45. }
  46. }
  47. public static class Interstitial
  48. {
  49. internal static Action<string, MaxSdkBase.AdInfo> onAdLoadedEvent;
  50. public static event Action<string, MaxSdkBase.AdInfo> OnAdLoadedEvent
  51. {
  52. add
  53. {
  54. LogSubscribedToEvent("OnInterstitialAdLoadedEvent");
  55. onAdLoadedEvent += value;
  56. }
  57. remove
  58. {
  59. LogUnsubscribedToEvent("OnInterstitialAdLoadedEvent");
  60. onAdLoadedEvent -= value;
  61. }
  62. }
  63. internal static Action<string, MaxSdkBase.ErrorInfo> onAdLoadFailedEvent;
  64. public static event Action<string, MaxSdkBase.ErrorInfo> OnAdLoadFailedEvent
  65. {
  66. add
  67. {
  68. LogSubscribedToEvent("OnInterstitialAdLoadFailedEvent");
  69. onAdLoadFailedEvent += value;
  70. }
  71. remove
  72. {
  73. LogUnsubscribedToEvent("OnInterstitialAdLoadFailedEvent");
  74. onAdLoadFailedEvent -= value;
  75. }
  76. }
  77. /// <summary>
  78. /// Fired when an interstitial ad is displayed (may not be received by Unity until the interstitial ad closes).
  79. /// </summary>
  80. internal static Action<string, MaxSdkBase.AdInfo> onAdDisplayedEvent;
  81. public static event Action<string, MaxSdkBase.AdInfo> OnAdDisplayedEvent
  82. {
  83. add
  84. {
  85. LogSubscribedToEvent("OnInterstitialAdDisplayedEvent");
  86. onAdDisplayedEvent += value;
  87. }
  88. remove
  89. {
  90. LogUnsubscribedToEvent("OnInterstitialAdDisplayedEvent");
  91. onAdDisplayedEvent -= value;
  92. }
  93. }
  94. internal static Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> onAdDisplayFailedEvent;
  95. public static event Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> OnAdDisplayFailedEvent
  96. {
  97. add
  98. {
  99. LogSubscribedToEvent("OnInterstitialAdDisplayFailedEvent");
  100. onAdDisplayFailedEvent += value;
  101. }
  102. remove
  103. {
  104. LogUnsubscribedToEvent("OnInterstitialAdDisplayFailedEvent");
  105. onAdDisplayFailedEvent -= value;
  106. }
  107. }
  108. internal static Action<string, MaxSdkBase.AdInfo> onAdClickedEvent;
  109. public static event Action<string, MaxSdkBase.AdInfo> OnAdClickedEvent
  110. {
  111. add
  112. {
  113. LogSubscribedToEvent("OnInterstitialAdClickedEvent");
  114. onAdClickedEvent += value;
  115. }
  116. remove
  117. {
  118. LogUnsubscribedToEvent("OnInterstitialAdClickedEvent");
  119. onAdClickedEvent -= value;
  120. }
  121. }
  122. /// <summary>
  123. /// Fired when an interstitial ad impression was validated and revenue will be paid.
  124. /// Executed on a background thread to avoid any delays in execution.
  125. /// </summary>
  126. internal static Action<string, MaxSdkBase.AdInfo> onAdRevenuePaidEvent;
  127. public static event Action<string, MaxSdkBase.AdInfo> OnAdRevenuePaidEvent
  128. {
  129. add
  130. {
  131. LogSubscribedToEvent("OnInterstitialAdRevenuePaidEvent");
  132. onAdRevenuePaidEvent += value;
  133. }
  134. remove
  135. {
  136. LogUnsubscribedToEvent("OnInterstitialAdRevenuePaidEvent");
  137. onAdRevenuePaidEvent -= value;
  138. }
  139. }
  140. /// <summary>
  141. /// Fired when an expired interstitial ad is reloaded.
  142. /// </summary>
  143. internal static Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> onExpiredAdReloadedEvent;
  144. public static event Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> OnExpiredAdReloadedEvent
  145. {
  146. add
  147. {
  148. LogSubscribedToEvent("OnExpiredInterstitialAdReloadedEvent");
  149. onExpiredAdReloadedEvent += value;
  150. }
  151. remove
  152. {
  153. LogUnsubscribedToEvent("OnExpiredInterstitialAdReloadedEvent");
  154. onExpiredAdReloadedEvent -= value;
  155. }
  156. }
  157. /// <summary>
  158. /// Fired when an Ad Review Creative ID has been generated.
  159. /// The parameters returned are the adUnitIdentifier, adReviewCreativeId, and adInfo in that respective order.
  160. /// Executed on a background thread to avoid any delays in execution.
  161. /// </summary>
  162. internal static Action<string, string, MaxSdkBase.AdInfo> onAdReviewCreativeIdGeneratedEvent;
  163. public static event Action<string, string, MaxSdkBase.AdInfo> OnAdReviewCreativeIdGeneratedEvent
  164. {
  165. add
  166. {
  167. LogSubscribedToEvent("OnInterstitialAdReviewCreativeIdGeneratedEvent");
  168. onAdReviewCreativeIdGeneratedEvent += value;
  169. }
  170. remove
  171. {
  172. LogUnsubscribedToEvent("OnInterstitialAdReviewCreativeIdGeneratedEvent");
  173. onAdReviewCreativeIdGeneratedEvent -= value;
  174. }
  175. }
  176. internal static Action<string, MaxSdkBase.AdInfo> onAdHiddenEvent;
  177. public static event Action<string, MaxSdkBase.AdInfo> OnAdHiddenEvent
  178. {
  179. add
  180. {
  181. LogSubscribedToEvent("OnInterstitialAdHiddenEvent");
  182. onAdHiddenEvent += value;
  183. }
  184. remove
  185. {
  186. LogUnsubscribedToEvent("OnInterstitialAdHiddenEvent");
  187. onAdHiddenEvent -= value;
  188. }
  189. }
  190. }
  191. public static class AppOpen
  192. {
  193. internal static Action<string, MaxSdkBase.AdInfo> onAdLoadedEvent;
  194. public static event Action<string, MaxSdkBase.AdInfo> OnAdLoadedEvent
  195. {
  196. add
  197. {
  198. LogSubscribedToEvent("OnAppOpenAdLoadedEvent");
  199. onAdLoadedEvent += value;
  200. }
  201. remove
  202. {
  203. LogUnsubscribedToEvent("OnAppOpenAdLoadedEvent");
  204. onAdLoadedEvent -= value;
  205. }
  206. }
  207. internal static Action<string, MaxSdkBase.ErrorInfo> onAdLoadFailedEvent;
  208. public static event Action<string, MaxSdkBase.ErrorInfo> OnAdLoadFailedEvent
  209. {
  210. add
  211. {
  212. LogSubscribedToEvent("OnAppOpenAdLoadFailedEvent");
  213. onAdLoadFailedEvent += value;
  214. }
  215. remove
  216. {
  217. LogUnsubscribedToEvent("OnAppOpenAdLoadFailedEvent");
  218. onAdLoadFailedEvent -= value;
  219. }
  220. }
  221. /// <summary>
  222. /// Fired when an app open ad is displayed (may not be received by Unity until the app open ad closes).
  223. /// </summary>
  224. internal static Action<string, MaxSdkBase.AdInfo> onAdDisplayedEvent;
  225. public static event Action<string, MaxSdkBase.AdInfo> OnAdDisplayedEvent
  226. {
  227. add
  228. {
  229. LogSubscribedToEvent("OnAppOpenAdDisplayedEvent");
  230. onAdDisplayedEvent += value;
  231. }
  232. remove
  233. {
  234. LogUnsubscribedToEvent("OnAppOpenAdDisplayedEvent");
  235. onAdDisplayedEvent -= value;
  236. }
  237. }
  238. internal static Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> onAdDisplayFailedEvent;
  239. public static event Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> OnAdDisplayFailedEvent
  240. {
  241. add
  242. {
  243. LogSubscribedToEvent("OnAppOpenAdDisplayFailedEvent");
  244. onAdDisplayFailedEvent += value;
  245. }
  246. remove
  247. {
  248. LogUnsubscribedToEvent("OnAppOpenAdDisplayFailedEvent");
  249. onAdDisplayFailedEvent -= value;
  250. }
  251. }
  252. internal static Action<string, MaxSdkBase.AdInfo> onAdClickedEvent;
  253. public static event Action<string, MaxSdkBase.AdInfo> OnAdClickedEvent
  254. {
  255. add
  256. {
  257. LogSubscribedToEvent("OnAppOpenAdClickedEvent");
  258. onAdClickedEvent += value;
  259. }
  260. remove
  261. {
  262. LogUnsubscribedToEvent("OnAppOpenAdClickedEvent");
  263. onAdClickedEvent -= value;
  264. }
  265. }
  266. /// <summary>
  267. /// Fired when an app open ad impression was validated and revenue will be paid.
  268. /// Executed on a background thread to avoid any delays in execution.
  269. /// </summary>
  270. internal static Action<string, MaxSdkBase.AdInfo> onAdRevenuePaidEvent;
  271. public static event Action<string, MaxSdkBase.AdInfo> OnAdRevenuePaidEvent
  272. {
  273. add
  274. {
  275. LogSubscribedToEvent("OnAppOpenAdRevenuePaidEvent");
  276. onAdRevenuePaidEvent += value;
  277. }
  278. remove
  279. {
  280. LogUnsubscribedToEvent("OnAppOpenAdRevenuePaidEvent");
  281. onAdRevenuePaidEvent -= value;
  282. }
  283. }
  284. /// <summary>
  285. /// Fired when an expired app open ad is reloaded.
  286. /// </summary>
  287. internal static Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> onExpiredAdReloadedEvent;
  288. public static event Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> OnExpiredAdReloadedEvent
  289. {
  290. add
  291. {
  292. LogSubscribedToEvent("OnExpiredAppOpenAdReloadedEvent");
  293. onExpiredAdReloadedEvent += value;
  294. }
  295. remove
  296. {
  297. LogUnsubscribedToEvent("OnExpiredAppOpenAdReloadedEvent");
  298. onExpiredAdReloadedEvent -= value;
  299. }
  300. }
  301. internal static Action<string, MaxSdkBase.AdInfo> onAdHiddenEvent;
  302. public static event Action<string, MaxSdkBase.AdInfo> OnAdHiddenEvent
  303. {
  304. add
  305. {
  306. LogSubscribedToEvent("OnAppOpenAdHiddenEvent");
  307. onAdHiddenEvent += value;
  308. }
  309. remove
  310. {
  311. LogUnsubscribedToEvent("OnAppOpenAdHiddenEvent");
  312. onAdHiddenEvent -= value;
  313. }
  314. }
  315. }
  316. public static class Rewarded
  317. {
  318. internal static Action<string, MaxSdkBase.AdInfo> onAdLoadedEvent;
  319. public static event Action<string, MaxSdkBase.AdInfo> OnAdLoadedEvent
  320. {
  321. add
  322. {
  323. LogSubscribedToEvent("OnRewardedAdLoadedEvent");
  324. onAdLoadedEvent += value;
  325. }
  326. remove
  327. {
  328. LogUnsubscribedToEvent("OnRewardedAdLoadedEvent");
  329. onAdLoadedEvent -= value;
  330. }
  331. }
  332. internal static Action<string, MaxSdkBase.ErrorInfo> onAdLoadFailedEvent;
  333. public static event Action<string, MaxSdkBase.ErrorInfo> OnAdLoadFailedEvent
  334. {
  335. add
  336. {
  337. LogSubscribedToEvent("OnRewardedAdLoadFailedEvent");
  338. onAdLoadFailedEvent += value;
  339. }
  340. remove
  341. {
  342. LogUnsubscribedToEvent("OnRewardedAdLoadFailedEvent");
  343. onAdLoadFailedEvent -= value;
  344. }
  345. }
  346. /// <summary>
  347. ///Fired when a rewarded ad is displayed (may not be received by Unity until the rewarded ad closes).
  348. /// </summary>
  349. internal static Action<string, MaxSdkBase.AdInfo> onAdDisplayedEvent;
  350. public static event Action<string, MaxSdkBase.AdInfo> OnAdDisplayedEvent
  351. {
  352. add
  353. {
  354. LogSubscribedToEvent("OnRewardedAdDisplayedEvent");
  355. onAdDisplayedEvent += value;
  356. }
  357. remove
  358. {
  359. LogUnsubscribedToEvent("OnRewardedAdDisplayedEvent");
  360. onAdDisplayedEvent -= value;
  361. }
  362. }
  363. internal static Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> onAdDisplayFailedEvent;
  364. public static event Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> OnAdDisplayFailedEvent
  365. {
  366. add
  367. {
  368. LogSubscribedToEvent("OnRewardedAdDisplayFailedEvent");
  369. onAdDisplayFailedEvent += value;
  370. }
  371. remove
  372. {
  373. LogUnsubscribedToEvent("OnRewardedAdDisplayFailedEvent");
  374. onAdDisplayFailedEvent -= value;
  375. }
  376. }
  377. internal static Action<string, MaxSdkBase.AdInfo> onAdClickedEvent;
  378. public static event Action<string, MaxSdkBase.AdInfo> OnAdClickedEvent
  379. {
  380. add
  381. {
  382. LogSubscribedToEvent("OnRewardedAdClickedEvent");
  383. onAdClickedEvent += value;
  384. }
  385. remove
  386. {
  387. LogUnsubscribedToEvent("OnRewardedAdClickedEvent");
  388. onAdClickedEvent -= value;
  389. }
  390. }
  391. /// <summary>
  392. /// Fired when a rewarded ad impression was validated and revenue will be paid.
  393. /// Executed on a background thread to avoid any delays in execution.
  394. /// </summary>
  395. internal static Action<string, MaxSdkBase.AdInfo> onAdRevenuePaidEvent;
  396. public static event Action<string, MaxSdkBase.AdInfo> OnAdRevenuePaidEvent
  397. {
  398. add
  399. {
  400. LogSubscribedToEvent("OnRewardedAdRevenuePaidEvent");
  401. onAdRevenuePaidEvent += value;
  402. }
  403. remove
  404. {
  405. LogUnsubscribedToEvent("OnRewardedAdRevenuePaidEvent");
  406. onAdRevenuePaidEvent -= value;
  407. }
  408. }
  409. /// <summary>
  410. /// Fired when an expired rewarded ad is reloaded.
  411. /// </summary>
  412. internal static Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> onExpiredAdReloadedEvent;
  413. public static event Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> OnExpiredAdReloadedEvent
  414. {
  415. add
  416. {
  417. LogSubscribedToEvent("OnExpiredRewardedAdReloadedEvent");
  418. onExpiredAdReloadedEvent += value;
  419. }
  420. remove
  421. {
  422. LogUnsubscribedToEvent("OnExpiredRewardedAdReloadedEvent");
  423. onExpiredAdReloadedEvent -= value;
  424. }
  425. }
  426. /// <summary>
  427. /// Fired when an Ad Review Creative ID has been generated.
  428. /// </summary>
  429. internal static Action<string, string, MaxSdkBase.AdInfo> onAdReviewCreativeIdGeneratedEvent;
  430. public static event Action<string, string, MaxSdkBase.AdInfo> OnAdReviewCreativeIdGeneratedEvent
  431. {
  432. add
  433. {
  434. LogSubscribedToEvent("OnRewardedAdReviewCreativeIdGeneratedEvent");
  435. onAdReviewCreativeIdGeneratedEvent += value;
  436. }
  437. remove
  438. {
  439. LogUnsubscribedToEvent("OnRewardedAdReviewCreativeIdGeneratedEvent");
  440. onAdReviewCreativeIdGeneratedEvent -= value;
  441. }
  442. }
  443. internal static Action<string, MaxSdkBase.Reward, MaxSdkBase.AdInfo> onAdReceivedRewardEvent;
  444. public static event Action<string, MaxSdkBase.Reward, MaxSdkBase.AdInfo> OnAdReceivedRewardEvent
  445. {
  446. add
  447. {
  448. LogSubscribedToEvent("OnRewardedAdReceivedRewardEvent");
  449. onAdReceivedRewardEvent += value;
  450. }
  451. remove
  452. {
  453. LogUnsubscribedToEvent("OnRewardedAdReceivedRewardEvent");
  454. onAdReceivedRewardEvent -= value;
  455. }
  456. }
  457. internal static Action<string, MaxSdkBase.AdInfo> onAdHiddenEvent;
  458. public static event Action<string, MaxSdkBase.AdInfo> OnAdHiddenEvent
  459. {
  460. add
  461. {
  462. LogSubscribedToEvent("OnRewardedAdHiddenEvent");
  463. onAdHiddenEvent += value;
  464. }
  465. remove
  466. {
  467. LogUnsubscribedToEvent("OnRewardedAdHiddenEvent");
  468. onAdHiddenEvent -= value;
  469. }
  470. }
  471. }
  472. public static class Banner
  473. {
  474. internal static Action<string, MaxSdkBase.AdInfo> onAdLoadedEvent;
  475. public static event Action<string, MaxSdkBase.AdInfo> OnAdLoadedEvent
  476. {
  477. add
  478. {
  479. LogSubscribedToEvent("OnBannerAdLoadedEvent");
  480. onAdLoadedEvent += value;
  481. }
  482. remove
  483. {
  484. LogUnsubscribedToEvent("OnBannerAdLoadedEvent");
  485. onAdLoadedEvent -= value;
  486. }
  487. }
  488. internal static Action<string, MaxSdkBase.ErrorInfo> onAdLoadFailedEvent;
  489. public static event Action<string, MaxSdkBase.ErrorInfo> OnAdLoadFailedEvent
  490. {
  491. add
  492. {
  493. LogSubscribedToEvent("OnBannerAdLoadFailedEvent");
  494. onAdLoadFailedEvent += value;
  495. }
  496. remove
  497. {
  498. LogUnsubscribedToEvent("OnBannerAdLoadFailedEvent");
  499. onAdLoadFailedEvent -= value;
  500. }
  501. }
  502. internal static Action<string, MaxSdkBase.AdInfo> onAdClickedEvent;
  503. public static event Action<string, MaxSdkBase.AdInfo> OnAdClickedEvent
  504. {
  505. add
  506. {
  507. LogSubscribedToEvent("OnBannerAdClickedEvent");
  508. onAdClickedEvent += value;
  509. }
  510. remove
  511. {
  512. LogUnsubscribedToEvent("OnBannerAdClickedEvent");
  513. onAdClickedEvent -= value;
  514. }
  515. }
  516. internal static Action<string, MaxSdkBase.AdInfo> onAdRevenuePaidEvent;
  517. public static event Action<string, MaxSdkBase.AdInfo> OnAdRevenuePaidEvent
  518. {
  519. add
  520. {
  521. LogSubscribedToEvent("OnBannerAdRevenuePaidEvent");
  522. onAdRevenuePaidEvent += value;
  523. }
  524. remove
  525. {
  526. LogUnsubscribedToEvent("OnBannerAdRevenuePaidEvent");
  527. onAdRevenuePaidEvent -= value;
  528. }
  529. }
  530. internal static Action<string, string, MaxSdkBase.AdInfo> onAdReviewCreativeIdGeneratedEvent;
  531. public static event Action<string, string, MaxSdkBase.AdInfo> OnAdReviewCreativeIdGeneratedEvent
  532. {
  533. add
  534. {
  535. LogSubscribedToEvent("OnBannerAdReviewCreativeIdGeneratedEvent");
  536. onAdReviewCreativeIdGeneratedEvent += value;
  537. }
  538. remove
  539. {
  540. LogUnsubscribedToEvent("OnBannerAdReviewCreativeIdGeneratedEvent");
  541. onAdReviewCreativeIdGeneratedEvent -= value;
  542. }
  543. }
  544. internal static Action<string, MaxSdkBase.AdInfo> onAdExpandedEvent;
  545. public static event Action<string, MaxSdkBase.AdInfo> OnAdExpandedEvent
  546. {
  547. add
  548. {
  549. LogSubscribedToEvent("OnBannerAdExpandedEvent");
  550. onAdExpandedEvent += value;
  551. }
  552. remove
  553. {
  554. LogUnsubscribedToEvent("OnBannerAdExpandedEvent");
  555. onAdExpandedEvent -= value;
  556. }
  557. }
  558. internal static Action<string, MaxSdkBase.AdInfo> onAdCollapsedEvent;
  559. public static event Action<string, MaxSdkBase.AdInfo> OnAdCollapsedEvent
  560. {
  561. add
  562. {
  563. LogSubscribedToEvent("OnBannerAdCollapsedEvent");
  564. onAdCollapsedEvent += value;
  565. }
  566. remove
  567. {
  568. LogUnsubscribedToEvent("OnBannerAdCollapsedEvent");
  569. onAdCollapsedEvent -= value;
  570. }
  571. }
  572. }
  573. public static class MRec
  574. {
  575. internal static Action<string, MaxSdkBase.AdInfo> onAdLoadedEvent;
  576. public static event Action<string, MaxSdkBase.AdInfo> OnAdLoadedEvent
  577. {
  578. add
  579. {
  580. LogSubscribedToEvent("OnMRecAdLoadedEvent");
  581. onAdLoadedEvent += value;
  582. }
  583. remove
  584. {
  585. LogUnsubscribedToEvent("OnMRecAdLoadedEvent");
  586. onAdLoadedEvent -= value;
  587. }
  588. }
  589. internal static Action<string, MaxSdkBase.ErrorInfo> onAdLoadFailedEvent;
  590. public static event Action<string, MaxSdkBase.ErrorInfo> OnAdLoadFailedEvent
  591. {
  592. add
  593. {
  594. LogSubscribedToEvent("OnMRecAdLoadFailedEvent");
  595. onAdLoadFailedEvent += value;
  596. }
  597. remove
  598. {
  599. LogUnsubscribedToEvent("OnMRecAdLoadFailedEvent");
  600. onAdLoadFailedEvent -= value;
  601. }
  602. }
  603. internal static Action<string, MaxSdkBase.AdInfo> onAdClickedEvent;
  604. public static event Action<string, MaxSdkBase.AdInfo> OnAdClickedEvent
  605. {
  606. add
  607. {
  608. LogSubscribedToEvent("OnMRecAdClickedEvent");
  609. onAdClickedEvent += value;
  610. }
  611. remove
  612. {
  613. LogUnsubscribedToEvent("OnMRecAdClickedEvent");
  614. onAdClickedEvent -= value;
  615. }
  616. }
  617. internal static Action<string, MaxSdkBase.AdInfo> onAdRevenuePaidEvent;
  618. public static event Action<string, MaxSdkBase.AdInfo> OnAdRevenuePaidEvent
  619. {
  620. add
  621. {
  622. LogSubscribedToEvent("OnMRecAdRevenuePaidEvent");
  623. onAdRevenuePaidEvent += value;
  624. }
  625. remove
  626. {
  627. LogUnsubscribedToEvent("OnMRecAdRevenuePaidEvent");
  628. onAdRevenuePaidEvent -= value;
  629. }
  630. }
  631. /// <summary>
  632. /// Fired when an Ad Review Creative ID has been generated.
  633. /// </summary>
  634. internal static Action<string, string, MaxSdkBase.AdInfo> onAdReviewCreativeIdGeneratedEvent;
  635. public static event Action<string, string, MaxSdkBase.AdInfo> OnAdReviewCreativeIdGeneratedEvent
  636. {
  637. add
  638. {
  639. LogSubscribedToEvent("OnMRecAdReviewCreativeIdGeneratedEvent");
  640. onAdReviewCreativeIdGeneratedEvent += value;
  641. }
  642. remove
  643. {
  644. LogUnsubscribedToEvent("OnMRecAdReviewCreativeIdGeneratedEvent");
  645. onAdReviewCreativeIdGeneratedEvent -= value;
  646. }
  647. }
  648. internal static Action<string, MaxSdkBase.AdInfo> onAdExpandedEvent;
  649. public static event Action<string, MaxSdkBase.AdInfo> OnAdExpandedEvent
  650. {
  651. add
  652. {
  653. LogSubscribedToEvent("OnMRecAdExpandedEvent");
  654. onAdExpandedEvent += value;
  655. }
  656. remove
  657. {
  658. LogUnsubscribedToEvent("OnMRecAdExpandedEvent");
  659. onAdExpandedEvent -= value;
  660. }
  661. }
  662. internal static Action<string, MaxSdkBase.AdInfo> onAdCollapsedEvent;
  663. public static event Action<string, MaxSdkBase.AdInfo> OnAdCollapsedEvent
  664. {
  665. add
  666. {
  667. LogSubscribedToEvent("OnMRecAdCollapsedEvent");
  668. onAdCollapsedEvent += value;
  669. }
  670. remove
  671. {
  672. LogUnsubscribedToEvent("OnMRecAdCollapsedEvent");
  673. onAdCollapsedEvent -= value;
  674. }
  675. }
  676. }
  677. public static void ForwardEvent(string eventPropsStr)
  678. {
  679. var eventProps = Json.Deserialize(eventPropsStr) as Dictionary<string, object>;
  680. if (eventProps == null)
  681. {
  682. MaxSdkLogger.E("Failed to forward event due to invalid event data");
  683. return;
  684. }
  685. var keepInBackground = MaxSdkUtils.GetBoolFromDictionary(eventProps, "keepInBackground", false);
  686. var eventName = MaxSdkUtils.GetStringFromDictionary(eventProps, "name", "");
  687. if (eventName == "OnInitialCallbackEvent")
  688. {
  689. MaxSdkLogger.D("Initial background callback.");
  690. }
  691. else if (eventName == "OnSdkInitializedEvent")
  692. {
  693. var sdkConfiguration = MaxSdkBase.SdkConfiguration.Create(eventProps);
  694. InvokeEvent(onSdkInitializedEvent, sdkConfiguration, eventName, keepInBackground);
  695. }
  696. else if (eventName == "OnCmpCompletedEvent")
  697. {
  698. var errorProps = MaxSdkUtils.GetDictionaryFromDictionary(eventProps, "error");
  699. MaxCmpService.NotifyCompletedIfNeeded(errorProps);
  700. }
  701. else if (eventName == "OnApplicationStateChanged")
  702. {
  703. var isPaused = MaxSdkUtils.GetBoolFromDictionary(eventProps, "isPaused");
  704. InvokeEvent(onApplicationStateChangedEvent, isPaused, eventName, keepInBackground);
  705. }
  706. // Ad Events
  707. else
  708. {
  709. var isExpiredAdReloadedEvent = Regex.IsMatch(eventName, @"^OnExpired\w+AdReloadedEvent$");
  710. var adInfoEventProps = isExpiredAdReloadedEvent ? MaxSdkUtils.GetDictionaryFromDictionary(eventProps, "newAdInfo") : eventProps;
  711. var adInfo = new MaxSdkBase.AdInfo(adInfoEventProps);
  712. var adUnitIdentifier = MaxSdkUtils.GetStringFromDictionary(adInfoEventProps, "adUnitId", "");
  713. // Expired ad reloaded callbacks pass down multiple adInfo objects
  714. if (isExpiredAdReloadedEvent)
  715. {
  716. var expiredAdInfo = new MaxSdkBase.AdInfo(MaxSdkUtils.GetDictionaryFromDictionary(eventProps, "expiredAdInfo"));
  717. if (eventName == "OnExpiredInterstitialAdReloadedEvent")
  718. {
  719. InvokeEvent(Interstitial.onExpiredAdReloadedEvent, adUnitIdentifier, expiredAdInfo, adInfo, eventName, keepInBackground);
  720. }
  721. else if (eventName == "OnExpiredAppOpenAdReloadedEvent")
  722. {
  723. InvokeEvent(AppOpen.onExpiredAdReloadedEvent, adUnitIdentifier, expiredAdInfo, adInfo, eventName, keepInBackground);
  724. }
  725. else if (eventName == "OnExpiredRewardedAdReloadedEvent")
  726. {
  727. InvokeEvent(Rewarded.onExpiredAdReloadedEvent, adUnitIdentifier, expiredAdInfo, adInfo, eventName, keepInBackground);
  728. }
  729. else
  730. {
  731. MaxSdkLogger.UserWarning("Unknown MAX Ads event fired: " + eventName);
  732. }
  733. }
  734. else if (eventName == "OnBannerAdLoadedEvent")
  735. {
  736. InvokeEvent(Banner.onAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  737. }
  738. else if (eventName == "OnBannerAdLoadFailedEvent")
  739. {
  740. var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
  741. InvokeEvent(Banner.onAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground);
  742. }
  743. else if (eventName == "OnBannerAdClickedEvent")
  744. {
  745. InvokeEvent(Banner.onAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  746. }
  747. else if (eventName == "OnBannerAdRevenuePaidEvent")
  748. {
  749. InvokeEvent(Banner.onAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  750. }
  751. else if (eventName == "OnBannerAdReviewCreativeIdGeneratedEvent")
  752. {
  753. var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", "");
  754. InvokeEvent(Banner.onAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground);
  755. }
  756. else if (eventName == "OnBannerAdExpandedEvent")
  757. {
  758. InvokeEvent(Banner.onAdExpandedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  759. }
  760. else if (eventName == "OnBannerAdCollapsedEvent")
  761. {
  762. InvokeEvent(Banner.onAdCollapsedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  763. }
  764. else if (eventName == "OnMRecAdLoadedEvent")
  765. {
  766. InvokeEvent(MRec.onAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  767. }
  768. else if (eventName == "OnMRecAdLoadFailedEvent")
  769. {
  770. var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
  771. InvokeEvent(MRec.onAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground);
  772. }
  773. else if (eventName == "OnMRecAdClickedEvent")
  774. {
  775. InvokeEvent(MRec.onAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  776. }
  777. else if (eventName == "OnMRecAdRevenuePaidEvent")
  778. {
  779. InvokeEvent(MRec.onAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  780. }
  781. else if (eventName == "OnMRecAdReviewCreativeIdGeneratedEvent")
  782. {
  783. var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", "");
  784. InvokeEvent(MRec.onAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground);
  785. }
  786. else if (eventName == "OnMRecAdExpandedEvent")
  787. {
  788. InvokeEvent(MRec.onAdExpandedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  789. }
  790. else if (eventName == "OnMRecAdCollapsedEvent")
  791. {
  792. InvokeEvent(MRec.onAdCollapsedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  793. }
  794. else if (eventName == "OnInterstitialLoadedEvent")
  795. {
  796. InvokeEvent(Interstitial.onAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  797. }
  798. else if (eventName == "OnInterstitialLoadFailedEvent")
  799. {
  800. var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
  801. InvokeEvent(Interstitial.onAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground);
  802. }
  803. else if (eventName == "OnInterstitialHiddenEvent")
  804. {
  805. InvokeEvent(Interstitial.onAdHiddenEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  806. }
  807. else if (eventName == "OnInterstitialDisplayedEvent")
  808. {
  809. InvokeEvent(Interstitial.onAdDisplayedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  810. }
  811. else if (eventName == "OnInterstitialAdFailedToDisplayEvent")
  812. {
  813. var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
  814. InvokeEvent(Interstitial.onAdDisplayFailedEvent, adUnitIdentifier, errorInfo, adInfo, eventName, keepInBackground);
  815. }
  816. else if (eventName == "OnInterstitialClickedEvent")
  817. {
  818. InvokeEvent(Interstitial.onAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  819. }
  820. else if (eventName == "OnInterstitialAdRevenuePaidEvent")
  821. {
  822. InvokeEvent(Interstitial.onAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  823. }
  824. else if (eventName == "OnInterstitialAdReviewCreativeIdGeneratedEvent")
  825. {
  826. var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", "");
  827. InvokeEvent(Interstitial.onAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground);
  828. }
  829. else if (eventName == "OnAppOpenAdLoadedEvent")
  830. {
  831. InvokeEvent(AppOpen.onAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  832. }
  833. else if (eventName == "OnAppOpenAdLoadFailedEvent")
  834. {
  835. var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
  836. InvokeEvent(AppOpen.onAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground);
  837. }
  838. else if (eventName == "OnAppOpenAdHiddenEvent")
  839. {
  840. InvokeEvent(AppOpen.onAdHiddenEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  841. }
  842. else if (eventName == "OnAppOpenAdDisplayedEvent")
  843. {
  844. InvokeEvent(AppOpen.onAdDisplayedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  845. }
  846. else if (eventName == "OnAppOpenAdFailedToDisplayEvent")
  847. {
  848. var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
  849. InvokeEvent(AppOpen.onAdDisplayFailedEvent, adUnitIdentifier, errorInfo, adInfo, eventName, keepInBackground);
  850. }
  851. else if (eventName == "OnAppOpenAdClickedEvent")
  852. {
  853. InvokeEvent(AppOpen.onAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  854. }
  855. else if (eventName == "OnAppOpenAdRevenuePaidEvent")
  856. {
  857. InvokeEvent(AppOpen.onAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  858. }
  859. else if (eventName == "OnRewardedAdLoadedEvent")
  860. {
  861. InvokeEvent(Rewarded.onAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  862. }
  863. else if (eventName == "OnRewardedAdLoadFailedEvent")
  864. {
  865. var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
  866. InvokeEvent(Rewarded.onAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground);
  867. }
  868. else if (eventName == "OnRewardedAdDisplayedEvent")
  869. {
  870. InvokeEvent(Rewarded.onAdDisplayedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  871. }
  872. else if (eventName == "OnRewardedAdHiddenEvent")
  873. {
  874. InvokeEvent(Rewarded.onAdHiddenEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  875. }
  876. else if (eventName == "OnRewardedAdClickedEvent")
  877. {
  878. InvokeEvent(Rewarded.onAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  879. }
  880. else if (eventName == "OnRewardedAdRevenuePaidEvent")
  881. {
  882. InvokeEvent(Rewarded.onAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
  883. }
  884. else if (eventName == "OnRewardedAdReviewCreativeIdGeneratedEvent")
  885. {
  886. var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", "");
  887. InvokeEvent(Rewarded.onAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground);
  888. }
  889. else if (eventName == "OnRewardedAdFailedToDisplayEvent")
  890. {
  891. var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
  892. InvokeEvent(Rewarded.onAdDisplayFailedEvent, adUnitIdentifier, errorInfo, adInfo, eventName, keepInBackground);
  893. }
  894. else if (eventName == "OnRewardedAdReceivedRewardEvent")
  895. {
  896. var reward = new MaxSdkBase.Reward
  897. {
  898. Label = MaxSdkUtils.GetStringFromDictionary(eventProps, "rewardLabel", ""),
  899. Amount = MaxSdkUtils.GetIntFromDictionary(eventProps, "rewardAmount", 0)
  900. };
  901. InvokeEvent(Rewarded.onAdReceivedRewardEvent, adUnitIdentifier, reward, adInfo, eventName, keepInBackground);
  902. }
  903. else
  904. {
  905. MaxSdkLogger.UserWarning("Unknown MAX Ads event fired: " + eventName);
  906. }
  907. }
  908. }
  909. #if UNITY_EDITOR
  910. public static void EmitSdkInitializedEvent()
  911. {
  912. if (onSdkInitializedEvent == null) return;
  913. onSdkInitializedEvent(MaxSdkBase.SdkConfiguration.CreateEmpty());
  914. }
  915. #endif
  916. private static void InvokeEvent(Action evt, string eventName, bool keepInBackground)
  917. {
  918. if (!CanInvokeEvent(evt)) return;
  919. MaxSdkLogger.UserDebug("Invoking event: " + eventName);
  920. if (ShouldInvokeInBackground(keepInBackground))
  921. {
  922. try
  923. {
  924. evt();
  925. }
  926. catch (Exception exception)
  927. {
  928. MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception);
  929. MaxSdkLogger.LogException(exception);
  930. }
  931. }
  932. else
  933. {
  934. MaxEventExecutor.ExecuteOnMainThread(evt, eventName);
  935. }
  936. }
  937. private static void InvokeEvent<T>(Action<T> evt, T param, string eventName, bool keepInBackground)
  938. {
  939. if (!CanInvokeEvent(evt)) return;
  940. MaxSdkLogger.UserDebug("Invoking event: " + eventName + ". Param: " + param);
  941. if (ShouldInvokeInBackground(keepInBackground))
  942. {
  943. try
  944. {
  945. evt(param);
  946. }
  947. catch (Exception exception)
  948. {
  949. MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception);
  950. MaxSdkLogger.LogException(exception);
  951. }
  952. }
  953. else
  954. {
  955. MaxEventExecutor.ExecuteOnMainThread(() => evt(param), eventName);
  956. }
  957. }
  958. private static void InvokeEvent<T1, T2>(Action<T1, T2> evt, T1 param1, T2 param2, string eventName, bool keepInBackground)
  959. {
  960. if (!CanInvokeEvent(evt)) return;
  961. MaxSdkLogger.UserDebug("Invoking event: " + eventName + ". Params: " + param1 + ", " + param2);
  962. if (ShouldInvokeInBackground(keepInBackground))
  963. {
  964. try
  965. {
  966. evt(param1, param2);
  967. }
  968. catch (Exception exception)
  969. {
  970. MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception);
  971. MaxSdkLogger.LogException(exception);
  972. }
  973. }
  974. else
  975. {
  976. MaxEventExecutor.ExecuteOnMainThread(() => evt(param1, param2), eventName);
  977. }
  978. }
  979. private static void InvokeEvent<T1, T2, T3>(Action<T1, T2, T3> evt, T1 param1, T2 param2, T3 param3, string eventName, bool keepInBackground)
  980. {
  981. if (!CanInvokeEvent(evt)) return;
  982. MaxSdkLogger.UserDebug("Invoking event: " + eventName + ". Params: " + param1 + ", " + param2 + ", " + param3);
  983. if (ShouldInvokeInBackground(keepInBackground))
  984. {
  985. try
  986. {
  987. evt(param1, param2, param3);
  988. }
  989. catch (Exception exception)
  990. {
  991. MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception);
  992. MaxSdkLogger.LogException(exception);
  993. }
  994. }
  995. else
  996. {
  997. MaxEventExecutor.ExecuteOnMainThread(() => evt(param1, param2, param3), eventName);
  998. }
  999. }
  1000. private static bool CanInvokeEvent(Delegate evt)
  1001. {
  1002. if (evt == null) return false;
  1003. // Check that publisher is not over-subscribing
  1004. if (evt.GetInvocationList().Length > 5)
  1005. {
  1006. MaxSdkLogger.UserWarning("Ads Event (" + evt + ") has over 5 subscribers. Please make sure you are properly un-subscribing to actions!!!");
  1007. }
  1008. return true;
  1009. }
  1010. private static bool ShouldInvokeInBackground(bool keepInBackground)
  1011. {
  1012. return MaxSdkBase.InvokeEventsOnUnityMainThread == null ? keepInBackground : !MaxSdkBase.InvokeEventsOnUnityMainThread.Value;
  1013. }
  1014. private static void LogSubscribedToEvent(string eventName)
  1015. {
  1016. MaxSdkLogger.D("Listener has been added to callback: " + eventName);
  1017. }
  1018. private static void LogUnsubscribedToEvent(string eventName)
  1019. {
  1020. MaxSdkLogger.D("Listener has been removed from callback: " + eventName);
  1021. }
  1022. #if UNITY_EDITOR && UNITY_2019_2_OR_NEWER
  1023. /// <summary>
  1024. /// Resets static event handlers so they still get reset even if Domain Reloading is disabled
  1025. /// </summary>
  1026. [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
  1027. private static void ResetOnDomainReload()
  1028. {
  1029. onSdkInitializedEvent = null;
  1030. Interstitial.onAdLoadedEvent = null;
  1031. Interstitial.onAdLoadFailedEvent = null;
  1032. Interstitial.onAdDisplayedEvent = null;
  1033. Interstitial.onAdDisplayFailedEvent = null;
  1034. Interstitial.onAdClickedEvent = null;
  1035. Interstitial.onAdRevenuePaidEvent = null;
  1036. Interstitial.onAdReviewCreativeIdGeneratedEvent = null;
  1037. Interstitial.onAdHiddenEvent = null;
  1038. AppOpen.onAdLoadedEvent = null;
  1039. AppOpen.onAdLoadFailedEvent = null;
  1040. AppOpen.onAdDisplayedEvent = null;
  1041. AppOpen.onAdDisplayFailedEvent = null;
  1042. AppOpen.onAdClickedEvent = null;
  1043. AppOpen.onAdRevenuePaidEvent = null;
  1044. AppOpen.onAdHiddenEvent = null;
  1045. Rewarded.onAdLoadedEvent = null;
  1046. Rewarded.onAdLoadFailedEvent = null;
  1047. Rewarded.onAdDisplayedEvent = null;
  1048. Rewarded.onAdDisplayFailedEvent = null;
  1049. Rewarded.onAdClickedEvent = null;
  1050. Rewarded.onAdRevenuePaidEvent = null;
  1051. Rewarded.onAdReviewCreativeIdGeneratedEvent = null;
  1052. Rewarded.onAdReceivedRewardEvent = null;
  1053. Rewarded.onAdHiddenEvent = null;
  1054. Banner.onAdLoadedEvent = null;
  1055. Banner.onAdLoadFailedEvent = null;
  1056. Banner.onAdClickedEvent = null;
  1057. Banner.onAdRevenuePaidEvent = null;
  1058. Banner.onAdReviewCreativeIdGeneratedEvent = null;
  1059. Banner.onAdExpandedEvent = null;
  1060. Banner.onAdCollapsedEvent = null;
  1061. MRec.onAdLoadedEvent = null;
  1062. MRec.onAdLoadFailedEvent = null;
  1063. MRec.onAdClickedEvent = null;
  1064. MRec.onAdRevenuePaidEvent = null;
  1065. MRec.onAdReviewCreativeIdGeneratedEvent = null;
  1066. MRec.onAdExpandedEvent = null;
  1067. MRec.onAdCollapsedEvent = null;
  1068. }
  1069. #endif
  1070. }