diff --git a/DemoApp/Assets/MaxSdk/AppLovin.meta b/DemoApp/Assets/MaxSdk/AppLovin.meta index 5b88f90..d066da7 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin.meta +++ b/DemoApp/Assets/MaxSdk/AppLovin.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 63e7c274644704656ab218543c2e2194 +guid: 92870011b820e4160a605268ecae0b0f 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 dceeac1..f429395 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin/Editor.meta +++ b/DemoApp/Assets/MaxSdk/AppLovin/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d6bb097da5f984ddfa714adf1c6dd989 +guid: b77a96890319d4d81a9d526f18044d8d 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 b1a4f70..d0ac6bd 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin/Editor/Dependencies.xml +++ b/DemoApp/Assets/MaxSdk/AppLovin/Editor/Dependencies.xml @@ -1,9 +1,9 @@ - + - + diff --git a/DemoApp/Assets/MaxSdk/AppLovin/Plugins.meta b/DemoApp/Assets/MaxSdk/AppLovin/Plugins.meta index f9370da..011ca25 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin/Plugins.meta +++ b/DemoApp/Assets/MaxSdk/AppLovin/Plugins.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f9f0de29c5cbf47b39ea29fb2cd6d4f4 +guid: d238c3b55498e4e6cbfab0ddcda38fff 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 773d2a5..f7f5771 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin/Plugins/Android.meta +++ b/DemoApp/Assets/MaxSdk/AppLovin/Plugins/Android.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d0fc28505b3d34c8da20b6dbf2f2c070 +guid: 8e0d19c08fb214dcabee2d5f2a7e7ab5 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 0636033..0cbc738 100644 Binary files a/DemoApp/Assets/MaxSdk/AppLovin/Plugins/Android/applovin-max-unity-plugin.aar and b/DemoApp/Assets/MaxSdk/AppLovin/Plugins/Android/applovin-max-unity-plugin.aar differ diff --git a/DemoApp/Assets/MaxSdk/AppLovin/Plugins/iOS.meta b/DemoApp/Assets/MaxSdk/AppLovin/Plugins/iOS.meta index f40fe52..5054a59 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin/Plugins/iOS.meta +++ b/DemoApp/Assets/MaxSdk/AppLovin/Plugins/iOS.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3a5a31acb8d3c45e1910fa13df662523 +guid: 1dbd89cce9fd54bf7834a2d11533e460 labels: - al_max - al_max_export_path-MaxSdk/AppLovin/Plugins/iOS diff --git a/DemoApp/Assets/MaxSdk/AppLovin/Plugins/iOS/MAUnityAdManager.m b/DemoApp/Assets/MaxSdk/AppLovin/Plugins/iOS/MAUnityAdManager.m index fa3cdb3..fc0df37 100644 --- a/DemoApp/Assets/MaxSdk/AppLovin/Plugins/iOS/MAUnityAdManager.m +++ b/DemoApp/Assets/MaxSdk/AppLovin/Plugins/iOS/MAUnityAdManager.m @@ -5,7 +5,7 @@ #import "MAUnityAdManager.h" -#define VERSION @"6.2.1" +#define VERSION @"6.3.0" #define KEY_WINDOW [UIApplication sharedApplication].keyWindow #define DEVICE_SPECIFIC_ADVIEW_AD_FORMAT ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) ? MAAdFormat.leader : MAAdFormat.banner @@ -566,6 +566,7 @@ - (NSString *)adInfoForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier @"revenue" : [@(ad.revenue) stringValue], @"revenuePrecision" : ad.revenuePrecision, @"waterfallInfo" : [self createAdWaterfallInfo: ad.waterfall], + @"latencyMillis" : [self requestLatencyMillisFromRequestLatency: ad.requestLatency], @"dspName" : ad.DSPName ?: @""}; } @@ -584,11 +585,9 @@ - (NSString *)adInfoForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier { [networkResponsesArray addObject: [self createNetworkResponseInfo: response]]; } - waterfallInfoDict[@"networkResponses"] = networkResponsesArray; - // Convert latency from seconds to milliseconds to match Android. - long latencyMillis = waterfallInfo.latency * 1000; - waterfallInfoDict[@"latencyMillis"] = @(latencyMillis).stringValue; + waterfallInfoDict[@"networkResponses"] = networkResponsesArray; + waterfallInfoDict[@"latencyMillis"] = [self requestLatencyMillisFromRequestLatency: waterfallInfo.latency]; return waterfallInfoDict; } @@ -621,13 +620,12 @@ - (NSString *)adInfoForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier errorObject[@"errorMessage"] = error.message; errorObject[@"adLoadFailure"] = error.adLoadFailureInfo; errorObject[@"errorCode"] = @(error.code).stringValue; + errorObject[@"latencyMillis"] = [self requestLatencyMillisFromRequestLatency: error.requestLatency]; networkResponseDict[@"error"] = errorObject; } - // Convert latency from seconds to milliseconds to match Android. - long latencySeconds = response.latency * 1000; - networkResponseDict[@"latencyMillis"] = @(latencySeconds).stringValue; + networkResponseDict[@"latencyMillis"] = [self requestLatencyMillisFromRequestLatency: response.latency]; return networkResponseDict; } @@ -758,7 +756,8 @@ - (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adUnitIdentifier withErro @"errorCode" : [@(error.code) stringValue], @"errorMessage" : error.message, @"waterfallInfo" : [self createAdWaterfallInfo: error.waterfall], - @"adLoadFailureInfo" : error.adLoadFailureInfo ?: @""}]; + @"adLoadFailureInfo" : error.adLoadFailureInfo ?: @"", + @"latencyMillis" : [self requestLatencyMillisFromRequestLatency: error.requestLatency]}]; } - (void)didClickAd:(MAAd *)ad @@ -861,6 +860,7 @@ - (void)didFailToDisplayAd:(MAAd *)ad withError:(MAError *)error args[@"mediatedNetworkErrorCode"] = [@(error.mediatedNetworkErrorCode) stringValue]; args[@"mediatedNetworkErrorMessage"] = error.mediatedNetworkErrorMessage; args[@"waterfallInfo"] = [self createAdWaterfallInfo: error.waterfall]; + args[@"latencyMillis"] = [self requestLatencyMillisFromRequestLatency: error.requestLatency]; [MAUnityAdManager forwardUnityEventWithArgs: args]; } @@ -1952,6 +1952,13 @@ - (MAAdFormat *)adViewAdFormatForAdUnitIdentifier:(NSString *)adUnitIdentifier } } +- (NSString *)requestLatencyMillisFromRequestLatency:(NSTimeInterval)requestLatency +{ + // Convert latency from seconds to milliseconds to match Android. + long requestLatencyMillis = requestLatency * 1000; + return @(requestLatencyMillis).stringValue; +} + #pragma mark - User Service - (void)didDismissUserConsentDialog diff --git a/DemoApp/Assets/MaxSdk/Prefabs.meta b/DemoApp/Assets/MaxSdk/Prefabs.meta index 51caa1e..256c0aa 100644 --- a/DemoApp/Assets/MaxSdk/Prefabs.meta +++ b/DemoApp/Assets/MaxSdk/Prefabs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: c4529689f234644c5af95a79da5e2e20 +guid: fdcef99a3215540f78fc3a85b6f2b0e4 labels: - al_max - al_max_export_path-MaxSdk/Prefabs diff --git a/DemoApp/Assets/MaxSdk/Resources.meta b/DemoApp/Assets/MaxSdk/Resources.meta index 6162054..d85582f 100644 --- a/DemoApp/Assets/MaxSdk/Resources.meta +++ b/DemoApp/Assets/MaxSdk/Resources.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: eda5c940673714b8f9977453be13ee8a +guid: 9bfd6e05359ab4c6f9543aef0360e611 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 43c3b17..518c4d8 100644 --- a/DemoApp/Assets/MaxSdk/Resources/Images.meta +++ b/DemoApp/Assets/MaxSdk/Resources/Images.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a08e3dd33f0d84aba906a4816c4e4999 +guid: 4c976a1a7664a43729f74dec155f70f7 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 828bcfa..8fb661a 100644 --- a/DemoApp/Assets/MaxSdk/Scripts.meta +++ b/DemoApp/Assets/MaxSdk/Scripts.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 48d0aadbbb01e4d9e9c6e8c7b1302dec +guid: 505f3fd385b0b4ab68835150f4d829ef labels: - al_max - al_max_export_path-MaxSdk/Scripts diff --git a/DemoApp/Assets/MaxSdk/Scripts/MaxSdk.cs b/DemoApp/Assets/MaxSdk/Scripts/MaxSdk.cs index 850e31b..dc4ec3f 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.2.1"; + private const string _version = "6.3.0"; /// /// Returns the current plugin version. diff --git a/DemoApp/Assets/MaxSdk/Scripts/MaxSdkBase.cs b/DemoApp/Assets/MaxSdk/Scripts/MaxSdkBase.cs index dfe1228..8bfc442 100644 --- a/DemoApp/Assets/MaxSdk/Scripts/MaxSdkBase.cs +++ b/DemoApp/Assets/MaxSdk/Scripts/MaxSdkBase.cs @@ -168,7 +168,6 @@ public static SdkConfiguration Create(IDictionary eventProps) sdkConfiguration.ConsentFlowUserGeography = ConsentFlowUserGeography.Unknown; } - #pragma warning disable 0618 var consentDialogStateStr = MaxSdkUtils.GetStringFromDictionary(eventProps, "consentDialogState", ""); if ("1".Equals(consentDialogStateStr)) @@ -325,6 +324,7 @@ public class AdInfo public double Revenue { get; private set; } public string RevenuePrecision { get; private set; } public WaterfallInfo WaterfallInfo { get; private set; } + public long LatencyMillis { get; private set; } public string DspName { get; private set; } public AdInfo(IDictionary adInfoDictionary) @@ -338,6 +338,7 @@ public AdInfo(IDictionary adInfoDictionary) Revenue = MaxSdkUtils.GetDoubleFromDictionary(adInfoDictionary, "revenue", -1); RevenuePrecision = MaxSdkUtils.GetStringFromDictionary(adInfoDictionary, "revenuePrecision"); WaterfallInfo = new WaterfallInfo(MaxSdkUtils.GetDictionaryFromDictionary(adInfoDictionary, "waterfallInfo", new Dictionary())); + LatencyMillis = MaxSdkUtils.GetLongFromDictionary(adInfoDictionary, "latencyMillis"); DspName = MaxSdkUtils.GetStringFromDictionary(adInfoDictionary, "dspName"); } @@ -351,6 +352,7 @@ public override string ToString() ", placement: " + Placement + ", revenue: " + Revenue + ", revenuePrecision: " + RevenuePrecision + + ", latency: " + LatencyMillis + ", dspName: " + DspName + "]"; } } @@ -469,6 +471,7 @@ public class ErrorInfo public string MediatedNetworkErrorMessage { get; private set; } public string AdLoadFailureInfo { get; private set; } public WaterfallInfo WaterfallInfo { get; private set; } + public long LatencyMillis { get; private set; } public ErrorInfo(IDictionary errorInfoDictionary) { @@ -478,6 +481,7 @@ public ErrorInfo(IDictionary errorInfoDictionary) MediatedNetworkErrorMessage = MaxSdkUtils.GetStringFromDictionary(errorInfoDictionary, "mediatedNetworkErrorMessage", ""); AdLoadFailureInfo = MaxSdkUtils.GetStringFromDictionary(errorInfoDictionary, "adLoadFailureInfo", ""); WaterfallInfo = new WaterfallInfo(MaxSdkUtils.GetDictionaryFromDictionary(errorInfoDictionary, "waterfallInfo", new Dictionary())); + LatencyMillis = MaxSdkUtils.GetLongFromDictionary(errorInfoDictionary, "latencyMillis"); } public override string ToString() @@ -491,6 +495,7 @@ public override string ToString() stringbuilder.Append(", mediatedNetworkMessage: ").Append(MediatedNetworkErrorMessage); } + stringbuilder.Append(", latency: ").Append(LatencyMillis); return stringbuilder.Append(", adLoadFailureInfo: ").Append(AdLoadFailureInfo).Append("]").ToString(); } }