react-native-applovin-max 6.5.0 → 7.0.1

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.
Files changed (238) hide show
  1. package/android/build.gradle +46 -100
  2. package/android/gradle.properties +4 -4
  3. package/android/src/main/AndroidManifest.xml +2 -2
  4. package/android/src/main/AndroidManifestNew.xml +2 -0
  5. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdView.java +123 -163
  6. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewManager.java +24 -17
  7. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXAdViewUiComponent.java +242 -0
  8. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXModule.java +297 -336
  9. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdView.java +13 -12
  10. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXNativeAdViewManager.java +11 -14
  11. package/android/src/main/java/com/applovin/reactnative/AppLovinMAXPackage.java +3 -3
  12. package/ios/AppLovinMAX.h +1 -1
  13. package/ios/AppLovinMAX.m +62 -12
  14. package/ios/AppLovinMAXAdView.h +12 -0
  15. package/ios/AppLovinMAXAdView.m +120 -142
  16. package/ios/AppLovinMAXAdViewUIComponent.h +27 -0
  17. package/ios/AppLovinMAXAdViewUIComponent.m +199 -0
  18. package/lib/commonjs/AdView.js +348 -0
  19. package/lib/commonjs/AdView.js.map +1 -0
  20. package/lib/commonjs/AppLovinMAX.js +52 -0
  21. package/lib/commonjs/AppLovinMAX.js.map +1 -0
  22. package/lib/commonjs/AppOpenAd.js +102 -0
  23. package/lib/commonjs/AppOpenAd.js.map +1 -0
  24. package/lib/commonjs/BannerAd.js +139 -0
  25. package/lib/commonjs/BannerAd.js.map +1 -0
  26. package/lib/commonjs/EventEmitter.js +32 -0
  27. package/lib/commonjs/EventEmitter.js.map +1 -0
  28. package/lib/commonjs/InterstitialAd.js +102 -0
  29. package/lib/commonjs/InterstitialAd.js.map +1 -0
  30. package/lib/commonjs/MRecAd.js +117 -0
  31. package/lib/commonjs/MRecAd.js.map +1 -0
  32. package/lib/commonjs/Privacy.js +12 -0
  33. package/lib/commonjs/Privacy.js.map +1 -0
  34. package/lib/commonjs/RewardedAd.js +116 -0
  35. package/lib/commonjs/RewardedAd.js.map +1 -0
  36. package/lib/commonjs/TargetingData.js +179 -0
  37. package/lib/commonjs/TargetingData.js.map +1 -0
  38. package/lib/commonjs/index.js +256 -0
  39. package/lib/commonjs/index.js.map +1 -0
  40. package/lib/commonjs/nativeAd/NativeAdView.js +147 -0
  41. package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -0
  42. package/lib/commonjs/nativeAd/NativeAdViewComponents.js +197 -0
  43. package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -0
  44. package/lib/commonjs/nativeAd/NativeAdViewProvider.js +37 -0
  45. package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -0
  46. package/lib/commonjs/types/AdEvent.js +6 -0
  47. package/lib/commonjs/types/AdEvent.js.map +1 -0
  48. package/lib/commonjs/types/AdInfo.js +48 -0
  49. package/lib/commonjs/types/AdInfo.js.map +1 -0
  50. package/lib/commonjs/types/AdProps.js +6 -0
  51. package/lib/commonjs/types/AdProps.js.map +1 -0
  52. package/lib/commonjs/types/AdViewProps.js +6 -0
  53. package/lib/commonjs/types/AdViewProps.js.map +1 -0
  54. package/lib/commonjs/types/AppLovinMAX.js +6 -0
  55. package/lib/commonjs/types/AppLovinMAX.js.map +1 -0
  56. package/lib/commonjs/types/AppOpenAd.js +6 -0
  57. package/lib/commonjs/types/AppOpenAd.js.map +1 -0
  58. package/lib/commonjs/types/BannerAd.js +6 -0
  59. package/lib/commonjs/types/BannerAd.js.map +1 -0
  60. package/lib/commonjs/types/CMPError.js +6 -0
  61. package/lib/commonjs/types/CMPError.js.map +1 -0
  62. package/lib/commonjs/types/Configuration.js +6 -0
  63. package/lib/commonjs/types/Configuration.js.map +1 -0
  64. package/lib/commonjs/types/FullscreenAd.js +6 -0
  65. package/lib/commonjs/types/FullscreenAd.js.map +1 -0
  66. package/lib/commonjs/types/InterstitialAd.js +6 -0
  67. package/lib/commonjs/types/InterstitialAd.js.map +1 -0
  68. package/lib/commonjs/types/MRecAd.js +6 -0
  69. package/lib/commonjs/types/MRecAd.js.map +1 -0
  70. package/lib/commonjs/types/NativeAd.js +2 -0
  71. package/lib/commonjs/types/NativeAd.js.map +1 -0
  72. package/lib/commonjs/types/NativeAdViewProps.js +6 -0
  73. package/lib/commonjs/types/NativeAdViewProps.js.map +1 -0
  74. package/lib/commonjs/types/Privacy.js +2 -0
  75. package/lib/commonjs/types/Privacy.js.map +1 -0
  76. package/lib/commonjs/types/RewardedAd.js +6 -0
  77. package/lib/commonjs/types/RewardedAd.js.map +1 -0
  78. package/lib/commonjs/types/TargetingData.js +6 -0
  79. package/lib/commonjs/types/TargetingData.js.map +1 -0
  80. package/lib/commonjs/types/ViewAd.js +6 -0
  81. package/lib/commonjs/types/ViewAd.js.map +1 -0
  82. package/lib/commonjs/types/index.js +61 -0
  83. package/lib/commonjs/types/index.js.map +1 -0
  84. package/lib/module/AdView.js +335 -0
  85. package/lib/module/AdView.js.map +1 -0
  86. package/lib/module/AppLovinMAX.js +48 -0
  87. package/lib/module/AppLovinMAX.js.map +1 -0
  88. package/lib/module/AppOpenAd.js +96 -0
  89. package/lib/module/AppOpenAd.js.map +1 -0
  90. package/lib/module/BannerAd.js +133 -0
  91. package/lib/module/BannerAd.js.map +1 -0
  92. package/lib/module/EventEmitter.js +24 -0
  93. package/lib/module/EventEmitter.js.map +1 -0
  94. package/lib/module/InterstitialAd.js +96 -0
  95. package/lib/module/InterstitialAd.js.map +1 -0
  96. package/lib/module/MRecAd.js +111 -0
  97. package/lib/module/MRecAd.js.map +1 -0
  98. package/lib/module/Privacy.js +6 -0
  99. package/lib/module/Privacy.js.map +1 -0
  100. package/lib/module/RewardedAd.js +110 -0
  101. package/lib/module/RewardedAd.js.map +1 -0
  102. package/lib/module/TargetingData.js +175 -0
  103. package/lib/module/TargetingData.js.map +1 -0
  104. package/lib/module/index.js +14 -0
  105. package/lib/module/index.js.map +1 -0
  106. package/lib/module/nativeAd/NativeAdView.js +139 -0
  107. package/lib/module/nativeAd/NativeAdView.js.map +1 -0
  108. package/lib/module/nativeAd/NativeAdViewComponents.js +181 -0
  109. package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -0
  110. package/lib/module/nativeAd/NativeAdViewProvider.js +28 -0
  111. package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -0
  112. package/lib/module/types/AdEvent.js +2 -0
  113. package/lib/module/types/AdEvent.js.map +1 -0
  114. package/lib/module/types/AdInfo.js +52 -0
  115. package/lib/module/types/AdInfo.js.map +1 -0
  116. package/lib/module/types/AdProps.js +2 -0
  117. package/lib/module/types/AdProps.js.map +1 -0
  118. package/lib/module/types/AdViewProps.js +2 -0
  119. package/lib/module/types/AdViewProps.js.map +1 -0
  120. package/lib/module/types/AppLovinMAX.js +2 -0
  121. package/lib/module/types/AppLovinMAX.js.map +1 -0
  122. package/lib/module/types/AppOpenAd.js +2 -0
  123. package/lib/module/types/AppOpenAd.js.map +1 -0
  124. package/lib/module/types/BannerAd.js +2 -0
  125. package/lib/module/types/BannerAd.js.map +1 -0
  126. package/lib/module/types/CMPError.js +2 -0
  127. package/lib/module/types/CMPError.js.map +1 -0
  128. package/lib/module/types/Configuration.js +2 -0
  129. package/lib/module/types/Configuration.js.map +1 -0
  130. package/lib/module/types/FullscreenAd.js +2 -0
  131. package/lib/module/types/FullscreenAd.js.map +1 -0
  132. package/lib/module/types/InterstitialAd.js +2 -0
  133. package/lib/module/types/InterstitialAd.js.map +1 -0
  134. package/lib/module/types/MRecAd.js +2 -0
  135. package/lib/module/types/MRecAd.js.map +1 -0
  136. package/lib/module/types/NativeAd.js +2 -0
  137. package/lib/module/types/NativeAd.js.map +1 -0
  138. package/lib/module/types/NativeAdViewProps.js +2 -0
  139. package/lib/module/types/NativeAdViewProps.js.map +1 -0
  140. package/lib/module/types/Privacy.js +2 -0
  141. package/lib/module/types/Privacy.js.map +1 -0
  142. package/lib/module/types/RewardedAd.js +2 -0
  143. package/lib/module/types/RewardedAd.js.map +1 -0
  144. package/lib/module/types/TargetingData.js +2 -0
  145. package/lib/module/types/TargetingData.js.map +1 -0
  146. package/lib/module/types/ViewAd.js +2 -0
  147. package/lib/module/types/ViewAd.js.map +1 -0
  148. package/lib/module/types/index.js +6 -0
  149. package/lib/module/types/index.js.map +1 -0
  150. package/lib/typescript/src/AdView.d.ts +115 -0
  151. package/lib/typescript/src/AdView.d.ts.map +1 -0
  152. package/lib/typescript/src/AppLovinMAX.d.ts +73 -0
  153. package/lib/typescript/src/AppLovinMAX.d.ts.map +1 -0
  154. package/lib/typescript/src/AppOpenAd.d.ts +4 -0
  155. package/lib/typescript/src/AppOpenAd.d.ts.map +1 -0
  156. package/lib/typescript/src/BannerAd.d.ts +4 -0
  157. package/lib/typescript/src/BannerAd.d.ts.map +1 -0
  158. package/lib/typescript/src/EventEmitter.d.ts +4 -0
  159. package/lib/typescript/src/EventEmitter.d.ts.map +1 -0
  160. package/lib/typescript/src/InterstitialAd.d.ts +4 -0
  161. package/lib/typescript/src/InterstitialAd.d.ts.map +1 -0
  162. package/lib/typescript/src/MRecAd.d.ts +4 -0
  163. package/lib/typescript/src/MRecAd.d.ts.map +1 -0
  164. package/lib/typescript/src/Privacy.d.ts +3 -0
  165. package/lib/typescript/src/Privacy.d.ts.map +1 -0
  166. package/lib/typescript/src/RewardedAd.d.ts +4 -0
  167. package/lib/typescript/src/RewardedAd.d.ts.map +1 -0
  168. package/lib/typescript/src/TargetingData.d.ts +26 -0
  169. package/lib/typescript/src/TargetingData.d.ts.map +1 -0
  170. package/lib/typescript/src/index.d.ts +14 -0
  171. package/lib/typescript/src/index.d.ts.map +1 -0
  172. package/lib/typescript/src/nativeAd/NativeAdView.d.ts +42 -0
  173. package/lib/typescript/src/nativeAd/NativeAdView.d.ts.map +1 -0
  174. package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts +11 -0
  175. package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -0
  176. package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts +16 -0
  177. package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -0
  178. package/lib/typescript/src/types/AdEvent.d.ts +15 -0
  179. package/lib/typescript/src/types/AdEvent.d.ts.map +1 -0
  180. package/lib/typescript/src/types/AdInfo.d.ts +295 -0
  181. package/lib/typescript/src/types/AdInfo.d.ts.map +1 -0
  182. package/lib/typescript/src/types/AdProps.d.ts +58 -0
  183. package/lib/typescript/src/types/AdProps.d.ts.map +1 -0
  184. package/lib/typescript/src/types/AdViewProps.d.ts +73 -0
  185. package/lib/typescript/src/types/AdViewProps.d.ts.map +1 -0
  186. package/lib/typescript/src/types/AppLovinMAX.d.ts +133 -0
  187. package/lib/typescript/src/types/AppLovinMAX.d.ts.map +1 -0
  188. package/lib/typescript/src/types/AppOpenAd.d.ts +3 -0
  189. package/lib/typescript/src/types/AppOpenAd.d.ts.map +1 -0
  190. package/lib/typescript/src/types/BannerAd.d.ts +42 -0
  191. package/lib/typescript/src/types/BannerAd.d.ts.map +1 -0
  192. package/lib/typescript/src/types/CMPError.d.ts +20 -0
  193. package/lib/typescript/src/types/CMPError.d.ts.map +1 -0
  194. package/lib/typescript/src/types/Configuration.d.ts +33 -0
  195. package/lib/typescript/src/types/Configuration.d.ts.map +1 -0
  196. package/lib/typescript/src/types/FullscreenAd.d.ts +123 -0
  197. package/lib/typescript/src/types/FullscreenAd.d.ts.map +1 -0
  198. package/lib/typescript/src/types/InterstitialAd.d.ts +3 -0
  199. package/lib/typescript/src/types/InterstitialAd.d.ts.map +1 -0
  200. package/lib/typescript/src/types/MRecAd.d.ts +12 -0
  201. package/lib/typescript/src/types/MRecAd.d.ts.map +1 -0
  202. package/lib/typescript/src/types/NativeAd.d.ts +42 -0
  203. package/lib/typescript/src/types/NativeAd.d.ts.map +1 -0
  204. package/lib/typescript/src/types/NativeAdViewProps.d.ts +15 -0
  205. package/lib/typescript/src/types/NativeAdViewProps.d.ts.map +1 -0
  206. package/lib/typescript/src/types/Privacy.d.ts +35 -0
  207. package/lib/typescript/src/types/Privacy.d.ts.map +1 -0
  208. package/lib/typescript/src/types/RewardedAd.d.ts +18 -0
  209. package/lib/typescript/src/types/RewardedAd.d.ts.map +1 -0
  210. package/lib/typescript/src/types/TargetingData.d.ts +43 -0
  211. package/lib/typescript/src/types/TargetingData.d.ts.map +1 -0
  212. package/lib/typescript/src/types/ViewAd.d.ts +141 -0
  213. package/lib/typescript/src/types/ViewAd.d.ts.map +1 -0
  214. package/lib/typescript/src/types/index.d.ts +6 -0
  215. package/lib/typescript/src/types/index.d.ts.map +1 -0
  216. package/package.json +102 -21
  217. package/react-native-applovin-max.podspec +29 -5
  218. package/src/AdView.tsx +83 -26
  219. package/src/AppLovinMAX.ts +1 -1
  220. package/src/InterstitialAd.ts +1 -3
  221. package/src/MRecAd.ts +2 -8
  222. package/src/TargetingData.ts +2 -15
  223. package/src/index.ts +9 -10
  224. package/src/nativeAd/NativeAdView.tsx +33 -49
  225. package/src/nativeAd/NativeAdViewComponents.tsx +22 -31
  226. package/src/types/AdViewProps.ts +29 -1
  227. package/android/.project +0 -17
  228. package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
  229. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  230. package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  231. package/android/gradlew +0 -172
  232. package/android/gradlew.bat +0 -84
  233. package/ios/AppLovinMAX.xcodeproj/project.pbxproj +0 -368
  234. package/ios/AppLovinMAX.xcodeproj/xcshareddata/xcschemes/AppLovinMAX.xcscheme +0 -67
  235. package/ios/AppLovinMAX.xcworkspace/contents.xcworkspacedata +0 -10
  236. package/ios/AppLovinMAX.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  237. package/ios/Podfile +0 -40
  238. package/ios/Podfile.lock +0 -373
@@ -29,11 +29,12 @@ import java.util.List;
29
29
  import java.util.Map;
30
30
  import java.util.concurrent.atomic.AtomicBoolean;
31
31
 
32
+ import androidx.annotation.NonNull;
32
33
  import androidx.annotation.Nullable;
33
34
 
34
35
  public class AppLovinMAXNativeAdView
35
- extends ReactViewGroup
36
- implements MaxAdRevenueListener, View.OnLayoutChangeListener, ViewGroup.OnHierarchyChangeListener
36
+ extends ReactViewGroup
37
+ implements MaxAdRevenueListener, View.OnLayoutChangeListener, ViewGroup.OnHierarchyChangeListener
37
38
  {
38
39
  private static final int TITLE_LABEL_TAG = 1;
39
40
  private static final int MEDIA_VIEW_CONTAINER_TAG = 2;
@@ -172,10 +173,10 @@ public class AppLovinMAXNativeAdView
172
173
  /// Ad Loader Listener
173
174
 
174
175
  private class NativeAdListener
175
- extends MaxNativeAdListener
176
+ extends MaxNativeAdListener
176
177
  {
177
178
  @Override
178
- public void onNativeAdLoaded(@Nullable final MaxNativeAdView nativeAdView, final MaxAd ad)
179
+ public void onNativeAdLoaded(@Nullable final MaxNativeAdView nativeAdView, @NonNull final MaxAd ad)
179
180
  {
180
181
  AppLovinMAXModule.d( "Native ad loaded: " + ad );
181
182
 
@@ -203,7 +204,7 @@ public class AppLovinMAXNativeAdView
203
204
  }
204
205
 
205
206
  @Override
206
- public void onNativeAdLoadFailed(final String adUnitId, final MaxError error)
207
+ public void onNativeAdLoadFailed(@NonNull final String adUnitId, @NonNull final MaxError error)
207
208
  {
208
209
  isLoading.set( false );
209
210
 
@@ -214,7 +215,7 @@ public class AppLovinMAXNativeAdView
214
215
  }
215
216
 
216
217
  @Override
217
- public void onNativeAdClicked(final MaxAd ad)
218
+ public void onNativeAdClicked(@NonNull final MaxAd ad)
218
219
  {
219
220
  WritableMap adInfo = AppLovinMAXModule.getInstance().getAdInfo( ad );
220
221
  reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( getId(), "onAdClickedEvent", adInfo );
@@ -224,7 +225,7 @@ public class AppLovinMAXNativeAdView
224
225
  /// Ad Revenue Listener
225
226
 
226
227
  @Override
227
- public void onAdRevenuePaid(final MaxAd ad)
228
+ public void onAdRevenuePaid(@NonNull final MaxAd ad)
228
229
  {
229
230
  WritableMap adRevenueInfo = AppLovinMAXModule.getInstance().getAdRevenueInfo( ad );
230
231
  reactContext.getJSModule( RCTEventEmitter.class ).receiveEvent( getId(), "onAdRevenuePaidEvent", adRevenueInfo );
@@ -406,9 +407,9 @@ public class AppLovinMAXNativeAdView
406
407
  }
407
408
 
408
409
  static class RenderNativeAdTask
409
- implements Runnable
410
+ implements Runnable
410
411
  {
411
- private AppLovinMAXNativeAdView nativeAdView;
412
+ private final AppLovinMAXNativeAdView nativeAdView;
412
413
 
413
414
  RenderNativeAdTask(AppLovinMAXNativeAdView nativeAdView) { this.nativeAdView = nativeAdView; }
414
415
 
@@ -443,7 +444,7 @@ public class AppLovinMAXNativeAdView
443
444
  {
444
445
  // Renders the ad only after the last asset view is set
445
446
  renderNativeAdHandler.removeCallbacksAndMessages( null );
446
- renderNativeAdHandler.postDelayed( renderNativeAdTask, 1 );
447
+ renderNativeAdHandler.postDelayed( renderNativeAdTask, 50 );
447
448
  }
448
449
  }
449
450
 
@@ -493,7 +494,7 @@ public class AppLovinMAXNativeAdView
493
494
 
494
495
  if ( ad.getStarRating() != null )
495
496
  {
496
- nativeAdInfo.putDouble( "starRating", ad.getStarRating().doubleValue() );
497
+ nativeAdInfo.putDouble( "starRating", ad.getStarRating() );
497
498
  }
498
499
 
499
500
  // The aspect ratio can be 0.0f when it is not provided by the network.
@@ -520,7 +521,7 @@ public class AppLovinMAXNativeAdView
520
521
 
521
522
  if ( ad.getStarRating() != null )
522
523
  {
523
- jsNativeAd.putDouble( "starRating", ad.getStarRating().doubleValue() );
524
+ jsNativeAd.putDouble( "starRating", ad.getStarRating() );
524
525
  }
525
526
 
526
527
  MaxNativeAdImage icon = ad.getIcon();
@@ -1,6 +1,5 @@
1
1
  package com.applovin.reactnative;
2
2
 
3
- import com.facebook.react.bridge.ReactApplicationContext;
4
3
  import com.facebook.react.bridge.ReadableArray;
5
4
  import com.facebook.react.bridge.ReadableMap;
6
5
  import com.facebook.react.common.MapBuilder;
@@ -14,13 +13,13 @@ import androidx.annotation.NonNull;
14
13
  import androidx.annotation.Nullable;
15
14
 
16
15
  public class AppLovinMAXNativeAdViewManager
17
- extends ViewGroupManager<AppLovinMAXNativeAdView>
16
+ extends ViewGroupManager<AppLovinMAXNativeAdView>
18
17
  {
19
18
  public static final String REACT_CLASS = "AppLovinMAXNativeAdView";
20
19
 
21
20
  public final int COMMAND_LOAD_AD = 1;
22
21
 
23
- public AppLovinMAXNativeAdViewManager(final ReactApplicationContext callerContext) { }
22
+ public AppLovinMAXNativeAdViewManager() { }
24
23
 
25
24
  @NonNull
26
25
  @Override
@@ -44,11 +43,11 @@ public class AppLovinMAXNativeAdViewManager
44
43
  {
45
44
  // mapping Android events to JavaScript events
46
45
  return MapBuilder.<String, Object>builder()
47
- .put( "onAdLoadedEvent", MapBuilder.of( "registrationName", "onAdLoadedEvent" ) )
48
- .put( "onAdLoadFailedEvent", MapBuilder.of( "registrationName", "onAdLoadFailedEvent" ) )
49
- .put( "onAdClickedEvent", MapBuilder.of( "registrationName", "onAdClickedEvent" ) )
50
- .put( "onAdRevenuePaidEvent", MapBuilder.of( "registrationName", "onAdRevenuePaidEvent" ) )
51
- .build();
46
+ .put( "onAdLoadedEvent", MapBuilder.of( "registrationName", "onAdLoadedEvent" ) )
47
+ .put( "onAdLoadFailedEvent", MapBuilder.of( "registrationName", "onAdLoadFailedEvent" ) )
48
+ .put( "onAdClickedEvent", MapBuilder.of( "registrationName", "onAdClickedEvent" ) )
49
+ .put( "onAdRevenuePaidEvent", MapBuilder.of( "registrationName", "onAdRevenuePaidEvent" ) )
50
+ .build();
52
51
  }
53
52
 
54
53
  /// Call from JavaScript
@@ -58,7 +57,7 @@ public class AppLovinMAXNativeAdViewManager
58
57
  public Map<String, Integer> getCommandsMap()
59
58
  {
60
59
  return MapBuilder.of(
61
- "loadAd", COMMAND_LOAD_AD
60
+ "loadAd", COMMAND_LOAD_AD
62
61
  );
63
62
  }
64
63
 
@@ -66,11 +65,9 @@ public class AppLovinMAXNativeAdViewManager
66
65
  @Override
67
66
  public void receiveCommand(@NonNull final AppLovinMAXNativeAdView root, final int commandId, @Nullable final ReadableArray args)
68
67
  {
69
- switch ( commandId )
68
+ if ( commandId == COMMAND_LOAD_AD )
70
69
  {
71
- case COMMAND_LOAD_AD:
72
- root.loadAd();
73
- break;
70
+ root.loadAd();
74
71
  }
75
72
  }
76
73
 
@@ -149,7 +146,7 @@ public class AppLovinMAXNativeAdViewManager
149
146
  }
150
147
 
151
148
  @Override
152
- public void onAfterUpdateTransaction(final AppLovinMAXNativeAdView view)
149
+ public void onAfterUpdateTransaction(@NonNull final AppLovinMAXNativeAdView view)
153
150
  {
154
151
  super.onAfterUpdateTransaction( view );
155
152
 
@@ -14,7 +14,7 @@ import androidx.annotation.NonNull;
14
14
  * Created by Thomas So on July 11 2020
15
15
  */
16
16
  public class AppLovinMAXPackage
17
- implements ReactPackage
17
+ implements ReactPackage
18
18
  {
19
19
  @Override
20
20
  public @NonNull List<NativeModule> createNativeModules(@NonNull final ReactApplicationContext reactContext)
@@ -28,8 +28,8 @@ public class AppLovinMAXPackage
28
28
  public @NonNull List<ViewManager> createViewManagers(@NonNull final ReactApplicationContext reactContext)
29
29
  {
30
30
  List<ViewManager> viewManagers = new ArrayList<>( 2 );
31
- viewManagers.add( new AppLovinMAXAdViewManager( reactContext ) );
32
- viewManagers.add( new AppLovinMAXNativeAdViewManager( reactContext ) );
31
+ viewManagers.add( new AppLovinMAXAdViewManager() );
32
+ viewManagers.add( new AppLovinMAXNativeAdViewManager() );
33
33
  return viewManagers;
34
34
  }
35
35
  }
package/ios/AppLovinMAX.h CHANGED
@@ -49,7 +49,7 @@ NS_ASSUME_NONNULL_BEGIN
49
49
  /**
50
50
  * Returns a dictionay value of adLoadFailedInfo for the specified error.
51
51
  */
52
- - (NSDictionary<NSString *, id> *)adLoadFailedInfoForAd:(NSString *)adUnitIdentifier withError:(MAError *)error;
52
+ - (NSDictionary<NSString *, id> *)adLoadFailedInfoForAd:(NSString *)adUnitIdentifier withError:(nullable MAError *)error;
53
53
 
54
54
  /**
55
55
  * Returns a dictionay value of adDisplayFailedInfo for the specified ad and error.
package/ios/AppLovinMAX.m CHANGED
@@ -136,6 +136,9 @@ static NSString *const ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT = @"OnAppOpenAdFail
136
136
  static NSString *const ON_APPOPEN_AD_HIDDEN_EVENT = @"OnAppOpenAdHiddenEvent";
137
137
  static NSString *const ON_APPOPEN_AD_REVENUE_PAID = @"OnAppOpenAdRevenuePaid";
138
138
 
139
+ static NSString *const ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOADED_EVENT = @"OnNativeUIComponentAdviewAdLoadedEvent";
140
+ static NSString *const ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOAD_FAILED_EVENT = @"OnNativeUIComponentAdviewAdLoadFailedEvent";
141
+
139
142
  static NSString *const TOP_CENTER = @"top_center";
140
143
  static NSString *const TOP_LEFT = @"top_left";
141
144
  static NSString *const TOP_RIGHT = @"top_right";
@@ -577,7 +580,7 @@ RCT_EXPORT_METHOD(showCmpForExistingUser:(RCTPromiseResolveBlock)resolve :(RCTPr
577
580
  [self logUninitializedAccessError: @"showCmpForExistingUser" withPromiseReject: reject];
578
581
  return;
579
582
  }
580
-
583
+
581
584
  [self.sdk.cmpService showCMPForExistingUserWithCompletion:^(ALCMPError * _Nullable error) {
582
585
 
583
586
  if ( !error )
@@ -585,7 +588,7 @@ RCT_EXPORT_METHOD(showCmpForExistingUser:(RCTPromiseResolveBlock)resolve :(RCTPr
585
588
  resolve(nil);
586
589
  return;
587
590
  }
588
-
591
+
589
592
  resolve(@{@"code" : @(error.code),
590
593
  @"message" : error.message ?: @"",
591
594
  @"cmpCode" : @(error.cmpCode),
@@ -600,7 +603,7 @@ RCT_EXPORT_METHOD(hasSupportedCmp:(RCTPromiseResolveBlock)resolve :(RCTPromiseRe
600
603
  [self logUninitializedAccessError: @"hasSupportedCmp" withPromiseReject: reject];
601
604
  return;
602
605
  }
603
-
606
+
604
607
  resolve(@([self.sdk.cmpService hasSupportedCMP]));
605
608
  }
606
609
 
@@ -1266,6 +1269,34 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
1266
1269
  [appOpenAd setLocalExtraParameterForKey: key value: value];
1267
1270
  }
1268
1271
 
1272
+ #pragma mark - AdView Preloading
1273
+
1274
+ RCT_EXPORT_METHOD(preloadNativeUIComponentAdView:(NSString *)adUnitIdentifier :(NSString *)adFormatStr :(NSString *)placement :(NSString *)customData :(NSDictionary<NSString *, id> *)extraParameterDict :(NSDictionary<NSString *, id> *)localExtraParameterDict :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
1275
+ {
1276
+ MAAdFormat *adFormat;
1277
+
1278
+ if ( [MAAdFormat.banner.label isEqualToString: adFormatStr] )
1279
+ {
1280
+ adFormat = DEVICE_SPECIFIC_ADVIEW_AD_FORMAT;
1281
+ }
1282
+ else if ( [MAAdFormat.mrec.label isEqualToString: adFormatStr] )
1283
+ {
1284
+ adFormat = MAAdFormat.mrec;
1285
+ }
1286
+ else
1287
+ {
1288
+ [self logInvalidAdFormat: adFormat withPromiseReject: reject];
1289
+ return;
1290
+ }
1291
+
1292
+ [AppLovinMAXAdView preloadNativeUIComponentAdView:adUnitIdentifier adFormat:adFormat placement:placement customData:customData extraParameters:extraParameterDict localExtraParameters:localExtraParameterDict withPromiseResolver:resolve withPromiseRejecter:reject];
1293
+ }
1294
+
1295
+ RCT_EXPORT_METHOD(destroyNativeUIComponentAdView:(NSString *)adUnitIdentifier :(RCTPromiseResolveBlock)resolve :(RCTPromiseRejectBlock)reject)
1296
+ {
1297
+ [AppLovinMAXAdView destroyNativeUIComponentAdView:adUnitIdentifier withPromiseResolver:resolve withPromiseRejecter:reject];
1298
+ }
1299
+
1269
1300
  #pragma mark - Ad Callbacks
1270
1301
 
1271
1302
  - (void)didLoadAd:(MAAd *)ad
@@ -2040,7 +2071,20 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2040
2071
 
2041
2072
  - (void)logInvalidAdFormat:(MAAdFormat *)adFormat
2042
2073
  {
2043
- [self log: @"invalid ad format: %@, from %@", adFormat, [NSThread callStackSymbols]];
2074
+ [self logInvalidAdFormat: adFormat withPromiseReject: nil];
2075
+ }
2076
+
2077
+ - (void)logInvalidAdFormat:(MAAdFormat *)adFormat withPromiseReject:(nullable RCTPromiseRejectBlock)reject
2078
+ {
2079
+ NSString *message = [NSString stringWithFormat:@"invalid ad format: %@, from %@", adFormat, [NSThread callStackSymbols]];
2080
+
2081
+ if ( !reject )
2082
+ {
2083
+ NSLog(@"[%@] [%@] %@", SDK_TAG, TAG, message);
2084
+ return;
2085
+ }
2086
+
2087
+ reject(TAG, message, nil);
2044
2088
  }
2045
2089
 
2046
2090
  - (void)logUninitializedAccessError:(NSString *)callingMethod
@@ -2051,13 +2095,13 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2051
2095
  - (void)logUninitializedAccessError:(NSString *)callingMethod withPromiseReject:(nullable RCTPromiseRejectBlock)reject
2052
2096
  {
2053
2097
  NSString *message = [NSString stringWithFormat:@"ERROR: Failed to execute %@() - please ensure the AppLovin MAX React Native module has been initialized by calling 'AppLovinMAX.initialize(...);'!", callingMethod];
2054
-
2098
+
2055
2099
  if ( !reject )
2056
2100
  {
2057
2101
  NSLog(@"[%@] [%@] %@", SDK_TAG, TAG, message);
2058
2102
  return;
2059
2103
  }
2060
-
2104
+
2061
2105
  reject(TAG, message, nil);
2062
2106
  }
2063
2107
 
@@ -2196,10 +2240,10 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2196
2240
  @"dspName" : ad.DSPName ?: @"",
2197
2241
  @"size" : @{@"width" : @(ad.size.width),
2198
2242
  @"height" : @(ad.size.height)}
2199
- };
2243
+ };
2200
2244
  }
2201
2245
 
2202
- - (NSDictionary<NSString *, id> *)adLoadFailedInfoForAd:(NSString *)adUnitIdentifier withError:(MAError *)error
2246
+ - (NSDictionary<NSString *, id> *)adLoadFailedInfoForAd:(NSString *)adUnitIdentifier withError:(nullable MAError *)error
2203
2247
  {
2204
2248
  return ( error ) ?
2205
2249
  @{@"adUnitId": adUnitIdentifier,
@@ -2343,7 +2387,7 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2343
2387
  [self log: @"Failed to set Amazon result - unable to find interstitial"];
2344
2388
  return;
2345
2389
  }
2346
-
2390
+
2347
2391
  [interstitial setLocalExtraParameterForKey: key value: result];
2348
2392
  }
2349
2393
  else if ( adFormat == MAAdFormat.rewarded )
@@ -2354,13 +2398,13 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2354
2398
  [self log: @"Failed to set Amazon result - unable to find rewarded ad"];
2355
2399
  return;
2356
2400
  }
2357
-
2401
+
2358
2402
  [rewardedAd setLocalExtraParameterForKey: key value: result];
2359
2403
  }
2360
2404
  else // MAAdFormat.banner or MAAdFormat.mrec
2361
2405
  {
2362
2406
  MAAdView *adView = [AppLovinMAXAdView sharedWithAdUnitIdentifier: adUnitIdentifier];
2363
-
2407
+
2364
2408
  if ( !adView )
2365
2409
  {
2366
2410
  adView = [self retrieveAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat];
@@ -2430,7 +2474,10 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2430
2474
  ON_APPOPEN_AD_DISPLAYED_EVENT,
2431
2475
  ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT,
2432
2476
  ON_APPOPEN_AD_HIDDEN_EVENT,
2433
- ON_APPOPEN_AD_REVENUE_PAID];
2477
+ ON_APPOPEN_AD_REVENUE_PAID,
2478
+
2479
+ ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOADED_EVENT,
2480
+ ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOAD_FAILED_EVENT];
2434
2481
  }
2435
2482
 
2436
2483
  - (NSDictionary *)constantsToExport
@@ -2474,6 +2521,9 @@ RCT_EXPORT_METHOD(setAppOpenAdLocalExtraParameter:(NSString *)adUnitIdentifier :
2474
2521
  @"ON_APPOPEN_AD_HIDDEN_EVENT" : ON_APPOPEN_AD_HIDDEN_EVENT,
2475
2522
  @"ON_APPOPEN_AD_REVENUE_PAID" : ON_APPOPEN_AD_REVENUE_PAID,
2476
2523
 
2524
+ @"ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOADED_EVENT" : ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOADED_EVENT,
2525
+ @"ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOAD_FAILED_EVENT" : ON_NATIVE_UI_COMPONENT_ADVIEW_AD_LOAD_FAILED_EVENT,
2526
+
2477
2527
  @"TOP_CENTER_POSITION" : TOP_CENTER,
2478
2528
  @"TOP_LEFT_POSITION" : TOP_LEFT,
2479
2529
  @"TOP_RIGHT_POSITION" : TOP_RIGHT,
@@ -13,8 +13,20 @@ NS_ASSUME_NONNULL_BEGIN
13
13
 
14
14
  @interface AppLovinMAXAdView : UIView
15
15
 
16
+ @property (nonatomic, copy) RCTDirectEventBlock onAdLoadedEvent;
17
+ @property (nonatomic, copy) RCTDirectEventBlock onAdLoadFailedEvent;
18
+ @property (nonatomic, copy) RCTDirectEventBlock onAdDisplayFailedEvent;
19
+ @property (nonatomic, copy) RCTDirectEventBlock onAdClickedEvent;
20
+ @property (nonatomic, copy) RCTDirectEventBlock onAdExpandedEvent;
21
+ @property (nonatomic, copy) RCTDirectEventBlock onAdCollapsedEvent;
22
+ @property (nonatomic, copy) RCTDirectEventBlock onAdRevenuePaidEvent;
23
+
16
24
  + (MAAdView *)sharedWithAdUnitIdentifier:(NSString *)adUnitIdentifier;
17
25
 
26
+ + (void)preloadNativeUIComponentAdView:(NSString *)adUnitIdentifier adFormat:(MAAdFormat *)adFormat placement:(NSString *)placement customData:(NSString *)customData extraParameters:(NSDictionary<NSString *, NSString *> *)extraParameters localExtraParameters:(NSDictionary<NSString *, NSString *> *)localExtraParameters withPromiseResolver:(RCTPromiseResolveBlock)resolve withPromiseRejecter:(RCTPromiseRejectBlock)reject;
27
+
28
+ + (void)destroyNativeUIComponentAdView:(NSString *)adUnitIdentifier withPromiseResolver:(RCTPromiseResolveBlock)resolve withPromiseRejecter:(RCTPromiseRejectBlock)reject;
29
+
18
30
  - (void)loadAd;
19
31
 
20
32
  @end