react-native-applovin-max 6.1.1 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/android/.project CHANGED
@@ -1,15 +1,10 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <projectDescription>
3
- <name>android</name>
3
+ <name>android_</name>
4
4
  <comment>Project android_ created by Buildship.</comment>
5
5
  <projects>
6
6
  </projects>
7
7
  <buildSpec>
8
- <buildCommand>
9
- <name>org.eclipse.jdt.core.javabuilder</name>
10
- <arguments>
11
- </arguments>
12
- </buildCommand>
13
8
  <buildCommand>
14
9
  <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
15
10
  <arguments>
@@ -17,7 +12,6 @@
17
12
  </buildCommand>
18
13
  </buildSpec>
19
14
  <natures>
20
- <nature>org.eclipse.jdt.core.javanature</nature>
21
15
  <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
22
16
  </natures>
23
17
  </projectDescription>
@@ -1,11 +1,11 @@
1
- arguments=--init-script /var/folders/7v/xx4_6n150w136j9cfrzqdc2w0000gq/T/d146c9752a26f79b52047fb6dc6ed385d064e120494f96f08ca63a317c41f94c.gradle --init-script /var/folders/7v/xx4_6n150w136j9cfrzqdc2w0000gq/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle
1
+ arguments=
2
2
  auto.sync=false
3
3
  build.scans.enabled=false
4
- connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
4
+ connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(6.0))
5
5
  connection.project.dir=
6
6
  eclipse.preferences.version=1
7
7
  gradle.user.home=
8
- java.home=/Users/hiroshi.watanabe/Library/Java/JavaVirtualMachines/corretto-11.0.21/Contents/Home
8
+ java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
9
9
  jvm.arguments=
10
10
  offline.mode=false
11
11
  override.workspace.settings=true
@@ -35,8 +35,8 @@ android {
35
35
  defaultConfig {
36
36
  minSdkVersion 16
37
37
  targetSdkVersion getExtOrIntegerDefault('targetSdkVersion')
38
- versionCode 6010100
39
- versionName "6.1.1"
38
+ versionCode 6020000
39
+ versionName "6.2.0"
40
40
  }
41
41
 
42
42
  flavorDimensions("default")
@@ -2673,6 +2673,63 @@ public class AppLovinMAXModule
2673
2673
  return networkResponseObject;
2674
2674
  }
2675
2675
 
2676
+ // Amazon
2677
+
2678
+ public void setAmazonBannerResult(final Object result, final String adUnitId)
2679
+ {
2680
+ setAmazonResult( result, adUnitId, MaxAdFormat.BANNER );
2681
+ }
2682
+
2683
+ public void setAmazonMRecResult(final Object result, final String adUnitId)
2684
+ {
2685
+ setAmazonResult( result, adUnitId, MaxAdFormat.MREC );
2686
+ }
2687
+
2688
+ public void setAmazonInterstitialResult(final Object result, final String adUnitId)
2689
+ {
2690
+ setAmazonResult( result, adUnitId, MaxAdFormat.INTERSTITIAL );
2691
+ }
2692
+
2693
+ private void setAmazonResult(final Object result, final String adUnitId, final MaxAdFormat adFormat)
2694
+ {
2695
+ if ( sdk == null )
2696
+ {
2697
+ logUninitializedAccessError( "Failed to set Amazon result - SDK not initialized: " + adUnitId );
2698
+ return;
2699
+ }
2700
+
2701
+ if ( result == null )
2702
+ {
2703
+ e( "Failed to set Amazon result - null value" );
2704
+ return;
2705
+ }
2706
+
2707
+ String key = getLocalExtraParameterKeyForAmazonResult( result );
2708
+
2709
+ if ( adFormat == MaxAdFormat.INTERSTITIAL )
2710
+ {
2711
+ MaxInterstitialAd interstitial = retrieveInterstitial( adUnitId, "setAmazonResult" );
2712
+ if ( interstitial == null )
2713
+ {
2714
+ e( "Unable to set Amazon result - unable to retrieve interstitial" );
2715
+ return;
2716
+ }
2717
+
2718
+ interstitial.setLocalExtraParameter( key, result );
2719
+ }
2720
+ else
2721
+ {
2722
+ MaxAdView adView = retrieveAdView( adUnitId, adFormat );
2723
+ adView.setLocalExtraParameter( key, result );
2724
+ }
2725
+ }
2726
+
2727
+ private String getLocalExtraParameterKeyForAmazonResult(final Object /* DTBAdResponse or AdError */ result)
2728
+ {
2729
+ String className = result.getClass().getSimpleName();
2730
+ return "DTBAdResponse".equalsIgnoreCase( className ) ? "amazon_ad_response" : "amazon_ad_error";
2731
+ }
2732
+
2676
2733
  // Lifecycle Events
2677
2734
 
2678
2735
  @Override
package/ios/AppLovinMAX.m CHANGED
@@ -226,65 +226,65 @@ RCT_EXPORT_METHOD(initialize:(NSString *)pluginVersion :(NSString *)sdkKey :(RCT
226
226
  }
227
227
 
228
228
  ALSdkSettings *settings = [[ALSdkSettings alloc] init];
229
-
229
+
230
230
  // Selective init
231
231
  if ( self.initializationAdUnitIdentifiersToSet )
232
232
  {
233
233
  settings.initializationAdUnitIdentifiers = self.initializationAdUnitIdentifiersToSet;
234
234
  self.initializationAdUnitIdentifiersToSet = nil;
235
235
  }
236
-
236
+
237
237
  // Deprecated consent flow which automatically moves to the new flow
238
238
  if ( self.consentFlowEnabledToSet )
239
239
  {
240
240
  settings.consentFlowSettings.enabled = self.consentFlowEnabledToSet.boolValue;
241
241
  self.consentFlowEnabledToSet = nil;
242
-
242
+
243
243
  if ( self.privacyPolicyURLToSet )
244
244
  {
245
245
  settings.consentFlowSettings.privacyPolicyURL = self.privacyPolicyURLToSet;
246
246
  self.privacyPolicyURLToSet = nil;
247
247
  }
248
-
248
+
249
249
  if (self.termsOfServiceURLToSet )
250
250
  {
251
251
  settings.consentFlowSettings.termsOfServiceURL = self.termsOfServiceURLToSet;
252
252
  self.termsOfServiceURLToSet = nil;
253
253
  }
254
254
  }
255
-
255
+
256
256
  // New terms and privacy policy flow
257
257
  if ( self.termsAndPrivacyPolicyFlowEnabledToSet )
258
258
  {
259
259
  settings.termsAndPrivacyPolicyFlowSettings.enabled = self.termsAndPrivacyPolicyFlowEnabledToSet.boolValue;
260
260
  self.termsAndPrivacyPolicyFlowEnabledToSet = nil;
261
-
261
+
262
262
  if ( self.privacyPolicyURLToSet )
263
263
  {
264
264
  settings.termsAndPrivacyPolicyFlowSettings.privacyPolicyURL = self.privacyPolicyURLToSet;
265
265
  self.privacyPolicyURLToSet = nil;
266
266
  }
267
-
267
+
268
268
  if ( self.termsOfServiceURLToSet )
269
269
  {
270
270
  settings.termsAndPrivacyPolicyFlowSettings.termsOfServiceURL = self.termsOfServiceURLToSet;
271
271
  self.termsOfServiceURLToSet = nil;
272
272
  }
273
-
273
+
274
274
  if ( self.debugUserGeographyToSet )
275
275
  {
276
276
  settings.termsAndPrivacyPolicyFlowSettings.debugUserGeography = [self toAppLovinConsentFlowUserGeography: self.debugUserGeographyToSet];
277
277
  self.debugUserGeographyToSet = nil;
278
278
  }
279
279
  }
280
-
280
+
281
281
  // Set muted if needed
282
282
  if ( self.mutedToSet )
283
283
  {
284
284
  settings.muted = self.mutedToSet;
285
285
  self.mutedToSet = nil;
286
286
  }
287
-
287
+
288
288
  // Set test device ids if needed
289
289
  if ( self.testDeviceIdentifiersToSet )
290
290
  {
@@ -314,7 +314,7 @@ RCT_EXPORT_METHOD(initialize:(NSString *)pluginVersion :(NSString *)sdkKey :(RCT
314
314
  }
315
315
 
316
316
  [self setPendingExtraParametersIfNeeded: settings];
317
-
317
+
318
318
  // Initialize SDK
319
319
  self.sdk = [ALSdk sharedWithKey: sdkKey settings: settings];
320
320
  [self.sdk setPluginVersion: [@"React-Native-" stringByAppendingString: pluginVersion]];
@@ -848,10 +848,11 @@ RCT_EXPORT_METHOD(setBannerExtraParameter:(NSString *)adUnitIdentifier :(NSStrin
848
848
  [self setAdViewExtraParameterForAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT key: key value: value];
849
849
  }
850
850
 
851
+ // NOTE: Even though iOS is ok with `id` generic types, Android is not - so we wrap it via JSON/ReadableMap
851
852
  RCT_EXPORT_METHOD(setBannerLocalExtraParameter:(NSString *)adUnitIdentifier :(NSDictionary<NSString *, id> *)parameterDict)
852
- {
853
+ {
853
854
  NSString *key = parameterDict.allKeys.firstObject;
854
- id value = parameterDict.allValues.firstObject;
855
+ id value = parameterDict.allValues.firstObject != [NSNull null] ? parameterDict.allValues.firstObject : nil;
855
856
 
856
857
  [self setAdViewLocalExtraParameterForAdUnitIdentifier: adUnitIdentifier adFormat: DEVICE_SPECIFIC_ADVIEW_AD_FORMAT key: key value: value];
857
858
  }
@@ -963,14 +964,15 @@ RCT_EXPORT_METHOD(updateMRecPosition:(NSString *)mrecPosition :(NSString *)adUni
963
964
  }
964
965
 
965
966
  RCT_EXPORT_METHOD(setMRecExtraParameter:(NSString *)adUnitIdentifier :(NSString *)key :(nullable NSString *)value)
966
- {
967
+ {
967
968
  [self setAdViewExtraParameterForAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec key: key value: value];
968
969
  }
969
970
 
971
+ // NOTE: Even though iOS is ok with `id` generic types, Android is not - so we wrap it via JSON/ReadableMap
970
972
  RCT_EXPORT_METHOD(setMRecLocalExtraParameter:(NSString *)adUnitIdentifier :(NSDictionary<NSString *, id> *)parameterDict)
971
973
  {
972
974
  NSString *key = parameterDict.allKeys.firstObject;
973
- id value = parameterDict.allValues.firstObject;
975
+ id value = parameterDict.allValues.firstObject != [NSNull null] ? parameterDict.allValues.firstObject : nil;
974
976
 
975
977
  [self setAdViewLocalExtraParameterForAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec key: key value: value];
976
978
  }
@@ -1081,10 +1083,11 @@ RCT_EXPORT_METHOD(setInterstitialExtraParameter:(NSString *)adUnitIdentifier :(N
1081
1083
  [interstitial setExtraParameterForKey: key value: value];
1082
1084
  }
1083
1085
 
1086
+ // NOTE: Even though iOS is ok with `id` generic types, Android is not - so we wrap it via JSON/ReadableMap
1084
1087
  RCT_EXPORT_METHOD(setInterstitialLocalExtraParameter:(NSString *)adUnitIdentifier :(NSDictionary<NSString *, id> *)parameterDict)
1085
1088
  {
1086
1089
  NSString *key = parameterDict.allKeys.firstObject;
1087
- id value = parameterDict.allValues.firstObject;
1090
+ id value = parameterDict.allValues.firstObject != [NSNull null] ? parameterDict.allValues.firstObject : nil;
1088
1091
 
1089
1092
  MAInterstitialAd *interstitial = [self retrieveInterstitialForAdUnitIdentifier: adUnitIdentifier];
1090
1093
  [interstitial setLocalExtraParameterForKey: key value: value];
@@ -1141,10 +1144,11 @@ RCT_EXPORT_METHOD(setRewardedAdExtraParameter:(NSString *)adUnitIdentifier :(NSS
1141
1144
  [rewardedAd setExtraParameterForKey: key value: value];
1142
1145
  }
1143
1146
 
1147
+ // NOTE: Even though iOS is ok with `id` generic types, Android is not - so we wrap it via JSON/ReadableMap
1144
1148
  RCT_EXPORT_METHOD(setRewardedAdLocalExtraParameter:(NSString *)adUnitIdentifier :(NSDictionary<NSString *, id> *)parameterDict)
1145
1149
  {
1146
1150
  NSString *key = parameterDict.allKeys.firstObject;
1147
- id value = parameterDict.allValues.firstObject;
1151
+ id value = parameterDict.allValues.firstObject != [NSNull null] ? parameterDict.allValues.firstObject : nil;
1148
1152
 
1149
1153
  MARewardedAd *rewardedAd = [self retrieveRewardedAdForAdUnitIdentifier: adUnitIdentifier];
1150
1154
  [rewardedAd setLocalExtraParameterForKey: key value: value];
@@ -1201,10 +1205,11 @@ RCT_EXPORT_METHOD(setAppOpenAdExtraParameter:(NSString *)adUnitIdentifier key:(N
1201
1205
  [appOpenAd setExtraParameterForKey: key value: value];
1202
1206
  }
1203
1207
 
1208
+ // NOTE: Even though iOS is ok with `id` generic types, Android is not - so we wrap it via JSON/ReadableMap
1204
1209
  RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :(NSDictionary<NSString *, id> *)parameterDict)
1205
1210
  {
1206
1211
  NSString *key = parameterDict.allKeys.firstObject;
1207
- id value = parameterDict.allValues.firstObject;
1212
+ id value = parameterDict.allValues.firstObject != [NSNull null] ? parameterDict.allValues.firstObject : nil;
1208
1213
 
1209
1214
  MAAppOpenAd *appOpenAd = [self retrieveAppOpenAdForAdUnitIdentifier: adUnitIdentifier];
1210
1215
  [appOpenAd setLocalExtraParameterForKey: key value: value];
@@ -2074,7 +2079,7 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2074
2079
  {
2075
2080
  return ALConsentFlowUserGeographyOther;
2076
2081
  }
2077
-
2082
+
2078
2083
  return ALConsentFlowUserGeographyUnknown;
2079
2084
  }
2080
2085
 
@@ -2088,7 +2093,7 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2088
2093
  {
2089
2094
  return USER_GEOGRAPHY_OTHER;
2090
2095
  }
2091
-
2096
+
2092
2097
  return USER_GEOGRAPHY_UNKNOWN;
2093
2098
  }
2094
2099
 
@@ -2110,7 +2115,7 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2110
2115
  {
2111
2116
  return APP_TRACKING_STATUS_AUTHORIZED;
2112
2117
  }
2113
-
2118
+
2114
2119
  return APP_TRACKING_STATUS_UNAVAILABLE;
2115
2120
  }
2116
2121
 
@@ -2223,6 +2228,59 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2223
2228
  return networkResponseDict;
2224
2229
  }
2225
2230
 
2231
+ #pragma mark - Amazon
2232
+
2233
+ - (void)setAmazonResult:(id)result forBannerAdUnitIdentifier:(NSString *)adUnitIdentifier
2234
+ {
2235
+ [self setAmazonResult: result forAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.banner];
2236
+ }
2237
+
2238
+ - (void)setAmazonResult:(id)result forMRecAdUnitIdentifier:(NSString *)adUnitIdentifier
2239
+ {
2240
+ [self setAmazonResult: result forAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.mrec];
2241
+ }
2242
+
2243
+ - (void)setAmazonResult:(id)result forInterstitialAdUnitIdentifier:(NSString *)adUnitIdentifier
2244
+ {
2245
+ [self setAmazonResult: result forAdUnitIdentifier: adUnitIdentifier adFormat: MAAdFormat.interstitial];
2246
+ }
2247
+
2248
+ - (void)setAmazonResult:(id /* DTBAdResponse or DTBAdErrorInfo */)result forAdUnitIdentifier:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat
2249
+ {
2250
+ if ( !self.sdk )
2251
+ {
2252
+ NSString *errorMessage = [NSString stringWithFormat: @"Failed to set Amazon result - SDK not initialized: %@", adUnitIdentifier];
2253
+ [self logUninitializedAccessError: errorMessage];
2254
+
2255
+ return;
2256
+ }
2257
+
2258
+ if ( !result )
2259
+ {
2260
+ [self log: @"Failed to set Amazon result - nil value"];
2261
+ return;
2262
+ }
2263
+
2264
+ NSString *key = [self localExtraParameterKeyForAmazonResult: result];
2265
+
2266
+ if ( adFormat == MAAdFormat.interstitial )
2267
+ {
2268
+ MAInterstitialAd *interstitial = [self retrieveInterstitialForAdUnitIdentifier: adUnitIdentifier];
2269
+ [interstitial setLocalExtraParameterForKey: key value: result];
2270
+ }
2271
+ else
2272
+ {
2273
+ MAAdView *adView = [self retrieveAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat];
2274
+ [adView setLocalExtraParameterForKey: key value: result];
2275
+ }
2276
+ }
2277
+
2278
+ - (NSString *)localExtraParameterKeyForAmazonResult:(id /* DTBAdResponse or DTBAdErrorInfo */)result
2279
+ {
2280
+ NSString *className = NSStringFromClass([result class]);
2281
+ return [@"DTBAdResponse" isEqualToString: className] ? @"amazon_ad_response" : @"amazon_ad_error";
2282
+ }
2283
+
2226
2284
  #pragma mark - React Native Event Bridge
2227
2285
 
2228
2286
  - (void)sendReactNativeEventWithName:(NSString *)name body:(NSDictionary<NSString *, id> *)body
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Bucket
3
+ uuid = "8322C692-8067-489C-89A1-217F139F4039"
4
+ type = "0"
5
+ version = "2.0">
6
+ <Breakpoints>
7
+ <BreakpointProxy
8
+ BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
9
+ <BreakpointContent
10
+ uuid = "1DACA5BD-D4D2-4CD6-BEFD-D951963D77E1"
11
+ shouldBeEnabled = "No"
12
+ ignoreCount = "0"
13
+ continueAfterRunningActions = "No"
14
+ filePath = "AppLovinMAX.m"
15
+ startingColumnNumber = "9223372036854775807"
16
+ endingColumnNumber = "9223372036854775807"
17
+ startingLineNumber = "1304"
18
+ endingLineNumber = "1304"
19
+ landmarkName = "-positionAdViewForAdUnitIdentifier:adFormat:"
20
+ landmarkType = "7">
21
+ </BreakpointContent>
22
+ </BreakpointProxy>
23
+ </Breakpoints>
24
+ </Bucket>
@@ -176,7 +176,8 @@
176
176
 
177
177
  for ( NSString *key in self.localExtraParameters )
178
178
  {
179
- [self.adView setLocalExtraParameterForKey: key value: self.localExtraParameters[key]];
179
+ id value = self.localExtraParameters[key];
180
+ [self.adView setLocalExtraParameterForKey: key value: (value != [NSNull null] ? value : nil)];
180
181
  }
181
182
 
182
183
  if ( [self isAutoRefresh] )
@@ -123,7 +123,8 @@
123
123
 
124
124
  for ( NSString *key in self.localExtraParameters )
125
125
  {
126
- [self.adLoader setLocalExtraParameterForKey: key value: self.localExtraParameters[key]];
126
+ id value = self.localExtraParameters[key];
127
+ [self.adLoader setLocalExtraParameterForKey: key value: (value != [NSNull null] ? value : nil)];
127
128
  }
128
129
 
129
130
  [self.adLoader loadAd];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-native-applovin-max",
3
3
  "author": "AppLovin Corporation",
4
- "version": "6.1.1",
4
+ "version": "6.2.0",
5
5
  "description": "AppLovin MAX React Native Plugin for Android and iOS",
6
6
  "homepage": "https://github.com/AppLovin/AppLovin-MAX-React-Native",
7
7
  "license": "MIT",
@@ -11,7 +11,7 @@ Pod::Spec.new do |s|
11
11
  s.authors = package["author"]
12
12
 
13
13
  s.platforms = { :ios => "10.0" }
14
- s.source = { :git => "https://github.com/AppLovin/AppLovin-MAX-React-Native.git", :tag => "release_6_1_1" }
14
+ s.source = { :git => "https://github.com/AppLovin/AppLovin-MAX-React-Native.git", :tag => "release_6_2_0" }
15
15
 
16
16
  s.source_files = "ios/AppLovinMAX*.{h,m}"
17
17
 
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/src.iml" filepath="$PROJECT_DIR$/.idea/src.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$" />
5
+ <orderEntry type="inheritedJdk" />
6
+ <orderEntry type="sourceFolder" forTests="false" />
7
+ </component>
8
+ </module>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
5
+ </component>
6
+ </project>
@@ -4,7 +4,7 @@ import type { Configuration } from './types/Configuration';
4
4
 
5
5
  const NativeAppLovinMAX = NativeModules.AppLovinMAX;
6
6
 
7
- const VERSION = '6.1.1';
7
+ const VERSION = '6.2.0';
8
8
 
9
9
  const initialize = async (sdkKey: string): Promise<Configuration> => {
10
10
  return NativeAppLovinMAX.initialize(VERSION, sdkKey);