12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139 |
- // ReSharper disable RedundantArgumentDefaultValue
- using System;
- using System.Collections.Generic;
- using System.Text.RegularExpressions;
- using UnityEngine;
- using AppLovinMax.ThirdParty.MiniJson;
- using AppLovinMax.Internal;
- /// <summary>
- /// This is is a global Unity object that is used to forward callbacks from native iOS / Android Max code to the application.
- /// </summary>
- public static class MaxSdkCallbacks
- {
- /// <summary>
- /// Fired when the SDK has finished initializing
- /// </summary>
- private static Action<MaxSdkBase.SdkConfiguration> onSdkInitializedEvent;
- public static event Action<MaxSdkBase.SdkConfiguration> OnSdkInitializedEvent
- {
- add
- {
- LogSubscribedToEvent("OnSdkInitializedEvent");
- onSdkInitializedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnSdkInitializedEvent");
- onSdkInitializedEvent -= value;
- }
- }
- /// <summary>
- /// Fired when the application is paused or resumed.
- /// </summary>
- private static Action<bool> onApplicationStateChangedEvent;
- public static event Action<bool> OnApplicationStateChangedEvent
- {
- add
- {
- LogSubscribedToEvent("OnApplicationStateChangedEvent");
- onApplicationStateChangedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnApplicationStateChangedEvent");
- onApplicationStateChangedEvent -= value;
- }
- }
- public static class Interstitial
- {
- internal static Action<string, MaxSdkBase.AdInfo> onAdLoadedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdLoadedEvent
- {
- add
- {
- LogSubscribedToEvent("OnInterstitialAdLoadedEvent");
- onAdLoadedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnInterstitialAdLoadedEvent");
- onAdLoadedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.ErrorInfo> onAdLoadFailedEvent;
- public static event Action<string, MaxSdkBase.ErrorInfo> OnAdLoadFailedEvent
- {
- add
- {
- LogSubscribedToEvent("OnInterstitialAdLoadFailedEvent");
- onAdLoadFailedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnInterstitialAdLoadFailedEvent");
- onAdLoadFailedEvent -= value;
- }
- }
- /// <summary>
- /// Fired when an interstitial ad is displayed (may not be received by Unity until the interstitial ad closes).
- /// </summary>
- internal static Action<string, MaxSdkBase.AdInfo> onAdDisplayedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdDisplayedEvent
- {
- add
- {
- LogSubscribedToEvent("OnInterstitialAdDisplayedEvent");
- onAdDisplayedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnInterstitialAdDisplayedEvent");
- onAdDisplayedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> onAdDisplayFailedEvent;
- public static event Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> OnAdDisplayFailedEvent
- {
- add
- {
- LogSubscribedToEvent("OnInterstitialAdDisplayFailedEvent");
- onAdDisplayFailedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnInterstitialAdDisplayFailedEvent");
- onAdDisplayFailedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdClickedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdClickedEvent
- {
- add
- {
- LogSubscribedToEvent("OnInterstitialAdClickedEvent");
- onAdClickedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnInterstitialAdClickedEvent");
- onAdClickedEvent -= value;
- }
- }
- /// <summary>
- /// Fired when an interstitial ad impression was validated and revenue will be paid.
- /// Executed on a background thread to avoid any delays in execution.
- /// </summary>
- internal static Action<string, MaxSdkBase.AdInfo> onAdRevenuePaidEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdRevenuePaidEvent
- {
- add
- {
- LogSubscribedToEvent("OnInterstitialAdRevenuePaidEvent");
- onAdRevenuePaidEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnInterstitialAdRevenuePaidEvent");
- onAdRevenuePaidEvent -= value;
- }
- }
- /// <summary>
- /// Fired when an expired interstitial ad is reloaded.
- /// </summary>
- internal static Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> onExpiredAdReloadedEvent;
- public static event Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> OnExpiredAdReloadedEvent
- {
- add
- {
- LogSubscribedToEvent("OnExpiredInterstitialAdReloadedEvent");
- onExpiredAdReloadedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnExpiredInterstitialAdReloadedEvent");
- onExpiredAdReloadedEvent -= value;
- }
- }
- /// <summary>
- /// Fired when an Ad Review Creative ID has been generated.
- /// The parameters returned are the adUnitIdentifier, adReviewCreativeId, and adInfo in that respective order.
- /// Executed on a background thread to avoid any delays in execution.
- /// </summary>
- internal static Action<string, string, MaxSdkBase.AdInfo> onAdReviewCreativeIdGeneratedEvent;
- public static event Action<string, string, MaxSdkBase.AdInfo> OnAdReviewCreativeIdGeneratedEvent
- {
- add
- {
- LogSubscribedToEvent("OnInterstitialAdReviewCreativeIdGeneratedEvent");
- onAdReviewCreativeIdGeneratedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnInterstitialAdReviewCreativeIdGeneratedEvent");
- onAdReviewCreativeIdGeneratedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdHiddenEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdHiddenEvent
- {
- add
- {
- LogSubscribedToEvent("OnInterstitialAdHiddenEvent");
- onAdHiddenEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnInterstitialAdHiddenEvent");
- onAdHiddenEvent -= value;
- }
- }
- }
- public static class AppOpen
- {
- internal static Action<string, MaxSdkBase.AdInfo> onAdLoadedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdLoadedEvent
- {
- add
- {
- LogSubscribedToEvent("OnAppOpenAdLoadedEvent");
- onAdLoadedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnAppOpenAdLoadedEvent");
- onAdLoadedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.ErrorInfo> onAdLoadFailedEvent;
- public static event Action<string, MaxSdkBase.ErrorInfo> OnAdLoadFailedEvent
- {
- add
- {
- LogSubscribedToEvent("OnAppOpenAdLoadFailedEvent");
- onAdLoadFailedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnAppOpenAdLoadFailedEvent");
- onAdLoadFailedEvent -= value;
- }
- }
- /// <summary>
- /// Fired when an app open ad is displayed (may not be received by Unity until the app open ad closes).
- /// </summary>
- internal static Action<string, MaxSdkBase.AdInfo> onAdDisplayedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdDisplayedEvent
- {
- add
- {
- LogSubscribedToEvent("OnAppOpenAdDisplayedEvent");
- onAdDisplayedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnAppOpenAdDisplayedEvent");
- onAdDisplayedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> onAdDisplayFailedEvent;
- public static event Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> OnAdDisplayFailedEvent
- {
- add
- {
- LogSubscribedToEvent("OnAppOpenAdDisplayFailedEvent");
- onAdDisplayFailedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnAppOpenAdDisplayFailedEvent");
- onAdDisplayFailedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdClickedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdClickedEvent
- {
- add
- {
- LogSubscribedToEvent("OnAppOpenAdClickedEvent");
- onAdClickedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnAppOpenAdClickedEvent");
- onAdClickedEvent -= value;
- }
- }
- /// <summary>
- /// Fired when an app open ad impression was validated and revenue will be paid.
- /// Executed on a background thread to avoid any delays in execution.
- /// </summary>
- internal static Action<string, MaxSdkBase.AdInfo> onAdRevenuePaidEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdRevenuePaidEvent
- {
- add
- {
- LogSubscribedToEvent("OnAppOpenAdRevenuePaidEvent");
- onAdRevenuePaidEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnAppOpenAdRevenuePaidEvent");
- onAdRevenuePaidEvent -= value;
- }
- }
- /// <summary>
- /// Fired when an expired app open ad is reloaded.
- /// </summary>
- internal static Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> onExpiredAdReloadedEvent;
- public static event Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> OnExpiredAdReloadedEvent
- {
- add
- {
- LogSubscribedToEvent("OnExpiredAppOpenAdReloadedEvent");
- onExpiredAdReloadedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnExpiredAppOpenAdReloadedEvent");
- onExpiredAdReloadedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdHiddenEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdHiddenEvent
- {
- add
- {
- LogSubscribedToEvent("OnAppOpenAdHiddenEvent");
- onAdHiddenEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnAppOpenAdHiddenEvent");
- onAdHiddenEvent -= value;
- }
- }
- }
- public static class Rewarded
- {
- internal static Action<string, MaxSdkBase.AdInfo> onAdLoadedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdLoadedEvent
- {
- add
- {
- LogSubscribedToEvent("OnRewardedAdLoadedEvent");
- onAdLoadedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnRewardedAdLoadedEvent");
- onAdLoadedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.ErrorInfo> onAdLoadFailedEvent;
- public static event Action<string, MaxSdkBase.ErrorInfo> OnAdLoadFailedEvent
- {
- add
- {
- LogSubscribedToEvent("OnRewardedAdLoadFailedEvent");
- onAdLoadFailedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnRewardedAdLoadFailedEvent");
- onAdLoadFailedEvent -= value;
- }
- }
- /// <summary>
- ///Fired when a rewarded ad is displayed (may not be received by Unity until the rewarded ad closes).
- /// </summary>
- internal static Action<string, MaxSdkBase.AdInfo> onAdDisplayedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdDisplayedEvent
- {
- add
- {
- LogSubscribedToEvent("OnRewardedAdDisplayedEvent");
- onAdDisplayedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnRewardedAdDisplayedEvent");
- onAdDisplayedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> onAdDisplayFailedEvent;
- public static event Action<string, MaxSdkBase.ErrorInfo, MaxSdkBase.AdInfo> OnAdDisplayFailedEvent
- {
- add
- {
- LogSubscribedToEvent("OnRewardedAdDisplayFailedEvent");
- onAdDisplayFailedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnRewardedAdDisplayFailedEvent");
- onAdDisplayFailedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdClickedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdClickedEvent
- {
- add
- {
- LogSubscribedToEvent("OnRewardedAdClickedEvent");
- onAdClickedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnRewardedAdClickedEvent");
- onAdClickedEvent -= value;
- }
- }
- /// <summary>
- /// Fired when a rewarded ad impression was validated and revenue will be paid.
- /// Executed on a background thread to avoid any delays in execution.
- /// </summary>
- internal static Action<string, MaxSdkBase.AdInfo> onAdRevenuePaidEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdRevenuePaidEvent
- {
- add
- {
- LogSubscribedToEvent("OnRewardedAdRevenuePaidEvent");
- onAdRevenuePaidEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnRewardedAdRevenuePaidEvent");
- onAdRevenuePaidEvent -= value;
- }
- }
- /// <summary>
- /// Fired when an expired rewarded ad is reloaded.
- /// </summary>
- internal static Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> onExpiredAdReloadedEvent;
- public static event Action<string, MaxSdkBase.AdInfo, MaxSdkBase.AdInfo> OnExpiredAdReloadedEvent
- {
- add
- {
- LogSubscribedToEvent("OnExpiredRewardedAdReloadedEvent");
- onExpiredAdReloadedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnExpiredRewardedAdReloadedEvent");
- onExpiredAdReloadedEvent -= value;
- }
- }
- /// <summary>
- /// Fired when an Ad Review Creative ID has been generated.
- /// </summary>
- internal static Action<string, string, MaxSdkBase.AdInfo> onAdReviewCreativeIdGeneratedEvent;
- public static event Action<string, string, MaxSdkBase.AdInfo> OnAdReviewCreativeIdGeneratedEvent
- {
- add
- {
- LogSubscribedToEvent("OnRewardedAdReviewCreativeIdGeneratedEvent");
- onAdReviewCreativeIdGeneratedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnRewardedAdReviewCreativeIdGeneratedEvent");
- onAdReviewCreativeIdGeneratedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.Reward, MaxSdkBase.AdInfo> onAdReceivedRewardEvent;
- public static event Action<string, MaxSdkBase.Reward, MaxSdkBase.AdInfo> OnAdReceivedRewardEvent
- {
- add
- {
- LogSubscribedToEvent("OnRewardedAdReceivedRewardEvent");
- onAdReceivedRewardEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnRewardedAdReceivedRewardEvent");
- onAdReceivedRewardEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdHiddenEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdHiddenEvent
- {
- add
- {
- LogSubscribedToEvent("OnRewardedAdHiddenEvent");
- onAdHiddenEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnRewardedAdHiddenEvent");
- onAdHiddenEvent -= value;
- }
- }
- }
- public static class Banner
- {
- internal static Action<string, MaxSdkBase.AdInfo> onAdLoadedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdLoadedEvent
- {
- add
- {
- LogSubscribedToEvent("OnBannerAdLoadedEvent");
- onAdLoadedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnBannerAdLoadedEvent");
- onAdLoadedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.ErrorInfo> onAdLoadFailedEvent;
- public static event Action<string, MaxSdkBase.ErrorInfo> OnAdLoadFailedEvent
- {
- add
- {
- LogSubscribedToEvent("OnBannerAdLoadFailedEvent");
- onAdLoadFailedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnBannerAdLoadFailedEvent");
- onAdLoadFailedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdClickedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdClickedEvent
- {
- add
- {
- LogSubscribedToEvent("OnBannerAdClickedEvent");
- onAdClickedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnBannerAdClickedEvent");
- onAdClickedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdRevenuePaidEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdRevenuePaidEvent
- {
- add
- {
- LogSubscribedToEvent("OnBannerAdRevenuePaidEvent");
- onAdRevenuePaidEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnBannerAdRevenuePaidEvent");
- onAdRevenuePaidEvent -= value;
- }
- }
- internal static Action<string, string, MaxSdkBase.AdInfo> onAdReviewCreativeIdGeneratedEvent;
- public static event Action<string, string, MaxSdkBase.AdInfo> OnAdReviewCreativeIdGeneratedEvent
- {
- add
- {
- LogSubscribedToEvent("OnBannerAdReviewCreativeIdGeneratedEvent");
- onAdReviewCreativeIdGeneratedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnBannerAdReviewCreativeIdGeneratedEvent");
- onAdReviewCreativeIdGeneratedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdExpandedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdExpandedEvent
- {
- add
- {
- LogSubscribedToEvent("OnBannerAdExpandedEvent");
- onAdExpandedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnBannerAdExpandedEvent");
- onAdExpandedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdCollapsedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdCollapsedEvent
- {
- add
- {
- LogSubscribedToEvent("OnBannerAdCollapsedEvent");
- onAdCollapsedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnBannerAdCollapsedEvent");
- onAdCollapsedEvent -= value;
- }
- }
- }
- public static class MRec
- {
- internal static Action<string, MaxSdkBase.AdInfo> onAdLoadedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdLoadedEvent
- {
- add
- {
- LogSubscribedToEvent("OnMRecAdLoadedEvent");
- onAdLoadedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnMRecAdLoadedEvent");
- onAdLoadedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.ErrorInfo> onAdLoadFailedEvent;
- public static event Action<string, MaxSdkBase.ErrorInfo> OnAdLoadFailedEvent
- {
- add
- {
- LogSubscribedToEvent("OnMRecAdLoadFailedEvent");
- onAdLoadFailedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnMRecAdLoadFailedEvent");
- onAdLoadFailedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdClickedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdClickedEvent
- {
- add
- {
- LogSubscribedToEvent("OnMRecAdClickedEvent");
- onAdClickedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnMRecAdClickedEvent");
- onAdClickedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdRevenuePaidEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdRevenuePaidEvent
- {
- add
- {
- LogSubscribedToEvent("OnMRecAdRevenuePaidEvent");
- onAdRevenuePaidEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnMRecAdRevenuePaidEvent");
- onAdRevenuePaidEvent -= value;
- }
- }
- /// <summary>
- /// Fired when an Ad Review Creative ID has been generated.
- /// </summary>
- internal static Action<string, string, MaxSdkBase.AdInfo> onAdReviewCreativeIdGeneratedEvent;
- public static event Action<string, string, MaxSdkBase.AdInfo> OnAdReviewCreativeIdGeneratedEvent
- {
- add
- {
- LogSubscribedToEvent("OnMRecAdReviewCreativeIdGeneratedEvent");
- onAdReviewCreativeIdGeneratedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnMRecAdReviewCreativeIdGeneratedEvent");
- onAdReviewCreativeIdGeneratedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdExpandedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdExpandedEvent
- {
- add
- {
- LogSubscribedToEvent("OnMRecAdExpandedEvent");
- onAdExpandedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnMRecAdExpandedEvent");
- onAdExpandedEvent -= value;
- }
- }
- internal static Action<string, MaxSdkBase.AdInfo> onAdCollapsedEvent;
- public static event Action<string, MaxSdkBase.AdInfo> OnAdCollapsedEvent
- {
- add
- {
- LogSubscribedToEvent("OnMRecAdCollapsedEvent");
- onAdCollapsedEvent += value;
- }
- remove
- {
- LogUnsubscribedToEvent("OnMRecAdCollapsedEvent");
- onAdCollapsedEvent -= value;
- }
- }
- }
- public static void ForwardEvent(string eventPropsStr)
- {
- var eventProps = Json.Deserialize(eventPropsStr) as Dictionary<string, object>;
- if (eventProps == null)
- {
- MaxSdkLogger.E("Failed to forward event due to invalid event data");
- return;
- }
- var keepInBackground = MaxSdkUtils.GetBoolFromDictionary(eventProps, "keepInBackground", false);
- var eventName = MaxSdkUtils.GetStringFromDictionary(eventProps, "name", "");
- if (eventName == "OnInitialCallbackEvent")
- {
- MaxSdkLogger.D("Initial background callback.");
- }
- else if (eventName == "OnSdkInitializedEvent")
- {
- var sdkConfiguration = MaxSdkBase.SdkConfiguration.Create(eventProps);
- InvokeEvent(onSdkInitializedEvent, sdkConfiguration, eventName, keepInBackground);
- }
- else if (eventName == "OnCmpCompletedEvent")
- {
- var errorProps = MaxSdkUtils.GetDictionaryFromDictionary(eventProps, "error");
- MaxCmpService.NotifyCompletedIfNeeded(errorProps);
- }
- else if (eventName == "OnApplicationStateChanged")
- {
- var isPaused = MaxSdkUtils.GetBoolFromDictionary(eventProps, "isPaused");
- InvokeEvent(onApplicationStateChangedEvent, isPaused, eventName, keepInBackground);
- }
- // Ad Events
- else
- {
- var isExpiredAdReloadedEvent = Regex.IsMatch(eventName, @"^OnExpired\w+AdReloadedEvent$");
- var adInfoEventProps = isExpiredAdReloadedEvent ? MaxSdkUtils.GetDictionaryFromDictionary(eventProps, "newAdInfo") : eventProps;
- var adInfo = new MaxSdkBase.AdInfo(adInfoEventProps);
- var adUnitIdentifier = MaxSdkUtils.GetStringFromDictionary(adInfoEventProps, "adUnitId", "");
- // Expired ad reloaded callbacks pass down multiple adInfo objects
- if (isExpiredAdReloadedEvent)
- {
- var expiredAdInfo = new MaxSdkBase.AdInfo(MaxSdkUtils.GetDictionaryFromDictionary(eventProps, "expiredAdInfo"));
- if (eventName == "OnExpiredInterstitialAdReloadedEvent")
- {
- InvokeEvent(Interstitial.onExpiredAdReloadedEvent, adUnitIdentifier, expiredAdInfo, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnExpiredAppOpenAdReloadedEvent")
- {
- InvokeEvent(AppOpen.onExpiredAdReloadedEvent, adUnitIdentifier, expiredAdInfo, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnExpiredRewardedAdReloadedEvent")
- {
- InvokeEvent(Rewarded.onExpiredAdReloadedEvent, adUnitIdentifier, expiredAdInfo, adInfo, eventName, keepInBackground);
- }
- else
- {
- MaxSdkLogger.UserWarning("Unknown MAX Ads event fired: " + eventName);
- }
- }
- else if (eventName == "OnBannerAdLoadedEvent")
- {
- InvokeEvent(Banner.onAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnBannerAdLoadFailedEvent")
- {
- var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
- InvokeEvent(Banner.onAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnBannerAdClickedEvent")
- {
- InvokeEvent(Banner.onAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnBannerAdRevenuePaidEvent")
- {
- InvokeEvent(Banner.onAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnBannerAdReviewCreativeIdGeneratedEvent")
- {
- var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", "");
- InvokeEvent(Banner.onAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnBannerAdExpandedEvent")
- {
- InvokeEvent(Banner.onAdExpandedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnBannerAdCollapsedEvent")
- {
- InvokeEvent(Banner.onAdCollapsedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnMRecAdLoadedEvent")
- {
- InvokeEvent(MRec.onAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnMRecAdLoadFailedEvent")
- {
- var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
- InvokeEvent(MRec.onAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnMRecAdClickedEvent")
- {
- InvokeEvent(MRec.onAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnMRecAdRevenuePaidEvent")
- {
- InvokeEvent(MRec.onAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnMRecAdReviewCreativeIdGeneratedEvent")
- {
- var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", "");
- InvokeEvent(MRec.onAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnMRecAdExpandedEvent")
- {
- InvokeEvent(MRec.onAdExpandedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnMRecAdCollapsedEvent")
- {
- InvokeEvent(MRec.onAdCollapsedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnInterstitialLoadedEvent")
- {
- InvokeEvent(Interstitial.onAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnInterstitialLoadFailedEvent")
- {
- var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
- InvokeEvent(Interstitial.onAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnInterstitialHiddenEvent")
- {
- InvokeEvent(Interstitial.onAdHiddenEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnInterstitialDisplayedEvent")
- {
- InvokeEvent(Interstitial.onAdDisplayedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnInterstitialAdFailedToDisplayEvent")
- {
- var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
- InvokeEvent(Interstitial.onAdDisplayFailedEvent, adUnitIdentifier, errorInfo, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnInterstitialClickedEvent")
- {
- InvokeEvent(Interstitial.onAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnInterstitialAdRevenuePaidEvent")
- {
- InvokeEvent(Interstitial.onAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnInterstitialAdReviewCreativeIdGeneratedEvent")
- {
- var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", "");
- InvokeEvent(Interstitial.onAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnAppOpenAdLoadedEvent")
- {
- InvokeEvent(AppOpen.onAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnAppOpenAdLoadFailedEvent")
- {
- var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
- InvokeEvent(AppOpen.onAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnAppOpenAdHiddenEvent")
- {
- InvokeEvent(AppOpen.onAdHiddenEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnAppOpenAdDisplayedEvent")
- {
- InvokeEvent(AppOpen.onAdDisplayedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnAppOpenAdFailedToDisplayEvent")
- {
- var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
- InvokeEvent(AppOpen.onAdDisplayFailedEvent, adUnitIdentifier, errorInfo, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnAppOpenAdClickedEvent")
- {
- InvokeEvent(AppOpen.onAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnAppOpenAdRevenuePaidEvent")
- {
- InvokeEvent(AppOpen.onAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnRewardedAdLoadedEvent")
- {
- InvokeEvent(Rewarded.onAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnRewardedAdLoadFailedEvent")
- {
- var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
- InvokeEvent(Rewarded.onAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnRewardedAdDisplayedEvent")
- {
- InvokeEvent(Rewarded.onAdDisplayedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnRewardedAdHiddenEvent")
- {
- InvokeEvent(Rewarded.onAdHiddenEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnRewardedAdClickedEvent")
- {
- InvokeEvent(Rewarded.onAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnRewardedAdRevenuePaidEvent")
- {
- InvokeEvent(Rewarded.onAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnRewardedAdReviewCreativeIdGeneratedEvent")
- {
- var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", "");
- InvokeEvent(Rewarded.onAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnRewardedAdFailedToDisplayEvent")
- {
- var errorInfo = new MaxSdkBase.ErrorInfo(eventProps);
- InvokeEvent(Rewarded.onAdDisplayFailedEvent, adUnitIdentifier, errorInfo, adInfo, eventName, keepInBackground);
- }
- else if (eventName == "OnRewardedAdReceivedRewardEvent")
- {
- var reward = new MaxSdkBase.Reward
- {
- Label = MaxSdkUtils.GetStringFromDictionary(eventProps, "rewardLabel", ""),
- Amount = MaxSdkUtils.GetIntFromDictionary(eventProps, "rewardAmount", 0)
- };
- InvokeEvent(Rewarded.onAdReceivedRewardEvent, adUnitIdentifier, reward, adInfo, eventName, keepInBackground);
- }
- else
- {
- MaxSdkLogger.UserWarning("Unknown MAX Ads event fired: " + eventName);
- }
- }
- }
- #if UNITY_EDITOR
- public static void EmitSdkInitializedEvent()
- {
- if (onSdkInitializedEvent == null) return;
- onSdkInitializedEvent(MaxSdkBase.SdkConfiguration.CreateEmpty());
- }
- #endif
- private static void InvokeEvent(Action evt, string eventName, bool keepInBackground)
- {
- if (!CanInvokeEvent(evt)) return;
- MaxSdkLogger.UserDebug("Invoking event: " + eventName);
- if (ShouldInvokeInBackground(keepInBackground))
- {
- try
- {
- evt();
- }
- catch (Exception exception)
- {
- MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception);
- MaxSdkLogger.LogException(exception);
- }
- }
- else
- {
- MaxEventExecutor.ExecuteOnMainThread(evt, eventName);
- }
- }
- private static void InvokeEvent<T>(Action<T> evt, T param, string eventName, bool keepInBackground)
- {
- if (!CanInvokeEvent(evt)) return;
- MaxSdkLogger.UserDebug("Invoking event: " + eventName + ". Param: " + param);
- if (ShouldInvokeInBackground(keepInBackground))
- {
- try
- {
- evt(param);
- }
- catch (Exception exception)
- {
- MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception);
- MaxSdkLogger.LogException(exception);
- }
- }
- else
- {
- MaxEventExecutor.ExecuteOnMainThread(() => evt(param), eventName);
- }
- }
- private static void InvokeEvent<T1, T2>(Action<T1, T2> evt, T1 param1, T2 param2, string eventName, bool keepInBackground)
- {
- if (!CanInvokeEvent(evt)) return;
- MaxSdkLogger.UserDebug("Invoking event: " + eventName + ". Params: " + param1 + ", " + param2);
- if (ShouldInvokeInBackground(keepInBackground))
- {
- try
- {
- evt(param1, param2);
- }
- catch (Exception exception)
- {
- MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception);
- MaxSdkLogger.LogException(exception);
- }
- }
- else
- {
- MaxEventExecutor.ExecuteOnMainThread(() => evt(param1, param2), eventName);
- }
- }
- private static void InvokeEvent<T1, T2, T3>(Action<T1, T2, T3> evt, T1 param1, T2 param2, T3 param3, string eventName, bool keepInBackground)
- {
- if (!CanInvokeEvent(evt)) return;
- MaxSdkLogger.UserDebug("Invoking event: " + eventName + ". Params: " + param1 + ", " + param2 + ", " + param3);
- if (ShouldInvokeInBackground(keepInBackground))
- {
- try
- {
- evt(param1, param2, param3);
- }
- catch (Exception exception)
- {
- MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception);
- MaxSdkLogger.LogException(exception);
- }
- }
- else
- {
- MaxEventExecutor.ExecuteOnMainThread(() => evt(param1, param2, param3), eventName);
- }
- }
- private static bool CanInvokeEvent(Delegate evt)
- {
- if (evt == null) return false;
- // Check that publisher is not over-subscribing
- if (evt.GetInvocationList().Length > 5)
- {
- MaxSdkLogger.UserWarning("Ads Event (" + evt + ") has over 5 subscribers. Please make sure you are properly un-subscribing to actions!!!");
- }
- return true;
- }
- private static bool ShouldInvokeInBackground(bool keepInBackground)
- {
- return MaxSdkBase.InvokeEventsOnUnityMainThread == null ? keepInBackground : !MaxSdkBase.InvokeEventsOnUnityMainThread.Value;
- }
- private static void LogSubscribedToEvent(string eventName)
- {
- MaxSdkLogger.D("Listener has been added to callback: " + eventName);
- }
- private static void LogUnsubscribedToEvent(string eventName)
- {
- MaxSdkLogger.D("Listener has been removed from callback: " + eventName);
- }
- #if UNITY_EDITOR && UNITY_2019_2_OR_NEWER
- /// <summary>
- /// Resets static event handlers so they still get reset even if Domain Reloading is disabled
- /// </summary>
- [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
- private static void ResetOnDomainReload()
- {
- onSdkInitializedEvent = null;
- Interstitial.onAdLoadedEvent = null;
- Interstitial.onAdLoadFailedEvent = null;
- Interstitial.onAdDisplayedEvent = null;
- Interstitial.onAdDisplayFailedEvent = null;
- Interstitial.onAdClickedEvent = null;
- Interstitial.onAdRevenuePaidEvent = null;
- Interstitial.onAdReviewCreativeIdGeneratedEvent = null;
- Interstitial.onAdHiddenEvent = null;
- AppOpen.onAdLoadedEvent = null;
- AppOpen.onAdLoadFailedEvent = null;
- AppOpen.onAdDisplayedEvent = null;
- AppOpen.onAdDisplayFailedEvent = null;
- AppOpen.onAdClickedEvent = null;
- AppOpen.onAdRevenuePaidEvent = null;
- AppOpen.onAdHiddenEvent = null;
- Rewarded.onAdLoadedEvent = null;
- Rewarded.onAdLoadFailedEvent = null;
- Rewarded.onAdDisplayedEvent = null;
- Rewarded.onAdDisplayFailedEvent = null;
- Rewarded.onAdClickedEvent = null;
- Rewarded.onAdRevenuePaidEvent = null;
- Rewarded.onAdReviewCreativeIdGeneratedEvent = null;
- Rewarded.onAdReceivedRewardEvent = null;
- Rewarded.onAdHiddenEvent = null;
- Banner.onAdLoadedEvent = null;
- Banner.onAdLoadFailedEvent = null;
- Banner.onAdClickedEvent = null;
- Banner.onAdRevenuePaidEvent = null;
- Banner.onAdReviewCreativeIdGeneratedEvent = null;
- Banner.onAdExpandedEvent = null;
- Banner.onAdCollapsedEvent = null;
- MRec.onAdLoadedEvent = null;
- MRec.onAdLoadFailedEvent = null;
- MRec.onAdClickedEvent = null;
- MRec.onAdRevenuePaidEvent = null;
- MRec.onAdReviewCreativeIdGeneratedEvent = null;
- MRec.onAdExpandedEvent = null;
- MRec.onAdCollapsedEvent = null;
- }
- #endif
- }
|