From d9eb6bed3819b6e2c541eeae34b76a55c1c08897 Mon Sep 17 00:00:00 2001 From: jenkins Date: Fri, 5 Apr 2024 01:09:02 -0700 Subject: [PATCH] demoapp/bump_applovin_plugin_6.4.1 --- DemoApp/Assets/MaxSdk/AppLovin.meta | 2 +- DemoApp/Assets/MaxSdk/AppLovin/Editor.meta | 2 +- .../MaxSdk/AppLovin/Editor/Dependencies.xml | 2 +- DemoApp/Assets/MaxSdk/AppLovin/Plugins.meta | 2 +- .../MaxSdk/AppLovin/Plugins/Android.meta | 2 +- .../Android/applovin-max-unity-plugin.aar | Bin 76925 -> 72379 bytes .../Assets/MaxSdk/AppLovin/Plugins/iOS.meta | 2 +- .../AppLovin/Plugins/iOS/MAUnityAdManager.m | 782 +++++++++--------- DemoApp/Assets/MaxSdk/Prefabs.meta | 2 +- DemoApp/Assets/MaxSdk/Resources.meta | 2 +- DemoApp/Assets/MaxSdk/Resources/Images.meta | 2 +- DemoApp/Assets/MaxSdk/Scripts.meta | 2 +- .../AppLovinIntegrationManagerWindow.cs | 22 +- .../Editor/AppLovinPostProcessiOS.cs | 1 + .../Editor/AppLovinSettings.cs | 10 +- .../Assets/MaxSdk/Scripts/MaxEventExecutor.cs | 112 +++ .../MaxSdk/Scripts/MaxEventExecutor.cs.meta | 14 + DemoApp/Assets/MaxSdk/Scripts/MaxSdk.cs | 2 +- .../Assets/MaxSdk/Scripts/MaxSdkCallbacks.cs | 224 ++--- 19 files changed, 701 insertions(+), 486 deletions(-) create mode 100644 DemoApp/Assets/MaxSdk/Scripts/MaxEventExecutor.cs create mode 100644 DemoApp/Assets/MaxSdk/Scripts/MaxEventExecutor.cs.meta diff --git a/DemoApp/Assets/MaxSdk/AppLovin.meta b/DemoApp/Assets/MaxSdk/AppLovin.meta index e277c24..62d9eaa 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin.meta +++ b/DemoApp/Assets/MaxSdk/AppLovin.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5a298be27f2264035a0a12f576b6f60a +guid: d15d3fe410b4e40b78e6fc7bb64e74f7 labels: - al_max - al_max_export_path-MaxSdk/AppLovin diff --git a/DemoApp/Assets/MaxSdk/AppLovin/Editor.meta b/DemoApp/Assets/MaxSdk/AppLovin/Editor.meta index 18586c9..d90e01b 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin/Editor.meta +++ b/DemoApp/Assets/MaxSdk/AppLovin/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b29fc3eeba12946f5bd0a536cf9125fe +guid: 7c84efda8dec8410289dd3bdba03bdaf labels: - al_max - al_max_export_path-MaxSdk/AppLovin/Editor diff --git a/DemoApp/Assets/MaxSdk/AppLovin/Editor/Dependencies.xml b/DemoApp/Assets/MaxSdk/AppLovin/Editor/Dependencies.xml index 10eee2a..82be905 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin/Editor/Dependencies.xml +++ b/DemoApp/Assets/MaxSdk/AppLovin/Editor/Dependencies.xml @@ -4,6 +4,6 @@ - + diff --git a/DemoApp/Assets/MaxSdk/AppLovin/Plugins.meta b/DemoApp/Assets/MaxSdk/AppLovin/Plugins.meta index 3239f05..3feea1e 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin/Plugins.meta +++ b/DemoApp/Assets/MaxSdk/AppLovin/Plugins.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 802bf403b103b4f67b96265a1c59df09 +guid: 447c89615029a426fb11713ce6f2342d labels: - al_max - al_max_export_path-MaxSdk/AppLovin/Plugins diff --git a/DemoApp/Assets/MaxSdk/AppLovin/Plugins/Android.meta b/DemoApp/Assets/MaxSdk/AppLovin/Plugins/Android.meta index eb079ef..778ca84 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin/Plugins/Android.meta +++ b/DemoApp/Assets/MaxSdk/AppLovin/Plugins/Android.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1a262d2507e0c44bc81b338395cccaae +guid: 73da1894510174dd6b20cc7f2b49a12c labels: - al_max - al_max_export_path-MaxSdk/AppLovin/Plugins/Android diff --git a/DemoApp/Assets/MaxSdk/AppLovin/Plugins/Android/applovin-max-unity-plugin.aar b/DemoApp/Assets/MaxSdk/AppLovin/Plugins/Android/applovin-max-unity-plugin.aar index b3d3ac6c36fef9324fe93480d350b6e16e2ac1b2..eb11809ef78bf0333f474b5210ab2d2f375f0702 100644 GIT binary patch delta 72098 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

hHqZrz#7-ZjDBt@hfo%1xJgn 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 OiwmTNVL%0X;{Fd5`v-FX delta 76647 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 *args = [self defaultAdEventParametersForName: name withAd: ad]; - [MAUnityAdManager forwardUnityEventWithArgs: args]; + + NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); } - (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adUnitIdentifier withError:(MAError *)error { - if ( !adUnitIdentifier ) - { - [self log: @"adUnitIdentifier cannot be nil from %@", [NSThread callStackSymbols]]; - return; - } - - NSString *name; - if ( self.adViews[adUnitIdentifier] ) - { - MAAdFormat *adFormat = self.adViewAdFormats[adUnitIdentifier]; - if ( MAAdFormat.mrec == adFormat ) + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + + if ( !adUnitIdentifier ) + { + [self log: @"adUnitIdentifier cannot be nil from %@", [NSThread callStackSymbols]]; + return; + } + + NSString *name; + if ( self.adViews[adUnitIdentifier] ) { - name = @"OnMRecAdLoadFailedEvent"; + MAAdFormat *adFormat = self.adViewAdFormats[adUnitIdentifier]; + if ( MAAdFormat.mrec == adFormat ) + { + name = @"OnMRecAdLoadFailedEvent"; + } + else + { + name = @"OnBannerAdLoadFailedEvent"; + } + } + else if ( self.interstitials[adUnitIdentifier] ) + { + name = @"OnInterstitialLoadFailedEvent"; + } + else if ( self.appOpenAds[adUnitIdentifier] ) + { + name = @"OnAppOpenAdLoadFailedEvent"; + } + else if ( self.rewardedAds[adUnitIdentifier] ) + { + name = @"OnRewardedAdLoadFailedEvent"; + } + else if ( self.rewardedInterstitialAds[adUnitIdentifier] ) + { + name = @"OnRewardedInterstitialAdLoadFailedEvent"; } else { - name = @"OnBannerAdLoadFailedEvent"; + [self log: @"invalid adUnitId from %@", [NSThread callStackSymbols]]; + return; } - } - else if ( self.interstitials[adUnitIdentifier] ) - { - name = @"OnInterstitialLoadFailedEvent"; - } - else if ( self.appOpenAds[adUnitIdentifier] ) - { - name = @"OnAppOpenAdLoadFailedEvent"; - } - else if ( self.rewardedAds[adUnitIdentifier] ) - { - name = @"OnRewardedAdLoadFailedEvent"; - } - else if ( self.rewardedInterstitialAds[adUnitIdentifier] ) - { - name = @"OnRewardedInterstitialAdLoadFailedEvent"; - } - else - { - [self log: @"invalid adUnitId from %@", [NSThread callStackSymbols]]; - return; - } - - @synchronized ( self.adInfoDictLock ) - { - [self.adInfoDict removeObjectForKey: adUnitIdentifier]; - } - - [MAUnityAdManager forwardUnityEventWithArgs: @{@"name" : name, - @"adUnitId" : adUnitIdentifier, - @"errorCode" : [@(error.code) stringValue], - @"errorMessage" : error.message, - @"waterfallInfo" : [self createAdWaterfallInfo: error.waterfall], - @"adLoadFailureInfo" : error.adLoadFailureInfo ?: @"", - @"latencyMillis" : [self requestLatencyMillisFromRequestLatency: error.requestLatency]}]; + + @synchronized ( self.adInfoDictLock ) + { + [self.adInfoDict removeObjectForKey: adUnitIdentifier]; + } + + [MAUnityAdManager forwardUnityEventWithArgs: @{@"name" : name, + @"adUnitId" : adUnitIdentifier, + @"errorCode" : [@(error.code) stringValue], + @"errorMessage" : error.message, + @"waterfallInfo" : [self createAdWaterfallInfo: error.waterfall], + @"adLoadFailureInfo" : error.adLoadFailureInfo ?: @"", + @"latencyMillis" : [self requestLatencyMillisFromRequestLatency: error.requestLatency]}]; + }); } - (void)didClickAd:(MAAd *)ad { - NSString *name; - MAAdFormat *adFormat = ad.format; - if ( MAAdFormat.banner == adFormat || MAAdFormat.leader == adFormat ) - { - name = @"OnBannerAdClickedEvent"; - } - else if ( MAAdFormat.mrec == adFormat ) - { - name = @"OnMRecAdClickedEvent"; - } - else if ( MAAdFormat.interstitial == adFormat ) - { - name = @"OnInterstitialClickedEvent"; - } - else if ( MAAdFormat.appOpen == adFormat ) - { - name = @"OnAppOpenAdClickedEvent"; - } - else if ( MAAdFormat.rewarded == adFormat ) - { - name = @"OnRewardedAdClickedEvent"; - } - else if ( MAAdFormat.rewardedInterstitial == adFormat ) - { - name = @"OnRewardedInterstitialAdClickedEvent"; - } - else - { - [self logInvalidAdFormat: adFormat]; - return; - } - - NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; - [MAUnityAdManager forwardUnityEventWithArgs: args]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSString *name; + MAAdFormat *adFormat = ad.format; + if ( MAAdFormat.banner == adFormat || MAAdFormat.leader == adFormat ) + { + name = @"OnBannerAdClickedEvent"; + } + else if ( MAAdFormat.mrec == adFormat ) + { + name = @"OnMRecAdClickedEvent"; + } + else if ( MAAdFormat.interstitial == adFormat ) + { + name = @"OnInterstitialClickedEvent"; + } + else if ( MAAdFormat.appOpen == adFormat ) + { + name = @"OnAppOpenAdClickedEvent"; + } + else if ( MAAdFormat.rewarded == adFormat ) + { + name = @"OnRewardedAdClickedEvent"; + } + else if ( MAAdFormat.rewardedInterstitial == adFormat ) + { + name = @"OnRewardedInterstitialAdClickedEvent"; + } + else + { + [self logInvalidAdFormat: adFormat]; + return; + } + + NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); } - (void)didDisplayAd:(MAAd *)ad { - // BMLs do not support [DISPLAY] events in Unity - MAAdFormat *adFormat = ad.format; - if ( ![adFormat isFullscreenAd] ) return; - + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + // BMLs do not support [DISPLAY] events in Unity + MAAdFormat *adFormat = ad.format; + if ( ![adFormat isFullscreenAd] ) return; + #if !IS_TEST_APP - UnityPause(1); + UnityPause(1); #endif - - NSString *name; - if ( MAAdFormat.interstitial == adFormat ) - { - name = @"OnInterstitialDisplayedEvent"; - } - else if ( MAAdFormat.appOpen == adFormat ) - { - name = @"OnAppOpenAdDisplayedEvent"; - } - else if ( MAAdFormat.rewarded == adFormat ) - { - name = @"OnRewardedAdDisplayedEvent"; - } - else // rewarded inters - { - name = @"OnRewardedInterstitialAdDisplayedEvent"; - } - - NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; - [MAUnityAdManager forwardUnityEventWithArgs: args]; + + NSString *name; + if ( MAAdFormat.interstitial == adFormat ) + { + name = @"OnInterstitialDisplayedEvent"; + } + else if ( MAAdFormat.appOpen == adFormat ) + { + name = @"OnAppOpenAdDisplayedEvent"; + } + else if ( MAAdFormat.rewarded == adFormat ) + { + name = @"OnRewardedAdDisplayedEvent"; + } + else // rewarded inters + { + name = @"OnRewardedInterstitialAdDisplayedEvent"; + } + + NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); } - (void)didFailToDisplayAd:(MAAd *)ad withError:(MAError *)error { - // BMLs do not support [DISPLAY] events in Unity - MAAdFormat *adFormat = ad.format; - if ( ![adFormat isFullscreenAd] ) return; - - NSString *name; - if ( MAAdFormat.interstitial == adFormat ) - { - name = @"OnInterstitialAdFailedToDisplayEvent"; - } - else if ( MAAdFormat.appOpen == adFormat ) - { - name = @"OnAppOpenAdFailedToDisplayEvent"; - } - else if ( MAAdFormat.rewarded == adFormat ) - { - name = @"OnRewardedAdFailedToDisplayEvent"; - } - else // rewarded inters - { - name = @"OnRewardedInterstitialAdFailedToDisplayEvent"; - } - - NSMutableDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; - args[@"errorCode"] = [@(error.code) stringValue]; - args[@"errorMessage"] = error.message; - args[@"mediatedNetworkErrorCode"] = [@(error.mediatedNetworkErrorCode) stringValue]; - args[@"mediatedNetworkErrorMessage"] = error.mediatedNetworkErrorMessage; - args[@"waterfallInfo"] = [self createAdWaterfallInfo: error.waterfall]; - args[@"latencyMillis"] = [self requestLatencyMillisFromRequestLatency: error.requestLatency]; - [MAUnityAdManager forwardUnityEventWithArgs: args]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + // BMLs do not support [DISPLAY] events in Unity + MAAdFormat *adFormat = ad.format; + if ( ![adFormat isFullscreenAd] ) return; + + NSString *name; + if ( MAAdFormat.interstitial == adFormat ) + { + name = @"OnInterstitialAdFailedToDisplayEvent"; + } + else if ( MAAdFormat.appOpen == adFormat ) + { + name = @"OnAppOpenAdFailedToDisplayEvent"; + } + else if ( MAAdFormat.rewarded == adFormat ) + { + name = @"OnRewardedAdFailedToDisplayEvent"; + } + else // rewarded inters + { + name = @"OnRewardedInterstitialAdFailedToDisplayEvent"; + } + + NSMutableDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; + args[@"errorCode"] = [@(error.code) stringValue]; + args[@"errorMessage"] = error.message; + args[@"mediatedNetworkErrorCode"] = [@(error.mediatedNetworkErrorCode) stringValue]; + args[@"mediatedNetworkErrorMessage"] = error.mediatedNetworkErrorMessage; + args[@"waterfallInfo"] = [self createAdWaterfallInfo: error.waterfall]; + args[@"latencyMillis"] = [self requestLatencyMillisFromRequestLatency: error.requestLatency]; + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); } - (void)didHideAd:(MAAd *)ad { - // BMLs do not support [HIDDEN] events in Unity - MAAdFormat *adFormat = ad.format; - if ( ![adFormat isFullscreenAd] ) return; - + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + // BMLs do not support [HIDDEN] events in Unity + MAAdFormat *adFormat = ad.format; + if ( ![adFormat isFullscreenAd] ) return; + #if !IS_TEST_APP - UnityPause(0); + UnityPause(0); #endif - - NSString *name; - if ( MAAdFormat.interstitial == adFormat ) - { - name = @"OnInterstitialHiddenEvent"; - } - else if ( MAAdFormat.appOpen == adFormat ) - { - name = @"OnAppOpenAdHiddenEvent"; - } - else if ( MAAdFormat.rewarded == adFormat ) - { - name = @"OnRewardedAdHiddenEvent"; - } - else // rewarded inters - { - name = @"OnRewardedInterstitialAdHiddenEvent"; - } - - NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; - [MAUnityAdManager forwardUnityEventWithArgs: args]; + + NSString *name; + if ( MAAdFormat.interstitial == adFormat ) + { + name = @"OnInterstitialHiddenEvent"; + } + else if ( MAAdFormat.appOpen == adFormat ) + { + name = @"OnAppOpenAdHiddenEvent"; + } + else if ( MAAdFormat.rewarded == adFormat ) + { + name = @"OnRewardedAdHiddenEvent"; + } + else // rewarded inters + { + name = @"OnRewardedInterstitialAdHiddenEvent"; + } + + NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); } - (void)didExpandAd:(MAAd *)ad { - MAAdFormat *adFormat = ad.format; - if ( ![adFormat isAdViewAd] ) - { - [self logInvalidAdFormat: adFormat]; - return; - } - + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + MAAdFormat *adFormat = ad.format; + if ( ![adFormat isAdViewAd] ) + { + [self logInvalidAdFormat: adFormat]; + return; + } + #if !IS_TEST_APP - UnityPause(1); + UnityPause(1); #endif - - NSString *name; - if ( MAAdFormat.mrec == adFormat ) - { - name = @"OnMRecAdExpandedEvent"; - } - else - { - name = @"OnBannerAdExpandedEvent"; - } - - NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; - [MAUnityAdManager forwardUnityEventWithArgs: args]; + + NSString *name; + if ( MAAdFormat.mrec == adFormat ) + { + name = @"OnMRecAdExpandedEvent"; + } + else + { + name = @"OnBannerAdExpandedEvent"; + } + + NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); } - (void)didCollapseAd:(MAAd *)ad { - MAAdFormat *adFormat = ad.format; - if ( ![adFormat isAdViewAd] ) - { - [self logInvalidAdFormat: adFormat]; - return; - } - + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + MAAdFormat *adFormat = ad.format; + if ( ![adFormat isAdViewAd] ) + { + [self logInvalidAdFormat: adFormat]; + return; + } + #if !IS_TEST_APP - UnityPause(0); + UnityPause(0); #endif - - NSString *name; - if ( MAAdFormat.mrec == adFormat ) - { - name = @"OnMRecAdCollapsedEvent"; - } - else - { - name = @"OnBannerAdCollapsedEvent"; - } - - NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; - [MAUnityAdManager forwardUnityEventWithArgs: args]; + + NSString *name; + if ( MAAdFormat.mrec == adFormat ) + { + name = @"OnMRecAdCollapsedEvent"; + } + else + { + name = @"OnBannerAdCollapsedEvent"; + } + + NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); } - (void)didStartRewardedVideoForAd:(MAAd *)ad @@ -962,99 +981,107 @@ - (void)didCompleteRewardedVideoForAd:(MAAd *)ad - (void)didRewardUserForAd:(MAAd *)ad withReward:(MAReward *)reward { - MAAdFormat *adFormat = ad.format; - if ( adFormat != MAAdFormat.rewarded && adFormat != MAAdFormat.rewardedInterstitial ) - { - [self logInvalidAdFormat: adFormat]; - return; - } - - NSString *rewardLabel = reward ? reward.label : @""; - NSInteger rewardAmountInt = reward ? reward.amount : 0; - NSString *rewardAmount = [@(rewardAmountInt) stringValue]; - - NSString *name = (adFormat == MAAdFormat.rewarded) ? @"OnRewardedAdReceivedRewardEvent" : @"OnRewardedInterstitialAdReceivedRewardEvent"; - - - NSMutableDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; - args[@"rewardLabel"] = rewardLabel; - args[@"rewardAmount"] = rewardAmount; - [MAUnityAdManager forwardUnityEventWithArgs: args]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + MAAdFormat *adFormat = ad.format; + if ( adFormat != MAAdFormat.rewarded && adFormat != MAAdFormat.rewardedInterstitial ) + { + [self logInvalidAdFormat: adFormat]; + return; + } + + NSString *rewardLabel = reward ? reward.label : @""; + NSInteger rewardAmountInt = reward ? reward.amount : 0; + NSString *rewardAmount = [@(rewardAmountInt) stringValue]; + + NSString *name = (adFormat == MAAdFormat.rewarded) ? @"OnRewardedAdReceivedRewardEvent" : @"OnRewardedInterstitialAdReceivedRewardEvent"; + + + NSMutableDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; + args[@"rewardLabel"] = rewardLabel; + args[@"rewardAmount"] = rewardAmount; + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); } - (void)didPayRevenueForAd:(MAAd *)ad { - NSString *name; - MAAdFormat *adFormat = ad.format; - if ( MAAdFormat.banner == adFormat || MAAdFormat.leader == adFormat ) - { - name = @"OnBannerAdRevenuePaidEvent"; - } - else if ( MAAdFormat.mrec == adFormat ) - { - name = @"OnMRecAdRevenuePaidEvent"; - } - else if ( MAAdFormat.interstitial == adFormat ) - { - name = @"OnInterstitialAdRevenuePaidEvent"; - } - else if ( MAAdFormat.appOpen == adFormat ) - { - name = @"OnAppOpenAdRevenuePaidEvent"; - } - else if ( MAAdFormat.rewarded == adFormat ) - { - name = @"OnRewardedAdRevenuePaidEvent"; - } - else if ( MAAdFormat.rewardedInterstitial == adFormat ) - { - name = @"OnRewardedInterstitialAdRevenuePaidEvent"; - } - else - { - [self logInvalidAdFormat: adFormat]; - return; - } - - NSDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; - [MAUnityAdManager forwardUnityEventWithArgs: args forwardInBackground: [adFormat isFullscreenAd]]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSString *name; + MAAdFormat *adFormat = ad.format; + if ( MAAdFormat.banner == adFormat || MAAdFormat.leader == adFormat ) + { + name = @"OnBannerAdRevenuePaidEvent"; + } + else if ( MAAdFormat.mrec == adFormat ) + { + name = @"OnMRecAdRevenuePaidEvent"; + } + else if ( MAAdFormat.interstitial == adFormat ) + { + name = @"OnInterstitialAdRevenuePaidEvent"; + } + else if ( MAAdFormat.appOpen == adFormat ) + { + name = @"OnAppOpenAdRevenuePaidEvent"; + } + else if ( MAAdFormat.rewarded == adFormat ) + { + name = @"OnRewardedAdRevenuePaidEvent"; + } + else if ( MAAdFormat.rewardedInterstitial == adFormat ) + { + name = @"OnRewardedInterstitialAdRevenuePaidEvent"; + } + else + { + [self logInvalidAdFormat: adFormat]; + return; + } + + NSMutableDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; + args[@"keepInBackground"] = @([adFormat isFullscreenAd]); + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); } - (void)didGenerateCreativeIdentifier:(NSString *)creativeIdentifier forAd:(MAAd *)ad { - NSString *name; - MAAdFormat *adFormat = ad.format; - if ( MAAdFormat.banner == adFormat || MAAdFormat.leader == adFormat ) - { - name = @"OnBannerAdReviewCreativeIdGeneratedEvent"; - } - else if ( MAAdFormat.mrec == adFormat ) - { - name = @"OnMRecAdReviewCreativeIdGeneratedEvent"; - } - else if ( MAAdFormat.interstitial == adFormat ) - { - name = @"OnInterstitialAdReviewCreativeIdGeneratedEvent"; - } - else if ( MAAdFormat.rewarded == adFormat ) - { - name = @"OnRewardedAdReviewCreativeIdGeneratedEvent"; - } - else if ( MAAdFormat.rewardedInterstitial == adFormat ) - { - name = @"OnRewardedInterstitialAdReviewCreativeIdGeneratedEvent"; - } - else - { - [self logInvalidAdFormat: adFormat]; - return; - } - - NSMutableDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; - args[@"adReviewCreativeId"] = creativeIdentifier; - - // Forward the event in background for fullscreen ads so that the user gets the callback even while the ad is playing. - [MAUnityAdManager forwardUnityEventWithArgs: args forwardInBackground: [adFormat isFullscreenAd]]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSString *name; + MAAdFormat *adFormat = ad.format; + if ( MAAdFormat.banner == adFormat || MAAdFormat.leader == adFormat ) + { + name = @"OnBannerAdReviewCreativeIdGeneratedEvent"; + } + else if ( MAAdFormat.mrec == adFormat ) + { + name = @"OnMRecAdReviewCreativeIdGeneratedEvent"; + } + else if ( MAAdFormat.interstitial == adFormat ) + { + name = @"OnInterstitialAdReviewCreativeIdGeneratedEvent"; + } + else if ( MAAdFormat.rewarded == adFormat ) + { + name = @"OnRewardedAdReviewCreativeIdGeneratedEvent"; + } + else if ( MAAdFormat.rewardedInterstitial == adFormat ) + { + name = @"OnRewardedInterstitialAdReviewCreativeIdGeneratedEvent"; + } + else + { + [self logInvalidAdFormat: adFormat]; + return; + } + + NSMutableDictionary *args = [self defaultAdEventParametersForName: name withAd: ad]; + args[@"adReviewCreativeId"] = creativeIdentifier; + args[@"keepInBackground"] = @([adFormat isFullscreenAd]); + + // Forward the event in background for fullscreen ads so that the user gets the callback even while the ad is playing. + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); } - (NSMutableDictionary *)defaultAdEventParametersForName:(NSString *)name withAd:(MAAd *)ad @@ -1666,7 +1693,7 @@ - (void)positionAdViewForAdUnitIdentifier:(NSString *)adUnitIdentifier adFormat: // All positions have constant height NSMutableArray *constraints = [NSMutableArray arrayWithObject: [adView.heightAnchor constraintEqualToConstant: adViewSize.height]]; - UILayoutGuide *layoutGuide = superview.safeAreaLayoutGuide; + UILayoutGuide *layoutGuide = KEY_WINDOW.safeAreaLayoutGuide; if ( [adViewPosition isEqual: @"top_center"] || [adViewPosition isEqual: @"bottom_center"] ) { @@ -1893,21 +1920,21 @@ - (UIViewController *)unityViewController } + (void)forwardUnityEventWithArgs:(NSDictionary *)args -{ - [MAUnityAdManager forwardUnityEventWithArgs: args forwardInBackground: NO]; -} - -+ (void)forwardUnityEventWithArgs:(NSDictionary *)args forwardInBackground:(BOOL)forwardInBackground { #if !IS_TEST_APP - char *serializedParameters = [self serializeParameters: args].UTF8String; - if ( forwardInBackground ) - { + void (^runnable)(void) = ^{ + char *serializedParameters = [self serializeParameters: args].UTF8String; backgroundCallback(serializedParameters); + }; + + // Always forward in background - we push it back to the main thread in Unity + if ( [NSThread isMainThread] ) + { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), runnable); } else { - UnitySendMessage("MaxSdkCallbacks", "ForwardEvent", serializedParameters); + runnable(); } #endif } @@ -1963,7 +1990,9 @@ - (NSString *)requestLatencyMillisFromRequestLatency:(NSTimeInterval)requestLate - (void)didDismissUserConsentDialog { - [MAUnityAdManager forwardUnityEventWithArgs: @{@"name" : @"OnSdkConsentDialogDismissedEvent"}]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + [MAUnityAdManager forwardUnityEventWithArgs: @{@"name" : @"OnSdkConsentDialogDismissedEvent"}]; + }); } #pragma mark - CMP Service @@ -1971,19 +2000,22 @@ - (void)didDismissUserConsentDialog - (void)showCMPForExistingUser { [self.sdk.cmpService showCMPForExistingUserWithCompletion:^(ALCMPError * _Nullable error) { - - NSMutableDictionary *args = [NSMutableDictionary dictionaryWithCapacity: 2]; - args[@"name"] = @"OnCmpCompletedEvent"; - - if ( error ) - { - args[@"error"] = @{@"code": @(error.code), - @"message": error.message, - @"cmpCode": @(error.cmpCode), - @"cmpMessage": error.cmpMessage}; - } - - [MAUnityAdManager forwardUnityEventWithArgs: args forwardInBackground: YES]; + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSMutableDictionary *args = [NSMutableDictionary dictionaryWithCapacity: 2]; + args[@"name"] = @"OnCmpCompletedEvent"; + + if ( error ) + { + args[@"error"] = @{@"code": @(error.code), + @"message": error.message, + @"cmpCode": @(error.cmpCode), + @"cmpMessage": error.cmpMessage, + @"keepInBackground": @(YES)}; + } + + [MAUnityAdManager forwardUnityEventWithArgs: args]; + }); }]; } diff --git a/DemoApp/Assets/MaxSdk/Prefabs.meta b/DemoApp/Assets/MaxSdk/Prefabs.meta index 8d383d5..9d00286 100644 --- a/DemoApp/Assets/MaxSdk/Prefabs.meta +++ b/DemoApp/Assets/MaxSdk/Prefabs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 76814da51610647a6bd0d3cd9ed5b40e +guid: f5ae75e2a79624b65a0a8afcf7863f1c labels: - al_max - al_max_export_path-MaxSdk/Prefabs diff --git a/DemoApp/Assets/MaxSdk/Resources.meta b/DemoApp/Assets/MaxSdk/Resources.meta index ffba082..b12b338 100644 --- a/DemoApp/Assets/MaxSdk/Resources.meta +++ b/DemoApp/Assets/MaxSdk/Resources.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2f939b65329b54000ab3039b97ba6f24 +guid: 6892ea34939cb4994b8f67d014ddd1ab labels: - al_max - al_max_export_path-MaxSdk/Resources diff --git a/DemoApp/Assets/MaxSdk/Resources/Images.meta b/DemoApp/Assets/MaxSdk/Resources/Images.meta index f74e470..dfc1363 100644 --- a/DemoApp/Assets/MaxSdk/Resources/Images.meta +++ b/DemoApp/Assets/MaxSdk/Resources/Images.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: cea68bf1665514d2abdfa79bcf5d319d +guid: 38d3c03bd464246b3a1c6fa0c7d77387 labels: - al_max - al_max_export_path-MaxSdk/Resources/Images diff --git a/DemoApp/Assets/MaxSdk/Scripts.meta b/DemoApp/Assets/MaxSdk/Scripts.meta index a2c2cbf..b29e057 100644 --- a/DemoApp/Assets/MaxSdk/Scripts.meta +++ b/DemoApp/Assets/MaxSdk/Scripts.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: feb519309371548eeab981b90e9bec0a +guid: 9ce9ea6a584ec4cd393eb0d8d59b3ed8 labels: - al_max - al_max_export_path-MaxSdk/Scripts diff --git a/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinIntegrationManagerWindow.cs b/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinIntegrationManagerWindow.cs index f56f955..8598f30 100644 --- a/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinIntegrationManagerWindow.cs +++ b/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinIntegrationManagerWindow.cs @@ -145,6 +145,26 @@ private void Awake() } private void OnEnable() + { + // Script reloads can cause AppLovinSettings.Instance to be null for one frame, + // so we load the Integration Manager on the following frame + if (AppLovinSettings.Instance == null) + { + AppLovinEditorCoroutine.StartCoroutine(WaitForNextFrameForEnable()); + } + else + { + OnWindowEnabled(); + } + } + + private IEnumerator WaitForNextFrameForEnable() + { + yield return new WaitForEndOfFrame(); + OnWindowEnabled(); + } + + private void OnWindowEnabled() { AppLovinIntegrationManager.downloadPluginProgressCallback = OnDownloadPluginProgress; @@ -434,7 +454,7 @@ private void DrawPartnerMicroSdks() private void DrawNetworkDetailRow(Network network) { string action; - var currentVersion = network.CurrentVersions.Unity; + var currentVersion = network.CurrentVersions != null ? network.CurrentVersions.Unity : ""; var latestVersion = network.LatestVersions.Unity; bool isActionEnabled; bool isInstalled; diff --git a/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinPostProcessiOS.cs b/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinPostProcessiOS.cs index fda966d..76e1a81 100644 --- a/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinPostProcessiOS.cs +++ b/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinPostProcessiOS.cs @@ -52,6 +52,7 @@ public class AppLovinPostProcessiOS private static readonly List DynamicLibrariesToEmbed = new List { + "AppLovinSDK.xcframework", "DTBiOSSDK.xcframework", "FBAEMKit.xcframework", "FBSDKCoreKit_Basics.xcframework", diff --git a/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinSettings.cs b/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinSettings.cs index 5f58115..df88d8d 100644 --- a/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinSettings.cs +++ b/DemoApp/Assets/MaxSdk/Scripts/IntegrationManager/Editor/AppLovinSettings.cs @@ -131,9 +131,13 @@ public static AppLovinSettings Instance Directory.CreateDirectory(settingsDir); } - instance = CreateInstance(); - AssetDatabase.CreateAsset(instance, settingsFilePath); - MaxSdkLogger.D("Creating new AppLovinSettings asset at path: " + settingsFilePath); + // On script reload AssetDatabase.FindAssets() can fail and will overwrite AppLovinSettings without this check + if (!File.Exists(settingsFilePath)) + { + instance = CreateInstance(); + AssetDatabase.CreateAsset(instance, settingsFilePath); + MaxSdkLogger.D("Creating new AppLovinSettings asset at path: " + settingsFilePath); + } } return instance; diff --git a/DemoApp/Assets/MaxSdk/Scripts/MaxEventExecutor.cs b/DemoApp/Assets/MaxSdk/Scripts/MaxEventExecutor.cs new file mode 100644 index 0000000..29a9ea4 --- /dev/null +++ b/DemoApp/Assets/MaxSdk/Scripts/MaxEventExecutor.cs @@ -0,0 +1,112 @@ +// +// MaxEventExecutor.cs +// Max Unity Plugin +// +// Created by Jonathan Liu on 1/22/2024. +// Copyright © 2024 AppLovin. All rights reserved. +// + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +namespace AppLovinUserEngagement.Internal +{ + public class MaxEventExecutor : MonoBehaviour + { + private static MaxEventExecutor instance; + private static List adEventsQueue = new List(); + + private static volatile bool adEventsQueueEmpty = true; + + struct MaxAction + { + public Action action; + public string eventName; + + public MaxAction(Action actionToExecute, string nameOfEvent) + { + action = actionToExecute; + eventName = nameOfEvent; + } + } + + public static void InitializeIfNeeded() + { + if (IsActive()) return; + + var executor = new GameObject("MaxEventExecutor"); + executor.hideFlags = HideFlags.HideAndDontSave; + DontDestroyOnLoad(executor); + instance = executor.AddComponent(); + } + + #region Public API + + public static MaxEventExecutor Instance + { + get { return instance; } + } + + public static bool IsActive() + { + return instance != null; + } + + public static void ExecuteOnMainThread(Action action, string eventName) + { + lock (adEventsQueue) + { + adEventsQueue.Add(new MaxAction(action, eventName)); + adEventsQueueEmpty = false; + } + } + + public static void InvokeOnMainThread(UnityEvent unityEvent, string eventName) + { + ExecuteOnMainThread(() => unityEvent.Invoke(), eventName); + } + + #endregion + + public void Awake() + { + DontDestroyOnLoad(gameObject); + } + + public void Update() + { + if (adEventsQueueEmpty) return; + + var actionsToExecute = new List(); + lock (adEventsQueue) + { + actionsToExecute.AddRange(adEventsQueue); + adEventsQueue.Clear(); + adEventsQueueEmpty = true; + } + + foreach (var maxAction in actionsToExecute) + { + if (maxAction.action.Target != null) + { + try + { + maxAction.action.Invoke(); + } + catch (Exception exception) + { + MaxSdkLogger.UserError("Caught exception in publisher event: " + maxAction.eventName + ", exception: " + exception); + Debug.LogException(exception); + } + } + } + } + + public void Disable() + { + instance = null; + } + } +} diff --git a/DemoApp/Assets/MaxSdk/Scripts/MaxEventExecutor.cs.meta b/DemoApp/Assets/MaxSdk/Scripts/MaxEventExecutor.cs.meta new file mode 100644 index 0000000..18ba126 --- /dev/null +++ b/DemoApp/Assets/MaxSdk/Scripts/MaxEventExecutor.cs.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 4715dd62632564dc4810a4dc98243f4a +labels: +- al_max +- al_max_export_path-MaxSdk/Scripts/MaxEventExecutor.cs +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/DemoApp/Assets/MaxSdk/Scripts/MaxSdk.cs b/DemoApp/Assets/MaxSdk/Scripts/MaxSdk.cs index eb737eb..1bd6ae5 100644 --- a/DemoApp/Assets/MaxSdk/Scripts/MaxSdk.cs +++ b/DemoApp/Assets/MaxSdk/Scripts/MaxSdk.cs @@ -18,7 +18,7 @@ public class MaxSdk : MaxSdkUnityEditor #endif { - private const string _version = "6.4.0"; + private const string _version = "6.4.1"; ///

/// Returns the current plugin version. diff --git a/DemoApp/Assets/MaxSdk/Scripts/MaxSdkCallbacks.cs b/DemoApp/Assets/MaxSdk/Scripts/MaxSdkCallbacks.cs index 134165c..907bd36 100644 --- a/DemoApp/Assets/MaxSdk/Scripts/MaxSdkCallbacks.cs +++ b/DemoApp/Assets/MaxSdk/Scripts/MaxSdkCallbacks.cs @@ -7,6 +7,7 @@ using System.Globalization; using UnityEngine; using AppLovinMax.ThirdParty.MiniJson; +using AppLovinUserEngagement.Internal; public class MaxSdkCallbacks : MonoBehaviour { @@ -1226,6 +1227,8 @@ void Awake() Instance = this; DontDestroyOnLoad(gameObject); } + + MaxEventExecutor.InitializeIfNeeded(); } #endif @@ -1238,6 +1241,7 @@ public void ForwardEvent(string eventPropsStr) return; } + var keepInBackground = MaxSdkUtils.GetBoolFromDictionary(eventProps, "keepInBackground", false); var eventName = MaxSdkUtils.GetStringFromDictionary(eventProps, "name", ""); if (eventName == "OnInitialCallbackEvent") { @@ -1246,11 +1250,11 @@ public void ForwardEvent(string eventPropsStr) else if (eventName == "OnSdkInitializedEvent") { var sdkConfiguration = MaxSdkBase.SdkConfiguration.Create(eventProps); - InvokeEvent(_onSdkInitializedEvent, sdkConfiguration, eventName); + InvokeEvent(_onSdkInitializedEvent, sdkConfiguration, eventName, keepInBackground); } else if (eventName == "OnSdkConsentDialogDismissedEvent") { - InvokeEvent(_onSdkConsentDialogDismissedEvent, eventName); + InvokeEvent(_onSdkConsentDialogDismissedEvent, eventName, keepInBackground); } else if (eventName == "OnCmpCompletedEvent") { @@ -1264,197 +1268,197 @@ public void ForwardEvent(string eventPropsStr) var adUnitIdentifier = MaxSdkUtils.GetStringFromDictionary(eventProps, "adUnitId", ""); if (eventName == "OnBannerAdLoadedEvent") { - InvokeEvent(_onBannerAdLoadedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onBannerAdLoadedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onBannerAdLoadedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onBannerAdLoadedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnBannerAdLoadFailedEvent") { var errorCode = MaxSdkUtils.GetIntFromDictionary(eventProps, "errorCode", -1); - InvokeEvent(_onBannerAdLoadFailedEvent, adUnitIdentifier, errorCode, eventName); + InvokeEvent(_onBannerAdLoadFailedEvent, adUnitIdentifier, errorCode, eventName, keepInBackground); var errorInfo = new MaxSdkBase.ErrorInfo(eventProps); - InvokeEvent(_onBannerAdLoadFailedEventV2, adUnitIdentifier, errorInfo, eventName); + InvokeEvent(_onBannerAdLoadFailedEventV2, adUnitIdentifier, errorInfo, eventName, keepInBackground); } else if (eventName == "OnBannerAdClickedEvent") { - InvokeEvent(_onBannerAdClickedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onBannerAdClickedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onBannerAdClickedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onBannerAdClickedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnBannerAdRevenuePaidEvent") { - InvokeEvent(_onBannerAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onBannerAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnBannerAdReviewCreativeIdGeneratedEvent") { var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", ""); - InvokeEvent(_onBannerAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName); + InvokeEvent(_onBannerAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground); } else if (eventName == "OnBannerAdExpandedEvent") { - InvokeEvent(_onBannerAdExpandedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onBannerAdExpandedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onBannerAdExpandedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onBannerAdExpandedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnBannerAdCollapsedEvent") { - InvokeEvent(_onBannerAdCollapsedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onBannerAdCollapsedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onBannerAdCollapsedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onBannerAdCollapsedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnMRecAdLoadedEvent") { - InvokeEvent(_onMRecAdLoadedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onMRecAdLoadedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onMRecAdLoadedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onMRecAdLoadedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnMRecAdLoadFailedEvent") { var errorCode = MaxSdkUtils.GetIntFromDictionary(eventProps, "errorCode", -1); - InvokeEvent(_onMRecAdLoadFailedEvent, adUnitIdentifier, errorCode, eventName); + InvokeEvent(_onMRecAdLoadFailedEvent, adUnitIdentifier, errorCode, eventName, keepInBackground); var errorInfo = new MaxSdkBase.ErrorInfo(eventProps); - InvokeEvent(_onMRecAdLoadFailedEventV2, adUnitIdentifier, errorInfo, eventName); + InvokeEvent(_onMRecAdLoadFailedEventV2, adUnitIdentifier, errorInfo, eventName, keepInBackground); } else if (eventName == "OnMRecAdClickedEvent") { - InvokeEvent(_onMRecAdClickedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onMRecAdClickedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onMRecAdClickedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onMRecAdClickedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnMRecAdRevenuePaidEvent") { - InvokeEvent(_onMRecAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onMRecAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnMRecAdReviewCreativeIdGeneratedEvent") { var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", ""); - InvokeEvent(_onMRecAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName); + InvokeEvent(_onMRecAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground); } else if (eventName == "OnMRecAdExpandedEvent") { - InvokeEvent(_onMRecAdExpandedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onMRecAdExpandedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onMRecAdExpandedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onMRecAdExpandedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnMRecAdCollapsedEvent") { - InvokeEvent(_onMRecAdCollapsedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onMRecAdCollapsedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onMRecAdCollapsedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onMRecAdCollapsedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnInterstitialLoadedEvent") { - InvokeEvent(_onInterstitialAdLoadedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onInterstitialAdLoadedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onInterstitialAdLoadedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onInterstitialAdLoadedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnInterstitialLoadFailedEvent") { var errorCode = MaxSdkUtils.GetIntFromDictionary(eventProps, "errorCode", -1); - InvokeEvent(_onInterstitialLoadFailedEvent, adUnitIdentifier, errorCode, eventName); + InvokeEvent(_onInterstitialLoadFailedEvent, adUnitIdentifier, errorCode, eventName, keepInBackground); var errorInfo = new MaxSdkBase.ErrorInfo(eventProps); - InvokeEvent(_onInterstitialAdLoadFailedEventV2, adUnitIdentifier, errorInfo, eventName); + InvokeEvent(_onInterstitialAdLoadFailedEventV2, adUnitIdentifier, errorInfo, eventName, keepInBackground); } else if (eventName == "OnInterstitialHiddenEvent") { - InvokeEvent(_onInterstitialAdHiddenEvent, adUnitIdentifier, eventName); - InvokeEvent(_onInterstitialAdHiddenEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onInterstitialAdHiddenEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onInterstitialAdHiddenEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnInterstitialDisplayedEvent") { - InvokeEvent(_onInterstitialAdDisplayedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onInterstitialAdDisplayedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onInterstitialAdDisplayedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onInterstitialAdDisplayedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnInterstitialAdFailedToDisplayEvent") { var errorCode = MaxSdkUtils.GetIntFromDictionary(eventProps, "errorCode", -1); - InvokeEvent(_onInterstitialAdFailedToDisplayEvent, adUnitIdentifier, errorCode, eventName); + InvokeEvent(_onInterstitialAdFailedToDisplayEvent, adUnitIdentifier, errorCode, eventName, keepInBackground); var errorInfo = new MaxSdkBase.ErrorInfo(eventProps); - InvokeEvent(_onInterstitialAdFailedToDisplayEventV2, adUnitIdentifier, errorInfo, adInfo, eventName); + InvokeEvent(_onInterstitialAdFailedToDisplayEventV2, adUnitIdentifier, errorInfo, adInfo, eventName, keepInBackground); } else if (eventName == "OnInterstitialClickedEvent") { - InvokeEvent(_onInterstitialAdClickedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onInterstitialAdClickedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onInterstitialAdClickedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onInterstitialAdClickedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnInterstitialAdRevenuePaidEvent") { - InvokeEvent(_onInterstitialAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onInterstitialAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnInterstitialAdReviewCreativeIdGeneratedEvent") { var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", ""); - InvokeEvent(_onInterstitialAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName); + InvokeEvent(_onInterstitialAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground); } else if (eventName == "OnAppOpenAdLoadedEvent") { - InvokeEvent(_onAppOpenAdLoadedEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onAppOpenAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnAppOpenAdLoadFailedEvent") { var errorInfo = new MaxSdkBase.ErrorInfo(eventProps); - InvokeEvent(_onAppOpenAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName); + InvokeEvent(_onAppOpenAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground); } else if (eventName == "OnAppOpenAdHiddenEvent") { - InvokeEvent(_onAppOpenAdHiddenEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onAppOpenAdHiddenEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnAppOpenAdDisplayedEvent") { - InvokeEvent(_onAppOpenAdDisplayedEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onAppOpenAdDisplayedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnAppOpenAdFailedToDisplayEvent") { var errorInfo = new MaxSdkBase.ErrorInfo(eventProps); - InvokeEvent(_onAppOpenAdFailedToDisplayEvent, adUnitIdentifier, errorInfo, adInfo, eventName); + InvokeEvent(_onAppOpenAdFailedToDisplayEvent, adUnitIdentifier, errorInfo, adInfo, eventName, keepInBackground); } else if (eventName == "OnAppOpenAdClickedEvent") { - InvokeEvent(_onAppOpenAdClickedEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onAppOpenAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnAppOpenAdRevenuePaidEvent") { - InvokeEvent(_onAppOpenAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onAppOpenAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedAdLoadedEvent") { - InvokeEvent(_onRewardedAdLoadedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onRewardedAdLoadedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onRewardedAdLoadedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onRewardedAdLoadedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedAdLoadFailedEvent") { var errorCode = MaxSdkUtils.GetIntFromDictionary(eventProps, "errorCode", -1); - InvokeEvent(_onRewardedAdLoadFailedEvent, adUnitIdentifier, errorCode, eventName); + InvokeEvent(_onRewardedAdLoadFailedEvent, adUnitIdentifier, errorCode, eventName, keepInBackground); var errorInfo = new MaxSdkBase.ErrorInfo(eventProps); - InvokeEvent(_onRewardedAdLoadFailedEventV2, adUnitIdentifier, errorInfo, eventName); + InvokeEvent(_onRewardedAdLoadFailedEventV2, adUnitIdentifier, errorInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedAdDisplayedEvent") { - InvokeEvent(_onRewardedAdDisplayedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onRewardedAdDisplayedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onRewardedAdDisplayedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onRewardedAdDisplayedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedAdHiddenEvent") { - InvokeEvent(_onRewardedAdHiddenEvent, adUnitIdentifier, eventName); - InvokeEvent(_onRewardedAdHiddenEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onRewardedAdHiddenEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onRewardedAdHiddenEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedAdClickedEvent") { - InvokeEvent(_onRewardedAdClickedEvent, adUnitIdentifier, eventName); - InvokeEvent(_onRewardedAdClickedEventV2, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onRewardedAdClickedEvent, adUnitIdentifier, eventName, keepInBackground); + InvokeEvent(_onRewardedAdClickedEventV2, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedAdRevenuePaidEvent") { - InvokeEvent(_onRewardedAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onRewardedAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedAdReviewCreativeIdGeneratedEvent") { var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", ""); - InvokeEvent(_onRewardedAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName); + InvokeEvent(_onRewardedAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedAdFailedToDisplayEvent") { var errorCode = MaxSdkUtils.GetIntFromDictionary(eventProps, "errorCode", -1); - InvokeEvent(_onRewardedAdFailedToDisplayEvent, adUnitIdentifier, errorCode, eventName); + InvokeEvent(_onRewardedAdFailedToDisplayEvent, adUnitIdentifier, errorCode, eventName, keepInBackground); var errorInfo = new MaxSdkBase.ErrorInfo(eventProps); - InvokeEvent(_onRewardedAdFailedToDisplayEventV2, adUnitIdentifier, errorInfo, adInfo, eventName); + InvokeEvent(_onRewardedAdFailedToDisplayEventV2, adUnitIdentifier, errorInfo, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedAdReceivedRewardEvent") { @@ -1464,45 +1468,45 @@ public void ForwardEvent(string eventPropsStr) Amount = MaxSdkUtils.GetIntFromDictionary(eventProps, "rewardAmount", 0) }; - InvokeEvent(_onRewardedAdReceivedRewardEvent, adUnitIdentifier, reward, eventName); - InvokeEvent(_onRewardedAdReceivedRewardEventV2, adUnitIdentifier, reward, adInfo, eventName); + InvokeEvent(_onRewardedAdReceivedRewardEvent, adUnitIdentifier, reward, eventName, keepInBackground); + InvokeEvent(_onRewardedAdReceivedRewardEventV2, adUnitIdentifier, reward, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedInterstitialAdLoadedEvent") { - InvokeEvent(_onRewardedInterstitialAdLoadedEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onRewardedInterstitialAdLoadedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedInterstitialAdLoadFailedEvent") { var errorInfo = new MaxSdkBase.ErrorInfo(eventProps); - InvokeEvent(_onRewardedInterstitialAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName); + InvokeEvent(_onRewardedInterstitialAdLoadFailedEvent, adUnitIdentifier, errorInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedInterstitialAdDisplayedEvent") { - InvokeEvent(_onRewardedInterstitialAdDisplayedEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onRewardedInterstitialAdDisplayedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedInterstitialAdHiddenEvent") { - InvokeEvent(_onRewardedInterstitialAdHiddenEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onRewardedInterstitialAdHiddenEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedInterstitialAdClickedEvent") { - InvokeEvent(_onRewardedInterstitialAdClickedEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onRewardedInterstitialAdClickedEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedInterstitialAdRevenuePaidEvent") { - InvokeEvent(_onRewardedInterstitialAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName); + InvokeEvent(_onRewardedInterstitialAdRevenuePaidEvent, adUnitIdentifier, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedInterstitialAdReviewCreativeIdGeneratedEvent") { var adReviewCreativeId = MaxSdkUtils.GetStringFromDictionary(eventProps, "adReviewCreativeId", ""); - InvokeEvent(_onRewardedInterstitialAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName); + InvokeEvent(_onRewardedInterstitialAdReviewCreativeIdGeneratedEvent, adUnitIdentifier, adReviewCreativeId, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedInterstitialAdFailedToDisplayEvent") { var errorInfo = new MaxSdkBase.ErrorInfo(eventProps); - InvokeEvent(_onRewardedInterstitialAdFailedToDisplayEvent, adUnitIdentifier, errorInfo, adInfo, eventName); + InvokeEvent(_onRewardedInterstitialAdFailedToDisplayEvent, adUnitIdentifier, errorInfo, adInfo, eventName, keepInBackground); } else if (eventName == "OnRewardedInterstitialAdReceivedRewardEvent") { @@ -1512,7 +1516,7 @@ public void ForwardEvent(string eventPropsStr) Amount = MaxSdkUtils.GetIntFromDictionary(eventProps, "rewardAmount", 0) }; - InvokeEvent(_onRewardedInterstitialAdReceivedRewardEvent, adUnitIdentifier, reward, adInfo, eventName); + InvokeEvent(_onRewardedInterstitialAdReceivedRewardEvent, adUnitIdentifier, reward, adInfo, eventName, keepInBackground); } else { @@ -1530,67 +1534,95 @@ public static void EmitSdkInitializedEvent() } #endif - private static void InvokeEvent(Action evt, string eventName) + private static void InvokeEvent(Action evt, string eventName, bool keepInBackground) { if (!CanInvokeEvent(evt)) return; MaxSdkLogger.UserDebug("Invoking event: " + eventName); - try + if (keepInBackground) { - evt(); + try + { + evt(); + } + catch (Exception exception) + { + MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception); + Debug.LogException(exception); + } } - catch (Exception exception) + else { - MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception); - Debug.LogException(exception); + MaxEventExecutor.ExecuteOnMainThread(evt, eventName); } } - private static void InvokeEvent(Action evt, T param, string eventName) + private static void InvokeEvent(Action evt, T param, string eventName, bool keepInBackground) { if (!CanInvokeEvent(evt)) return; MaxSdkLogger.UserDebug("Invoking event: " + eventName + ". Param: " + param); - try + if (keepInBackground) { - evt(param); + try + { + evt(param); + } + catch (Exception exception) + { + MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception); + Debug.LogException(exception); + } } - catch (Exception exception) + else { - MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception); - Debug.LogException(exception); + MaxEventExecutor.ExecuteOnMainThread(() => evt(param), eventName); } } - private static void InvokeEvent(Action evt, T1 param1, T2 param2, string eventName) + private static void InvokeEvent(Action evt, T1 param1, T2 param2, string eventName, bool keepInBackground) { if (!CanInvokeEvent(evt)) return; MaxSdkLogger.UserDebug("Invoking event: " + eventName + ". Params: " + param1 + ", " + param2); - try + if (keepInBackground) { - evt(param1, param2); + try + { + evt(param1, param2); + } + catch (Exception exception) + { + MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception); + Debug.LogException(exception); + } } - catch (Exception exception) + else { - MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception); - Debug.LogException(exception); + MaxEventExecutor.ExecuteOnMainThread(() => evt(param1, param2), eventName); } } - private static void InvokeEvent(Action evt, T1 param1, T2 param2, T3 param3, string eventName) + private static void InvokeEvent(Action evt, T1 param1, T2 param2, T3 param3, string eventName, bool keepInBackground) { if (!CanInvokeEvent(evt)) return; MaxSdkLogger.UserDebug("Invoking event: " + eventName + ". Params: " + param1 + ", " + param2 + ", " + param3); - try + if (keepInBackground) { - evt(param1, param2, param3); + try + { + evt(param1, param2, param3); + } + catch (Exception exception) + { + MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception); + Debug.LogException(exception); + } } - catch (Exception exception) + else { - MaxSdkLogger.UserError("Caught exception in publisher event: " + eventName + ", exception: " + exception); - Debug.LogException(exception); + MaxEventExecutor.ExecuteOnMainThread(() => evt(param1, param2, param3), eventName); } }