更新max
This commit is contained in:
Binary file not shown.
@@ -14,8 +14,8 @@ typedef void (*ALUnityBackgroundCallback)(const char* args);
|
||||
|
||||
- (void)initializeSdkWithConfiguration:(ALSdkInitializationConfiguration *)initConfig andCompletionHandler:(ALSdkInitializationCompletionHandler)completionHandler;
|
||||
|
||||
- (void)createBannerWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier atPosition:(nullable NSString *)bannerPosition;
|
||||
- (void)createBannerWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier x:(CGFloat)xOffset y:(CGFloat)yOffset;
|
||||
- (void)createBannerWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier atPosition:(nullable NSString *)bannerPosition isAdaptive:(BOOL)isAdaptive;
|
||||
- (void)createBannerWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier x:(CGFloat)xOffset y:(CGFloat)yOffset isAdaptive:(BOOL)isAdaptive;
|
||||
- (void)loadBannerWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier;
|
||||
- (void)setBannerBackgroundColorForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier hexColorCode:(nullable NSString *)hexColorCode;
|
||||
- (void)setBannerPlacement:(nullable NSString *)placement forAdUnitIdentifier:(nullable NSString *)adUnitIdentifier;
|
||||
@@ -67,18 +67,9 @@ typedef void (*ALUnityBackgroundCallback)(const char* args);
|
||||
- (void)setRewardedAdExtraParameterForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier key:(nullable NSString *)key value:(nullable NSString *)value;
|
||||
- (void)setRewardedAdLocalExtraParameterForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier key:(nullable NSString *)key value:(nullable id)value;
|
||||
|
||||
- (void)loadRewardedInterstitialAdWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier;
|
||||
- (BOOL)isRewardedInterstitialAdReadyWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier;
|
||||
- (void)showRewardedInterstitialAdWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier placement:(nullable NSString *)placement customData:(nullable NSString *)customData;
|
||||
- (void)setRewardedInterstitialAdExtraParameterForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier key:(nullable NSString *)key value:(nullable NSString *)value;
|
||||
- (void)setRewardedInterstitialAdLocalExtraParameterForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier key:(nullable NSString *)key value:(nullable id)value;
|
||||
|
||||
// Event Tracking
|
||||
- (void)trackEvent:(nullable NSString *)event parameters:(nullable NSString *)parameters;
|
||||
|
||||
// Ad Info
|
||||
- (NSString *)adInfoForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier;
|
||||
|
||||
// Ad Value
|
||||
- (NSString *)adValueForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier withKey:(nullable NSString *)key;
|
||||
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern bool max_unity_should_disable_all_logs(void); // Forward declaration
|
||||
|
||||
// UnityAppController.mm
|
||||
UIViewController* UnityGetGLViewController(void);
|
||||
UIWindow* UnityGetMainWindow(void);
|
||||
@@ -40,7 +42,7 @@ extern "C" {
|
||||
}
|
||||
#endif
|
||||
|
||||
@interface MAUnityAdManager()<MAAdDelegate, MAAdViewAdDelegate, MARewardedAdDelegate, MAAdRevenueDelegate, MAAdReviewDelegate>
|
||||
@interface MAUnityAdManager()<MAAdDelegate, MAAdViewAdDelegate, MARewardedAdDelegate, MAAdRevenueDelegate, MAAdReviewDelegate, MAAdExpirationDelegate>
|
||||
|
||||
// Parent Fields
|
||||
@property (nonatomic, weak) ALSdk *sdk;
|
||||
@@ -49,7 +51,6 @@ extern "C" {
|
||||
@property (nonatomic, strong) NSMutableDictionary<NSString *, MAInterstitialAd *> *interstitials;
|
||||
@property (nonatomic, strong) NSMutableDictionary<NSString *, MAAppOpenAd *> *appOpenAds;
|
||||
@property (nonatomic, strong) NSMutableDictionary<NSString *, MARewardedAd *> *rewardedAds;
|
||||
@property (nonatomic, strong) NSMutableDictionary<NSString *, MARewardedInterstitialAd *> *rewardedInterstitialAds;
|
||||
|
||||
// AdView Fields
|
||||
@property (nonatomic, strong) NSMutableDictionary<NSString *, MAAdView *> *adViews;
|
||||
@@ -65,6 +66,7 @@ extern "C" {
|
||||
@property (nonatomic, strong) NSMutableArray<NSString *> *adUnitIdentifiersToShowAfterCreate;
|
||||
@property (nonatomic, strong) NSMutableSet<NSString *> *disabledAdaptiveBannerAdUnitIdentifiers;
|
||||
@property (nonatomic, strong) NSMutableSet<NSString *> *disabledAutoRefreshAdViewAdUnitIdentifiers;
|
||||
@property (nonatomic, strong) NSMutableSet<NSString *> *ignoreSafeAreaLandscapeAdUnitIdentifiers;
|
||||
@property (nonatomic, strong) UIView *safeAreaBackground;
|
||||
@property (nonatomic, strong, nullable) UIColor *publisherBannerBackgroundColor;
|
||||
|
||||
@@ -110,7 +112,6 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
self.interstitials = [NSMutableDictionary dictionaryWithCapacity: 2];
|
||||
self.appOpenAds = [NSMutableDictionary dictionaryWithCapacity: 2];
|
||||
self.rewardedAds = [NSMutableDictionary dictionaryWithCapacity: 2];
|
||||
self.rewardedInterstitialAds = [NSMutableDictionary dictionaryWithCapacity: 2];
|
||||
self.adViews = [NSMutableDictionary dictionaryWithCapacity: 2];
|
||||
self.adViewAdFormats = [NSMutableDictionary dictionaryWithCapacity: 2];
|
||||
self.adViewPositions = [NSMutableDictionary dictionaryWithCapacity: 2];
|
||||
@@ -124,6 +125,7 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
self.adUnitIdentifiersToShowAfterCreate = [NSMutableArray arrayWithCapacity: 2];
|
||||
self.disabledAdaptiveBannerAdUnitIdentifiers = [NSMutableSet setWithCapacity: 2];
|
||||
self.disabledAutoRefreshAdViewAdUnitIdentifiers = [NSMutableSet setWithCapacity: 2];
|
||||
self.ignoreSafeAreaLandscapeAdUnitIdentifiers = [NSMutableSet setWithCapacity: 2];
|
||||
self.adInfoDict = [NSMutableDictionary dictionary];
|
||||
self.adInfoDictLock = [[NSObject alloc] init];
|
||||
|
||||
@@ -223,14 +225,14 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
#pragma mark - Banners
|
||||
|
||||
- (void)createBannerWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier atPosition:(nullable NSString *)bannerPosition
|
||||
- (void)createBannerWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier atPosition:(nullable NSString *)bannerPosition isAdaptive:(BOOL)isAdaptive
|
||||
{
|
||||
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: [self adViewAdFormatForAdUnitIdentifier: adUnitIdentifier] atPosition: bannerPosition withOffset: CGPointZero];
|
||||
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: [self adViewAdFormatForAdUnitIdentifier: adUnitIdentifier] atPosition: bannerPosition withOffset: CGPointZero isAdaptive: isAdaptive];
|
||||
}
|
||||
|
||||
- (void)createBannerWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier x:(CGFloat)xOffset y:(CGFloat)yOffset
|
||||
- (void)createBannerWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier x:(CGFloat)xOffset y:(CGFloat)yOffset isAdaptive:(BOOL)isAdaptive
|
||||
{
|
||||
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: [self adViewAdFormatForAdUnitIdentifier: adUnitIdentifier] atPosition: DEFAULT_AD_VIEW_POSITION withOffset: CGPointMake(xOffset, yOffset)];
|
||||
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: [self adViewAdFormatForAdUnitIdentifier: adUnitIdentifier] atPosition: DEFAULT_AD_VIEW_POSITION withOffset: CGPointMake(xOffset, yOffset) isAdaptive: isAdaptive];
|
||||
}
|
||||
|
||||
- (void)loadBannerWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier
|
||||
@@ -323,12 +325,12 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
- (void)createMRecWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier atPosition:(nullable NSString *)mrecPosition
|
||||
{
|
||||
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec atPosition: mrecPosition withOffset: CGPointZero];
|
||||
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec atPosition: mrecPosition withOffset: CGPointZero isAdaptive: NO];
|
||||
}
|
||||
|
||||
- (void)createMRecWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier x:(CGFloat)xOffset y:(CGFloat)yOffset
|
||||
{
|
||||
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec atPosition: DEFAULT_AD_VIEW_POSITION withOffset: CGPointMake(xOffset, yOffset)];
|
||||
[self createAdViewWithAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec atPosition: DEFAULT_AD_VIEW_POSITION withOffset: CGPointMake(xOffset, yOffset) isAdaptive: NO];
|
||||
}
|
||||
|
||||
- (void)loadMRecWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier
|
||||
@@ -516,44 +518,6 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
[rewardedAd setLocalExtraParameterForKey: key value: value];
|
||||
}
|
||||
|
||||
#pragma mark - Rewarded Interstitials
|
||||
|
||||
- (void)loadRewardedInterstitialAdWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier
|
||||
{
|
||||
MARewardedInterstitialAd *rewardedInterstitialAd = [self retrieveRewardedInterstitialAdForAdUnitIdentifier: adUnitIdentifier];
|
||||
[rewardedInterstitialAd loadAd];
|
||||
}
|
||||
|
||||
- (BOOL)isRewardedInterstitialAdReadyWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier
|
||||
{
|
||||
MARewardedInterstitialAd *rewardedInterstitialAd = [self retrieveRewardedInterstitialAdForAdUnitIdentifier: adUnitIdentifier];
|
||||
return [rewardedInterstitialAd isReady];
|
||||
}
|
||||
|
||||
- (void)showRewardedInterstitialAdWithAdUnitIdentifier:(nullable NSString *)adUnitIdentifier placement:(nullable NSString *)placement customData:(nullable NSString *)customData
|
||||
{
|
||||
MARewardedInterstitialAd *rewardedInterstitialAd = [self retrieveRewardedInterstitialAdForAdUnitIdentifier: adUnitIdentifier];
|
||||
[rewardedInterstitialAd showAdForPlacement: placement customData: customData];
|
||||
}
|
||||
|
||||
- (void)setRewardedInterstitialAdExtraParameterForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier key:(nullable NSString *)key value:(nullable NSString *)value
|
||||
{
|
||||
MARewardedInterstitialAd *rewardedInterstitialAd = [self retrieveRewardedInterstitialAdForAdUnitIdentifier: adUnitIdentifier];
|
||||
[rewardedInterstitialAd setExtraParameterForKey: key value: value];
|
||||
}
|
||||
|
||||
- (void)setRewardedInterstitialAdLocalExtraParameterForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier key:(nullable NSString *)key value:(nullable id)value
|
||||
{
|
||||
if ( !key )
|
||||
{
|
||||
[self log: @"Failed to set local extra parameter: No key specified"];
|
||||
return;
|
||||
}
|
||||
|
||||
MARewardedInterstitialAd *rewardedInterstitialAd = [self retrieveRewardedInterstitialAdForAdUnitIdentifier: adUnitIdentifier];
|
||||
[rewardedInterstitialAd setLocalExtraParameterForKey: key value: value];
|
||||
}
|
||||
|
||||
#pragma mark - Event Tracking
|
||||
|
||||
- (void)trackEvent:(nullable NSString *)event parameters:(nullable NSString *)parameters
|
||||
@@ -564,16 +528,6 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
#pragma mark - Ad Info
|
||||
|
||||
- (NSString *)adInfoForAdUnitIdentifier:(nullable NSString *)adUnitIdentifier
|
||||
{
|
||||
if ( ![adUnitIdentifier al_isValidString] ) return @"";
|
||||
|
||||
MAAd *ad = [self adWithAdUnitIdentifier: adUnitIdentifier];
|
||||
if ( !ad ) return @"";
|
||||
|
||||
return [MAUnityAdManager serializeParameters: [self adInfoForAd: ad]];
|
||||
}
|
||||
|
||||
- (NSDictionary<NSString *, id> *)adInfoForAd:(MAAd *)ad
|
||||
{
|
||||
return @{@"adUnitId" : ad.adUnitIdentifier,
|
||||
@@ -625,6 +579,7 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
networkInfoObject[@"adapterClassName"] = response.mediatedNetwork.adapterClassName;
|
||||
networkInfoObject[@"adapterVersion"] = response.mediatedNetwork.adapterVersion;
|
||||
networkInfoObject[@"sdkVersion"] = response.mediatedNetwork.sdkVersion;
|
||||
networkInfoObject[@"initializationStatus"] = @(response.mediatedNetwork.initializationStatus);
|
||||
|
||||
networkResponseDict[@"mediatedNetwork"] = networkInfoObject;
|
||||
}
|
||||
@@ -703,10 +658,6 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
{
|
||||
name = @"OnRewardedAdLoadedEvent";
|
||||
}
|
||||
else if ( MAAdFormat.rewardedInterstitial == adFormat )
|
||||
{
|
||||
name = @"OnRewardedInterstitialAdLoadedEvent";
|
||||
}
|
||||
else
|
||||
{
|
||||
[self logInvalidAdFormat: adFormat];
|
||||
@@ -760,10 +711,6 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
{
|
||||
name = @"OnRewardedAdLoadFailedEvent";
|
||||
}
|
||||
else if ( self.rewardedInterstitialAds[adUnitIdentifier] )
|
||||
{
|
||||
name = @"OnRewardedInterstitialAdLoadFailedEvent";
|
||||
}
|
||||
else
|
||||
{
|
||||
[self log: @"invalid adUnitId from %@", [NSThread callStackSymbols]];
|
||||
@@ -811,10 +758,6 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
{
|
||||
name = @"OnRewardedAdClickedEvent";
|
||||
}
|
||||
else if ( MAAdFormat.rewardedInterstitial == adFormat )
|
||||
{
|
||||
name = @"OnRewardedInterstitialAdClickedEvent";
|
||||
}
|
||||
else
|
||||
{
|
||||
[self logInvalidAdFormat: adFormat];
|
||||
@@ -848,14 +791,10 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
{
|
||||
name = @"OnAppOpenAdDisplayedEvent";
|
||||
}
|
||||
else if ( MAAdFormat.rewarded == adFormat )
|
||||
else // rewarded
|
||||
{
|
||||
name = @"OnRewardedAdDisplayedEvent";
|
||||
}
|
||||
else // rewarded inters
|
||||
{
|
||||
name = @"OnRewardedInterstitialAdDisplayedEvent";
|
||||
}
|
||||
|
||||
NSDictionary<NSString *, id> *args = [self defaultAdEventParametersForName: name withAd: ad];
|
||||
[self forwardUnityEventWithArgs: args];
|
||||
@@ -879,14 +818,10 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
{
|
||||
name = @"OnAppOpenAdFailedToDisplayEvent";
|
||||
}
|
||||
else if ( MAAdFormat.rewarded == adFormat )
|
||||
else // rewarded
|
||||
{
|
||||
name = @"OnRewardedAdFailedToDisplayEvent";
|
||||
}
|
||||
else // rewarded inters
|
||||
{
|
||||
name = @"OnRewardedInterstitialAdFailedToDisplayEvent";
|
||||
}
|
||||
|
||||
NSMutableDictionary<NSString *, id> *args = [self defaultAdEventParametersForName: name withAd: ad];
|
||||
args[@"errorCode"] = [@(error.code) stringValue];
|
||||
@@ -930,14 +865,10 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
{
|
||||
name = @"OnAppOpenAdHiddenEvent";
|
||||
}
|
||||
else if ( MAAdFormat.rewarded == adFormat )
|
||||
else // rewarded
|
||||
{
|
||||
name = @"OnRewardedAdHiddenEvent";
|
||||
}
|
||||
else // rewarded inters
|
||||
{
|
||||
name = @"OnRewardedInterstitialAdHiddenEvent";
|
||||
}
|
||||
|
||||
NSDictionary<NSString *, id> *args = [self defaultAdEventParametersForName: name withAd: ad];
|
||||
[self forwardUnityEventWithArgs: args];
|
||||
@@ -1020,7 +951,7 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
|
||||
MAAdFormat *adFormat = ad.format;
|
||||
if ( adFormat != MAAdFormat.rewarded && adFormat != MAAdFormat.rewardedInterstitial )
|
||||
if ( adFormat != MAAdFormat.rewarded )
|
||||
{
|
||||
[self logInvalidAdFormat: adFormat];
|
||||
return;
|
||||
@@ -1029,10 +960,8 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
NSString *rewardLabel = reward ? reward.label : @"";
|
||||
NSInteger rewardAmountInt = reward ? reward.amount : 0;
|
||||
NSString *rewardAmount = [@(rewardAmountInt) stringValue];
|
||||
|
||||
NSString *name = (adFormat == MAAdFormat.rewarded) ? @"OnRewardedAdReceivedRewardEvent" : @"OnRewardedInterstitialAdReceivedRewardEvent";
|
||||
|
||||
|
||||
NSString *name = @"OnRewardedAdReceivedRewardEvent";
|
||||
|
||||
NSMutableDictionary<NSString *, id> *args = [self defaultAdEventParametersForName: name withAd: ad];
|
||||
args[@"rewardLabel"] = rewardLabel;
|
||||
args[@"rewardAmount"] = rewardAmount;
|
||||
@@ -1066,10 +995,6 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
{
|
||||
name = @"OnRewardedAdRevenuePaidEvent";
|
||||
}
|
||||
else if ( MAAdFormat.rewardedInterstitial == adFormat )
|
||||
{
|
||||
name = @"OnRewardedInterstitialAdRevenuePaidEvent";
|
||||
}
|
||||
else
|
||||
{
|
||||
[self logInvalidAdFormat: adFormat];
|
||||
@@ -1082,6 +1007,43 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
});
|
||||
}
|
||||
|
||||
- (void)didReloadExpiredAd:(MAAd *)expiredAd withNewAd:(MAAd *)newAd;
|
||||
{
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
|
||||
NSString *name;
|
||||
MAAdFormat *adFormat = newAd.format;
|
||||
if ( MAAdFormat.interstitial == adFormat )
|
||||
{
|
||||
name = @"OnExpiredInterstitialAdReloadedEvent";
|
||||
}
|
||||
else if ( MAAdFormat.appOpen == adFormat )
|
||||
{
|
||||
name = @"OnExpiredAppOpenAdReloadedEvent";
|
||||
}
|
||||
else if ( MAAdFormat.rewarded == adFormat )
|
||||
{
|
||||
name = @"OnExpiredRewardedAdReloadedEvent ";
|
||||
}
|
||||
else
|
||||
{
|
||||
[self logInvalidAdFormat: adFormat];
|
||||
return;
|
||||
}
|
||||
|
||||
@synchronized ( self.adInfoDictLock )
|
||||
{
|
||||
self.adInfoDict[newAd.adUnitIdentifier] = newAd;
|
||||
}
|
||||
|
||||
NSMutableDictionary<NSString *, NSObject *> *args = [NSMutableDictionary dictionary];
|
||||
args[@"expiredAdInfo"] = [self adInfoForAd: expiredAd];
|
||||
args[@"newAdInfo"] = [self adInfoForAd: newAd];
|
||||
args[@"name"] = name;
|
||||
[self forwardUnityEventWithArgs: args];
|
||||
});
|
||||
}
|
||||
|
||||
- (void)didGenerateCreativeIdentifier:(NSString *)creativeIdentifier forAd:(MAAd *)ad
|
||||
{
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
@@ -1104,10 +1066,6 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
{
|
||||
name = @"OnRewardedAdReviewCreativeIdGeneratedEvent";
|
||||
}
|
||||
else if ( MAAdFormat.rewardedInterstitial == adFormat )
|
||||
{
|
||||
name = @"OnRewardedInterstitialAdReviewCreativeIdGeneratedEvent";
|
||||
}
|
||||
else
|
||||
{
|
||||
[self logInvalidAdFormat: adFormat];
|
||||
@@ -1133,7 +1091,7 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
#pragma mark - Internal Methods
|
||||
|
||||
- (void)createAdViewWithAdUnitIdentifier:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat atPosition:(NSString *)adViewPosition withOffset:(CGPoint)offset
|
||||
- (void)createAdViewWithAdUnitIdentifier:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat atPosition:(NSString *)adViewPosition withOffset:(CGPoint)offset isAdaptive:(BOOL)isAdaptive
|
||||
{
|
||||
max_unity_dispatch_on_main_thread(^{
|
||||
[self log: @"Creating %@ with ad unit identifier \"%@\" and position: \"%@\"", adFormat, adUnitIdentifier, adViewPosition];
|
||||
@@ -1144,7 +1102,7 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
}
|
||||
|
||||
// Retrieve ad view from the map
|
||||
MAAdView *adView = [self retrieveAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat atPosition: adViewPosition withOffset: offset];
|
||||
MAAdView *adView = [self retrieveAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat atPosition: adViewPosition withOffset: offset isAdaptive: isAdaptive];
|
||||
adView.hidden = YES;
|
||||
self.safeAreaBackground.hidden = YES;
|
||||
|
||||
@@ -1154,16 +1112,6 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
NSDictionary<NSString *, NSString *> *extraParameters = self.adViewExtraParametersToSetAfterCreate[adUnitIdentifier];
|
||||
|
||||
// Enable adaptive banners by default for banners and leaders.
|
||||
if ( [adFormat isBannerOrLeaderAd] )
|
||||
{
|
||||
// Check if there is already a pending setting for adaptive banners. If not, enable them.
|
||||
if ( !extraParameters[@"adaptive_banner"] )
|
||||
{
|
||||
[adView setExtraParameterForKey: @"adaptive_banner" value: @"true"];
|
||||
}
|
||||
}
|
||||
|
||||
// Handle initial extra parameters if publisher sets it before creating ad view
|
||||
if ( extraParameters )
|
||||
{
|
||||
@@ -1430,6 +1378,8 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
}
|
||||
else if ( [@"adaptive_banner" isEqualToString: key] )
|
||||
{
|
||||
[self log: @"Setting adaptive banners via extra parameters is deprecated and will be removed in a future plugin version. Use the CreateBanner(adUnitIdentifier, AdViewConfiguration) API to properly configure adaptive banners."];
|
||||
|
||||
BOOL shouldUseAdaptiveBanner = [NSNumber al_numberWithString: value].boolValue;
|
||||
if ( shouldUseAdaptiveBanner )
|
||||
{
|
||||
@@ -1442,6 +1392,18 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
[self positionAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat];
|
||||
}
|
||||
else if ( [@"ignore_safe_area_landscape" isEqualToString: key] && [NSNumber al_numberWithString: value].boolValue )
|
||||
{
|
||||
[self.ignoreSafeAreaLandscapeAdUnitIdentifiers addObject: adUnitIdentifier];
|
||||
[self positionAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat];
|
||||
}
|
||||
}
|
||||
|
||||
if ( [adFormat isAdViewAd] && [@"clips_to_bounds" isEqualToString: key] )
|
||||
{
|
||||
BOOL clipsToBounds = [NSNumber al_numberWithString: value].boolValue;
|
||||
MAAdView *view = [self retrieveAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat];
|
||||
view.clipsToBounds = clipsToBounds;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1544,6 +1506,8 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
- (void)log:(NSString *)format, ...
|
||||
{
|
||||
if (max_unity_should_disable_all_logs()) return;
|
||||
|
||||
va_list valist;
|
||||
va_start(valist, format);
|
||||
NSString *message = [[NSString alloc] initWithFormat: format arguments: valist];
|
||||
@@ -1554,6 +1518,8 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
+ (void)log:(NSString *)format, ...
|
||||
{
|
||||
if (max_unity_should_disable_all_logs()) return;
|
||||
|
||||
va_list valist;
|
||||
va_start(valist, format);
|
||||
NSString *message = [[NSString alloc] initWithFormat: format arguments: valist];
|
||||
@@ -1567,10 +1533,11 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
MAInterstitialAd *result = self.interstitials[adUnitIdentifier];
|
||||
if ( !result )
|
||||
{
|
||||
result = [[MAInterstitialAd alloc] initWithAdUnitIdentifier: adUnitIdentifier sdk: self.sdk];
|
||||
result = [[MAInterstitialAd alloc] initWithAdUnitIdentifier: adUnitIdentifier];
|
||||
result.delegate = self;
|
||||
result.revenueDelegate = self;
|
||||
result.adReviewDelegate = self;
|
||||
result.expirationDelegate = self;
|
||||
|
||||
self.interstitials[adUnitIdentifier] = result;
|
||||
}
|
||||
@@ -1583,9 +1550,10 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
MAAppOpenAd *result = self.appOpenAds[adUnitIdentifier];
|
||||
if ( !result )
|
||||
{
|
||||
result = [[MAAppOpenAd alloc] initWithAdUnitIdentifier: adUnitIdentifier sdk: self.sdk];
|
||||
result = [[MAAppOpenAd alloc] initWithAdUnitIdentifier: adUnitIdentifier];
|
||||
result.delegate = self;
|
||||
result.revenueDelegate = self;
|
||||
result.expirationDelegate = self;
|
||||
|
||||
self.appOpenAds[adUnitIdentifier] = result;
|
||||
}
|
||||
@@ -1598,10 +1566,11 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
MARewardedAd *result = self.rewardedAds[adUnitIdentifier];
|
||||
if ( !result )
|
||||
{
|
||||
result = [MARewardedAd sharedWithAdUnitIdentifier: adUnitIdentifier sdk: self.sdk];
|
||||
result = [MARewardedAd sharedWithAdUnitIdentifier: adUnitIdentifier];
|
||||
result.delegate = self;
|
||||
result.revenueDelegate = self;
|
||||
result.adReviewDelegate = self;
|
||||
result.expirationDelegate = self;
|
||||
|
||||
self.rewardedAds[adUnitIdentifier] = result;
|
||||
}
|
||||
@@ -1609,34 +1578,35 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
return result;
|
||||
}
|
||||
|
||||
- (MARewardedInterstitialAd *)retrieveRewardedInterstitialAdForAdUnitIdentifier:(NSString *)adUnitIdentifier
|
||||
{
|
||||
MARewardedInterstitialAd *result = self.rewardedInterstitialAds[adUnitIdentifier];
|
||||
if ( !result )
|
||||
{
|
||||
result = [[MARewardedInterstitialAd alloc] initWithAdUnitIdentifier: adUnitIdentifier sdk: self.sdk];
|
||||
result.delegate = self;
|
||||
result.revenueDelegate = self;
|
||||
result.adReviewDelegate = self;
|
||||
|
||||
self.rewardedInterstitialAds[adUnitIdentifier] = result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
- (MAAdView *)retrieveAdViewForAdUnitIdentifier:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat
|
||||
{
|
||||
return [self retrieveAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat atPosition: nil withOffset: CGPointZero];
|
||||
return [self retrieveAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat atPosition: nil withOffset: CGPointZero isAdaptive: YES];
|
||||
}
|
||||
|
||||
- (MAAdView *)retrieveAdViewForAdUnitIdentifier:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat atPosition:(NSString *)adViewPosition withOffset:(CGPoint)offset
|
||||
- (MAAdView *)retrieveAdViewForAdUnitIdentifier:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat atPosition:(NSString *)adViewPosition withOffset:(CGPoint)offset isAdaptive:(BOOL)isAdaptive
|
||||
{
|
||||
MAAdView *result = self.adViews[adUnitIdentifier];
|
||||
if ( !result && adViewPosition )
|
||||
{
|
||||
result = [[MAAdView alloc] initWithAdUnitIdentifier: adUnitIdentifier adFormat: adFormat sdk: self.sdk];
|
||||
{
|
||||
MAAdViewConfiguration *config = [MAAdViewConfiguration configurationWithBuilderBlock:^(MAAdViewConfigurationBuilder *builder) {
|
||||
|
||||
// Set adaptive type only for banner ads. If adaptive is enabled, use ANCHORED; otherwise, fall back to NONE.
|
||||
if ( [adFormat isBannerOrLeaderAd] )
|
||||
{
|
||||
if ( isAdaptive )
|
||||
{
|
||||
builder.adaptiveType = MAAdViewAdaptiveTypeAnchored;
|
||||
}
|
||||
else
|
||||
{
|
||||
builder.adaptiveType = MAAdViewAdaptiveTypeNone;
|
||||
[self.disabledAdaptiveBannerAdUnitIdentifiers addObject:adUnitIdentifier];
|
||||
}
|
||||
}
|
||||
}];
|
||||
|
||||
// There is a Unity bug where if an empty UIView is on screen with user interaction enabled, and a user interacts with it, it just passes the events to random parts of the screen.
|
||||
result = [[MAAdView alloc] initWithAdUnitIdentifier:adUnitIdentifier adFormat:adFormat configuration:config];
|
||||
result.userInteractionEnabled = NO;
|
||||
result.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
result.delegate = self;
|
||||
@@ -1733,6 +1703,8 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
NSMutableArray<NSLayoutConstraint *> *constraints = [NSMutableArray arrayWithObject: [adView.heightAnchor constraintEqualToConstant: adViewSize.height]];
|
||||
|
||||
UILayoutGuide *layoutGuide = superview.safeAreaLayoutGuide;
|
||||
BOOL shouldIgnoreSafeArea = [self shouldIgnoreSafeAreaForAdUnitIdentifier: adUnitIdentifier];
|
||||
NSLayoutAnchor *topAnchor = shouldIgnoreSafeArea ? superview.topAnchor : layoutGuide.topAnchor;
|
||||
|
||||
if ( [adViewPosition isEqual: @"top_center"] || [adViewPosition isEqual: @"bottom_center"] )
|
||||
{
|
||||
@@ -1763,7 +1735,7 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
if ( [adViewPosition isEqual: @"top_center"] )
|
||||
{
|
||||
[constraints addObjectsFromArray: @[[adView.topAnchor constraintEqualToAnchor: layoutGuide.topAnchor],
|
||||
[constraints addObjectsFromArray: @[[adView.topAnchor constraintEqualToAnchor: topAnchor],
|
||||
[self.safeAreaBackground.topAnchor constraintEqualToAnchor: superview.topAnchor],
|
||||
[self.safeAreaBackground.bottomAnchor constraintEqualToAnchor: adView.topAnchor]]];
|
||||
}
|
||||
@@ -1783,7 +1755,7 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
if ( [adViewPosition isEqual: @"top_center"] )
|
||||
{
|
||||
[constraints addObjectsFromArray: @[[adView.topAnchor constraintEqualToAnchor: layoutGuide.topAnchor],
|
||||
[constraints addObjectsFromArray: @[[adView.topAnchor constraintEqualToAnchor: topAnchor],
|
||||
[self.safeAreaBackground.topAnchor constraintEqualToAnchor: superview.topAnchor],
|
||||
[self.safeAreaBackground.bottomAnchor constraintEqualToAnchor: adView.topAnchor]]];
|
||||
}
|
||||
@@ -1805,7 +1777,7 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
if ( [adViewPosition isEqual: @"top_center"] )
|
||||
{
|
||||
[constraints addObject: [adView.topAnchor constraintEqualToAnchor: layoutGuide.topAnchor]];
|
||||
[constraints addObject: [adView.topAnchor constraintEqualToAnchor: topAnchor]];
|
||||
}
|
||||
else // BottomCenter
|
||||
{
|
||||
@@ -1922,11 +1894,11 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
if ( [adViewPosition isEqual: @"top_left"] )
|
||||
{
|
||||
[constraints addObjectsFromArray: @[[adView.leftAnchor constraintEqualToAnchor: superview.leftAnchor constant: adViewOffset.x],
|
||||
[adView.topAnchor constraintEqualToAnchor: layoutGuide.topAnchor constant: adViewOffset.y]]];
|
||||
[adView.topAnchor constraintEqualToAnchor: topAnchor constant: adViewOffset.y]]];
|
||||
}
|
||||
else if ( [adViewPosition isEqual: @"top_right"] )
|
||||
{
|
||||
[constraints addObjectsFromArray: @[[adView.topAnchor constraintEqualToAnchor: layoutGuide.topAnchor],
|
||||
[constraints addObjectsFromArray: @[[adView.topAnchor constraintEqualToAnchor: topAnchor],
|
||||
[adView.rightAnchor constraintEqualToAnchor: superview.rightAnchor]]];
|
||||
}
|
||||
else if ( [adViewPosition isEqual: @"centered"] )
|
||||
@@ -2015,6 +1987,8 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
|
||||
- (NSString *)requestLatencyMillisFromRequestLatency:(NSTimeInterval)requestLatency
|
||||
{
|
||||
if ( requestLatency == -1 ) return @"-1";
|
||||
|
||||
// Convert latency from seconds to milliseconds to match Android.
|
||||
long requestLatencyMillis = requestLatency * 1000;
|
||||
return @(requestLatencyMillis).stringValue;
|
||||
@@ -2081,4 +2055,15 @@ static ALUnityBackgroundCallback backgroundCallback;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Helper
|
||||
|
||||
- (BOOL)shouldIgnoreSafeAreaForAdUnitIdentifier:(NSString *)adUnitIdentifier
|
||||
{
|
||||
if ( ![self.ignoreSafeAreaLandscapeAdUnitIdentifiers containsObject: adUnitIdentifier] ) return NO;
|
||||
|
||||
// We should use the superview instead of layout guide if the application's orientation is landscape and the extra parameter is set
|
||||
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
|
||||
return orientation == UIInterfaceOrientationLandscapeRight || orientation == UIInterfaceOrientationLandscapeLeft;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -8,12 +8,13 @@
|
||||
|
||||
#import "MAUnityAdManager.h"
|
||||
|
||||
#define VERSION @"7.0.0"
|
||||
#define VERSION @"8.6.3"
|
||||
#define NSSTRING(_X) ( (_X != NULL) ? [NSString stringWithCString: _X encoding: NSStringEncodingConversionAllowLossy].al_stringByTrimmingWhitespace : nil)
|
||||
|
||||
@interface NSString (ALUtils)
|
||||
@property (nonatomic, copy, readonly) NSString *al_stringByTrimmingWhitespace;
|
||||
@property (assign, readonly, getter=al_isValidString) BOOL al_validString;
|
||||
- (BOOL)al_isEqualToStringIgnoringCase:(nullable NSString *)otherString;
|
||||
@end
|
||||
|
||||
@interface ALSdkInitializationConfigurationBuilder (ALUtils)
|
||||
@@ -35,11 +36,13 @@ extern "C"
|
||||
|
||||
static bool _isSdkInitialized = false;
|
||||
static bool _initializeSdkCalled = false;
|
||||
static bool _disableAllLogs = false;
|
||||
|
||||
// Helper method to create C string copy
|
||||
static const char * cStringCopy(NSString *string);
|
||||
// Helper method to log errors
|
||||
void logUninitializedAccessError(const char *callingMethod);
|
||||
void max_unity_log_uninitialized_access_error(const char *callingMethod);
|
||||
void max_unity_log_error(NSString *message);
|
||||
|
||||
ALSdk *getSdk()
|
||||
{
|
||||
@@ -72,6 +75,11 @@ extern "C"
|
||||
return _initConfigurationBuilder;
|
||||
}
|
||||
|
||||
bool max_unity_should_disable_all_logs()
|
||||
{
|
||||
return _disableAllLogs;
|
||||
}
|
||||
|
||||
int getConsentStatusValue(NSNumber *consentStatus)
|
||||
{
|
||||
if ( consentStatus )
|
||||
@@ -182,13 +190,14 @@ extern "C"
|
||||
NSArray<MAMediatedNetworkInfo *> *availableMediatedNetworks = [getSdk() availableMediatedNetworks];
|
||||
|
||||
// Create array of serialized network strings
|
||||
NSMutableArray<NSDictionary<NSString *, NSString *> *> *serializedNetworks = [NSMutableArray arrayWithCapacity: availableMediatedNetworks.count];
|
||||
NSMutableArray<NSDictionary<NSString *, id> *> *serializedNetworks = [NSMutableArray arrayWithCapacity: availableMediatedNetworks.count];
|
||||
for ( MAMediatedNetworkInfo *mediatedNetwork in availableMediatedNetworks )
|
||||
{
|
||||
NSDictionary<NSString *, NSString *> *mediatedNetworkDictionary = @{@"name" : mediatedNetwork.name,
|
||||
@"adapterClassName" : mediatedNetwork.adapterClassName,
|
||||
@"adapterVersion" : mediatedNetwork.adapterVersion,
|
||||
@"sdkVersion" : mediatedNetwork.sdkVersion};
|
||||
NSDictionary<NSString *, id> *mediatedNetworkDictionary = @{@"name" : mediatedNetwork.name,
|
||||
@"adapterClassName" : mediatedNetwork.adapterClassName,
|
||||
@"adapterVersion" : mediatedNetwork.adapterVersion,
|
||||
@"sdkVersion" : mediatedNetwork.sdkVersion,
|
||||
@"initializationStatus" : @(mediatedNetwork.initializationStatus)};
|
||||
[serializedNetworks addObject: mediatedNetworkDictionary];
|
||||
}
|
||||
|
||||
@@ -200,7 +209,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
NSLog(@"[%@] Failed to show mediation debugger - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!", TAG);
|
||||
max_unity_log_error(@"Failed to show mediation debugger - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -211,25 +220,13 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
NSLog(@"[%@] Failed to show creative debugger - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!", TAG);
|
||||
max_unity_log_error(@"Failed to show creative debugger - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!");
|
||||
return;
|
||||
}
|
||||
|
||||
[getSdk() showCreativeDebugger];
|
||||
}
|
||||
|
||||
void _MaxShowConsentDialog()
|
||||
{
|
||||
NSLog(@"[%@] Failed to show consent dialog - Unavailable on iOS, please use the consent flow: https://developers.applovin.com/en/unity/overview/terms-and-privacy-policy-flow", TAG);
|
||||
}
|
||||
|
||||
int _MaxConsentDialogState()
|
||||
{
|
||||
if ( !_isSdkInitialized ) return ALConsentDialogStateUnknown;
|
||||
|
||||
return (int) getSdk().configuration.consentDialogState;
|
||||
}
|
||||
|
||||
|
||||
void _MaxSetUserId(const char *userId)
|
||||
{
|
||||
getSdk().settings.userIdentifier = NSSTRING(userId);
|
||||
@@ -239,7 +236,7 @@ extern "C"
|
||||
{
|
||||
if ( _initializeSdkCalled )
|
||||
{
|
||||
NSLog(@"[%@] Segment collection must be set before MAX SDK is initialized", TAG);
|
||||
max_unity_log_error(@"Segment collection must be set before MAX SDK is initialized");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -250,7 +247,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxGetSdkConfiguration");
|
||||
max_unity_log_uninitialized_access_error("_MaxGetSdkConfiguration");
|
||||
return cStringCopy(@"");
|
||||
}
|
||||
|
||||
@@ -296,33 +293,33 @@ extern "C"
|
||||
return [ALPrivacySettings isDoNotSellSet];
|
||||
}
|
||||
|
||||
void _MaxCreateBanner(const char *adUnitIdentifier, const char *bannerPosition)
|
||||
void _MaxCreateBanner(const char *adUnitIdentifier, const char *bannerPosition, bool isAdaptive)
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxCreateBanner");
|
||||
max_unity_log_uninitialized_access_error("_MaxCreateBanner");
|
||||
return;
|
||||
}
|
||||
|
||||
[getAdManager() createBannerWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) atPosition: NSSTRING(bannerPosition)];
|
||||
[getAdManager() createBannerWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) atPosition: NSSTRING(bannerPosition) isAdaptive: isAdaptive];
|
||||
}
|
||||
|
||||
void _MaxCreateBannerXY(const char *adUnitIdentifier, const float x, const float y)
|
||||
void _MaxCreateBannerXY(const char *adUnitIdentifier, const float x, const float y, bool isAdaptive)
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxCreateBannerXY");
|
||||
max_unity_log_uninitialized_access_error("_MaxCreateBannerXY");
|
||||
return;
|
||||
}
|
||||
|
||||
[getAdManager() createBannerWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) x: x y: y];
|
||||
[getAdManager() createBannerWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) x: x y: y isAdaptive: isAdaptive];
|
||||
}
|
||||
|
||||
void _MaxLoadBanner(const char *adUnitIdentifier)
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxLoadBanner");
|
||||
max_unity_log_uninitialized_access_error("_MaxLoadBanner");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -333,7 +330,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetBannerBackgroundColor");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetBannerBackgroundColor");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -344,7 +341,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetBannerPlacement");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetBannerPlacement");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -355,7 +352,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxStartBannerAutoRefresh");
|
||||
max_unity_log_uninitialized_access_error("_MaxStartBannerAutoRefresh");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -366,7 +363,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxStopBannerAutoRefresh");
|
||||
max_unity_log_uninitialized_access_error("_MaxStopBannerAutoRefresh");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -377,7 +374,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetBannerExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetBannerExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -390,7 +387,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetBannerLocalExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetBannerLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -403,7 +400,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetBannerLocalExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetBannerLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -417,7 +414,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetBannerCustomData");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetBannerCustomData");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -428,7 +425,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetBannerWidth");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetBannerWidth");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -439,7 +436,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxUpdateBannerPosition");
|
||||
max_unity_log_uninitialized_access_error("_MaxUpdateBannerPosition");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -450,7 +447,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxUpdateBannerPositionXY");
|
||||
max_unity_log_uninitialized_access_error("_MaxUpdateBannerPositionXY");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -461,7 +458,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxShowBanner");
|
||||
max_unity_log_uninitialized_access_error("_MaxShowBanner");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -472,7 +469,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxDestroyBanner");
|
||||
max_unity_log_uninitialized_access_error("_MaxDestroyBanner");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -483,7 +480,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxHideBanner");
|
||||
max_unity_log_uninitialized_access_error("_MaxHideBanner");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -494,7 +491,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxGetBannerLayout");
|
||||
max_unity_log_uninitialized_access_error("_MaxGetBannerLayout");
|
||||
return cStringCopy(@"");
|
||||
}
|
||||
|
||||
@@ -505,7 +502,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxCreateMRec");
|
||||
max_unity_log_uninitialized_access_error("_MaxCreateMRec");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -516,7 +513,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxCreateMRecXY");
|
||||
max_unity_log_uninitialized_access_error("_MaxCreateMRecXY");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -527,7 +524,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxLoadMRec");
|
||||
max_unity_log_uninitialized_access_error("_MaxLoadMRec");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -538,7 +535,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetMRecPlacement");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetMRecPlacement");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -549,7 +546,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxStartMRecAutoRefresh");
|
||||
max_unity_log_uninitialized_access_error("_MaxStartMRecAutoRefresh");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -560,7 +557,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxStopMRecAutoRefresh");
|
||||
max_unity_log_uninitialized_access_error("_MaxStopMRecAutoRefresh");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -571,7 +568,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxUpdateMRecPosition");
|
||||
max_unity_log_uninitialized_access_error("_MaxUpdateMRecPosition");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -582,7 +579,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxUpdateMRecPositionXY");
|
||||
max_unity_log_uninitialized_access_error("_MaxUpdateMRecPositionXY");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -593,7 +590,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxShowMRec");
|
||||
max_unity_log_uninitialized_access_error("_MaxShowMRec");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -604,7 +601,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxDestroyMRec");
|
||||
max_unity_log_uninitialized_access_error("_MaxDestroyMRec");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -615,7 +612,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxHideMRec");
|
||||
max_unity_log_uninitialized_access_error("_MaxHideMRec");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -626,7 +623,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetMRecExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetMRecExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -639,7 +636,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetMRecLocalExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetMRecLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -652,7 +649,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetMRecLocalExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetMRecLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -666,7 +663,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetMRecCustomData");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetMRecCustomData");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -677,7 +674,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxGetMRecLayout");
|
||||
max_unity_log_uninitialized_access_error("_MaxGetMRecLayout");
|
||||
return cStringCopy(@"");
|
||||
}
|
||||
|
||||
@@ -688,7 +685,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxLoadInterstitial");
|
||||
max_unity_log_uninitialized_access_error("_MaxLoadInterstitial");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -699,7 +696,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetInterstitialExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetInterstitialExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -712,7 +709,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetInterstitialLocalExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetInterstitialLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -725,7 +722,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetInterstitialLocalExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetInterstitialLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -739,7 +736,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxIsInterstitialReady");
|
||||
max_unity_log_uninitialized_access_error("_MaxIsInterstitialReady");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -750,7 +747,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxShowInterstitial");
|
||||
max_unity_log_uninitialized_access_error("_MaxShowInterstitial");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -761,7 +758,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxLoadAppOpenAd");
|
||||
max_unity_log_uninitialized_access_error("_MaxLoadAppOpenAd");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -772,7 +769,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetAppOpenAdExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetAppOpenAdExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -785,7 +782,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetAppOpenAdLocalExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetAppOpenAdLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -798,7 +795,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetAppOpenAdLocalExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetAppOpenAdLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -812,7 +809,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxIsAppOpenAdReady");
|
||||
max_unity_log_uninitialized_access_error("_MaxIsAppOpenAdReady");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -823,7 +820,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxShowAppOpenAd");
|
||||
max_unity_log_uninitialized_access_error("_MaxShowAppOpenAd");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -834,7 +831,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxLoadRewardedAd");
|
||||
max_unity_log_uninitialized_access_error("_MaxLoadRewardedAd");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -845,7 +842,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetRewardedAdExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetRewardedAdExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -858,7 +855,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetRewardedAdLocalExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetRewardedAdLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -871,7 +868,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetRewardedAdLocalExtraParameter");
|
||||
max_unity_log_uninitialized_access_error("_MaxSetRewardedAdLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -885,7 +882,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxIsRewardedAdReady");
|
||||
max_unity_log_uninitialized_access_error("_MaxIsRewardedAdReady");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -896,91 +893,18 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxShowRewardedAd");
|
||||
max_unity_log_uninitialized_access_error("_MaxShowRewardedAd");
|
||||
return;
|
||||
}
|
||||
|
||||
[getAdManager() showRewardedAdWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) placement: NSSTRING(placement) customData: NSSTRING(customData)];
|
||||
}
|
||||
|
||||
void _MaxLoadRewardedInterstitialAd(const char *adUnitIdentifier)
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxLoadRewardedInterstitialAd");
|
||||
return;
|
||||
}
|
||||
|
||||
[getAdManager() loadRewardedInterstitialAdWithAdUnitIdentifier: NSSTRING(adUnitIdentifier)];
|
||||
}
|
||||
|
||||
void _MaxSetRewardedInterstitialAdExtraParameter(const char *adUnitIdentifier, const char *key, const char *value)
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetRewardedInterstitialAdExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
[getAdManager() setRewardedInterstitialAdExtraParameterForAdUnitIdentifier: NSSTRING(adUnitIdentifier)
|
||||
key: NSSTRING(key)
|
||||
value: NSSTRING(value)];
|
||||
}
|
||||
|
||||
void _MaxSetRewardedInterstitialAdLocalExtraParameter(const char *adUnitIdentifier, const char *key, MAUnityRef value)
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetRewardedInterstitialAdLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
[getAdManager() setRewardedInterstitialAdLocalExtraParameterForAdUnitIdentifier: NSSTRING(adUnitIdentifier)
|
||||
key: NSSTRING(key)
|
||||
value: (__bridge id)value];
|
||||
}
|
||||
|
||||
void _MaxSetRewardedInterstitialAdLocalExtraParameterJSON(const char *adUnitIdentifier, const char *key, const char *json)
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxSetRewardedInterstitialAdLocalExtraParameter");
|
||||
return;
|
||||
}
|
||||
|
||||
id value = getLocalExtraParameterValue(json);
|
||||
[getAdManager() setRewardedInterstitialAdLocalExtraParameterForAdUnitIdentifier: NSSTRING(adUnitIdentifier)
|
||||
key: NSSTRING(key)
|
||||
value: value];
|
||||
}
|
||||
|
||||
bool _MaxIsRewardedInterstitialAdReady(const char *adUnitIdentifier)
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxIsRewardedInterstitialAdReady");
|
||||
return false;
|
||||
}
|
||||
|
||||
return [getAdManager() isRewardedInterstitialAdReadyWithAdUnitIdentifier: NSSTRING(adUnitIdentifier)];
|
||||
}
|
||||
|
||||
void _MaxShowRewardedInterstitialAd(const char *adUnitIdentifier, const char *placement, const char *customData)
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxShowRewardedInterstitialAd");
|
||||
return;
|
||||
}
|
||||
|
||||
[getAdManager() showRewardedInterstitialAdWithAdUnitIdentifier: NSSTRING(adUnitIdentifier) placement: NSSTRING(placement) customData: NSSTRING(customData)];
|
||||
}
|
||||
|
||||
void _MaxTrackEvent(const char *event, const char *parameters)
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxTrackEvent");
|
||||
max_unity_log_uninitialized_access_error("_MaxTrackEvent");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1042,11 +966,6 @@ extern "C"
|
||||
return [UIScreen.mainScreen nativeScale];
|
||||
}
|
||||
|
||||
const char * _MaxGetAdInfo(const char *adUnitIdentifier)
|
||||
{
|
||||
return cStringCopy([getAdManager() adInfoForAdUnitIdentifier: NSSTRING(adUnitIdentifier)]);
|
||||
}
|
||||
|
||||
const char * _MaxGetAdValue(const char *adUnitIdentifier, const char *key)
|
||||
{
|
||||
return cStringCopy([getAdManager() adValueForAdUnitIdentifier: NSSTRING(adUnitIdentifier) withKey: NSSTRING(key)]);
|
||||
@@ -1066,7 +985,7 @@ extern "C"
|
||||
{
|
||||
if ( _initializeSdkCalled )
|
||||
{
|
||||
NSLog(@"[%@] Test device advertising IDs must be set before MAX SDK is initialized", TAG);
|
||||
max_unity_log_error(@"Test device advertising IDs must be set before MAX SDK is initialized");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1083,7 +1002,7 @@ extern "C"
|
||||
{
|
||||
if ( _initializeSdkCalled )
|
||||
{
|
||||
NSLog(@"[%@] Exception handler must be enabled/disabled before MAX SDK is initialized", TAG);
|
||||
max_unity_log_error(@"Exception handler must be enabled/disabled before MAX SDK is initialized");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1095,12 +1014,19 @@ extern "C"
|
||||
NSString *stringKey = NSSTRING(key);
|
||||
if ( ![stringKey al_isValidString] )
|
||||
{
|
||||
NSLog(@"[%@] Failed to set extra parameter for nil or empty key: %@", TAG, stringKey);
|
||||
NSString *message = [NSString stringWithFormat:@"Failed to set extra parameter for nil or empty key: %@", stringKey];
|
||||
max_unity_log_error(message);
|
||||
return;
|
||||
}
|
||||
|
||||
NSString *stringValue = NSSTRING(value);
|
||||
if ( [@"disable_all_logs" isEqualToString: stringKey] )
|
||||
{
|
||||
_disableAllLogs = [@"true" al_isEqualToStringIgnoringCase: stringValue];
|
||||
}
|
||||
|
||||
ALSdkSettings *settings = getSdk().settings;
|
||||
[settings setExtraParameterForKey: stringKey value: NSSTRING(value)];
|
||||
[settings setExtraParameterForKey: stringKey value: stringValue];
|
||||
}
|
||||
|
||||
int * _MaxGetSafeAreaInsets()
|
||||
@@ -1114,7 +1040,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxShowCmpForExistingUser");
|
||||
max_unity_log_uninitialized_access_error("_MaxShowCmpForExistingUser");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1125,7 +1051,7 @@ extern "C"
|
||||
{
|
||||
if ( !_initializeSdkCalled )
|
||||
{
|
||||
logUninitializedAccessError("_MaxHasSupportedCmp");
|
||||
max_unity_log_uninitialized_access_error("_MaxHasSupportedCmp");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1137,9 +1063,18 @@ extern "C"
|
||||
return [MAUnityAdManager adaptiveBannerHeightForWidth: width];
|
||||
}
|
||||
|
||||
void logUninitializedAccessError(const char *callingMethod)
|
||||
void max_unity_log_uninitialized_access_error(const char *callingMethod)
|
||||
{
|
||||
NSLog(@"[%@] Failed to execute: %s - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!", TAG, callingMethod);
|
||||
NSString *message = [NSString stringWithFormat:@"Failed to execute: %s - please ensure the AppLovin MAX Unity Plugin has been initialized by calling 'MaxSdk.InitializeSdk();'!", callingMethod];
|
||||
max_unity_log_error(message);
|
||||
}
|
||||
|
||||
void max_unity_log_error(NSString *message)
|
||||
{
|
||||
if (_disableAllLogs) return;
|
||||
|
||||
NSString *logMessage = [NSString stringWithFormat: @"[%@] %@", TAG, message];
|
||||
NSLog(@"%@", logMessage);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user