react-native-daro 1.0.13 → 1.0.15

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 (164) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +30 -30
  3. package/android/build.gradle +42 -59
  4. package/android/src/admob/java/com/daro/reactnative/DaroSdkBridge.kt +23 -0
  5. package/android/src/main/AndroidManifest.xml +1 -2
  6. package/android/src/main/java/com/{darom → daro/reactnative}/DaroMAdBannerViewManager.kt +4 -4
  7. package/android/src/main/java/com/{darom → daro/reactnative}/DaroMAdNativeViewManager.kt +4 -4
  8. package/android/src/main/java/com/{darom → daro/reactnative}/DaroMModule.kt +44 -45
  9. package/android/src/main/java/com/{darom → daro/reactnative}/DaroMPackage.kt +1 -1
  10. package/android/src/main/java/com/{darom → daro/reactnative}/constants/InternalDaroMBannerSize.kt +1 -1
  11. package/android/src/main/java/com/{darom → daro/reactnative}/event/DaroMEvent.kt +1 -1
  12. package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMBannerViewModuleImpl.kt +2 -2
  13. package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMInterstitialModuleImpl.kt +26 -26
  14. package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMLightPopupModuleImpl.kt +30 -29
  15. package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMRewardedAdModuleImpl.kt +27 -27
  16. package/android/src/main/java/com/{darom → daro/reactnative}/util/AdInfoUtil.kt +25 -1
  17. package/android/src/main/java/com/{darom → daro/reactnative}/util/EventEmitterUtil.kt +2 -2
  18. package/android/src/main/java/com/daro/reactnative/view/DaroMAdBannerViewContainer.kt +417 -0
  19. package/android/src/main/java/com/{darom → daro/reactnative}/view/DaroMAdNativeViewContainer.kt +4 -4
  20. package/app.plugin.js +1 -0
  21. package/ios/DaroMAdBannerViewManager.swift +1 -1
  22. package/ios/DaroMModule+AppOpen.swift +34 -31
  23. package/ios/DaroMModule+Interstitial.swift +29 -26
  24. package/ios/DaroMModule+LightPopup.swift +40 -33
  25. package/ios/DaroMModule+Rewarded.swift +35 -27
  26. package/ios/DaroMModule.mm +13 -13
  27. package/ios/DaroMModule.swift +20 -13
  28. package/ios/DaroMNativeAdViewManager.swift +1 -1
  29. package/ios/mediation/admob/DaroMediationDebugger.swift +11 -0
  30. package/ios/mediation/admob/DaroMediationTypes.swift +22 -0
  31. package/lib/commonjs/AdBannerView.js +6 -1
  32. package/lib/commonjs/AdBannerView.js.map +1 -1
  33. package/lib/commonjs/AppOpenAd.js +43 -17
  34. package/lib/commonjs/AppOpenAd.js.map +1 -1
  35. package/lib/commonjs/ErrorCode.js.map +1 -1
  36. package/lib/commonjs/EventEmitter.js.map +1 -1
  37. package/lib/commonjs/InterstitialAd.js +45 -17
  38. package/lib/commonjs/InterstitialAd.js.map +1 -1
  39. package/lib/commonjs/LightPopupAd.js +62 -43
  40. package/lib/commonjs/LightPopupAd.js.map +1 -1
  41. package/lib/commonjs/RewardedAd.js +44 -18
  42. package/lib/commonjs/RewardedAd.js.map +1 -1
  43. package/lib/commonjs/index.js +1 -1
  44. package/lib/commonjs/index.js.map +1 -1
  45. package/lib/commonjs/nativeAd/NativeAdView.js +5 -1
  46. package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -1
  47. package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -1
  48. package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -1
  49. package/lib/commonjs/package.json +1 -0
  50. package/lib/module/AdBannerView.js +6 -1
  51. package/lib/module/AdBannerView.js.map +1 -1
  52. package/lib/module/AppOpenAd.js +43 -17
  53. package/lib/module/AppOpenAd.js.map +1 -1
  54. package/lib/module/ErrorCode.js.map +1 -1
  55. package/lib/module/EventEmitter.js.map +1 -1
  56. package/lib/module/InterstitialAd.js +45 -17
  57. package/lib/module/InterstitialAd.js.map +1 -1
  58. package/lib/module/LightPopupAd.js +63 -43
  59. package/lib/module/LightPopupAd.js.map +1 -1
  60. package/lib/module/RewardedAd.js +44 -18
  61. package/lib/module/RewardedAd.js.map +1 -1
  62. package/lib/module/index.js +1 -1
  63. package/lib/module/index.js.map +1 -1
  64. package/lib/module/nativeAd/NativeAdView.js +5 -1
  65. package/lib/module/nativeAd/NativeAdView.js.map +1 -1
  66. package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -1
  67. package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -1
  68. package/lib/module/package.json +1 -0
  69. package/lib/typescript/commonjs/plugin/src/index.d.ts +19 -0
  70. package/lib/typescript/commonjs/plugin/src/index.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/plugin/src/skAdNetworkIds.d.ts +6 -0
  72. package/lib/typescript/commonjs/plugin/src/skAdNetworkIds.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/plugin/src/withAndroid.d.ts +8 -0
  74. package/lib/typescript/commonjs/plugin/src/withAndroid.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/plugin/src/withIos.d.ts +8 -0
  76. package/lib/typescript/commonjs/plugin/src/withIos.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/src/AdBannerView.d.ts +124 -2
  78. package/lib/typescript/commonjs/src/AdBannerView.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/src/AppOpenAd.d.ts +6 -0
  80. package/lib/typescript/commonjs/src/AppOpenAd.d.ts.map +1 -1
  81. package/lib/typescript/commonjs/src/ErrorCode.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/src/EventEmitter.d.ts.map +1 -1
  83. package/lib/typescript/commonjs/src/InterstitialAd.d.ts +6 -0
  84. package/lib/typescript/commonjs/src/InterstitialAd.d.ts.map +1 -1
  85. package/lib/typescript/commonjs/src/LightPopupAd.d.ts +6 -0
  86. package/lib/typescript/commonjs/src/LightPopupAd.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/src/RewardedAd.d.ts +6 -0
  88. package/lib/typescript/commonjs/src/RewardedAd.d.ts.map +1 -1
  89. package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts +124 -2
  90. package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
  93. package/lib/typescript/commonjs/src/types/AdBannerViewProps.d.ts +2 -2
  94. package/lib/typescript/commonjs/src/types/AdBannerViewProps.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/src/types/AdInfo.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/src/types/AdProps.d.ts +2 -2
  97. package/lib/typescript/commonjs/src/types/AdProps.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/src/types/DaroMMobileAds.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/src/types/NativeAdViewProps.d.ts.map +1 -1
  100. package/lib/typescript/module/plugin/src/index.d.ts +19 -0
  101. package/lib/typescript/module/plugin/src/index.d.ts.map +1 -0
  102. package/lib/typescript/module/plugin/src/skAdNetworkIds.d.ts +6 -0
  103. package/lib/typescript/module/plugin/src/skAdNetworkIds.d.ts.map +1 -0
  104. package/lib/typescript/module/plugin/src/withAndroid.d.ts +8 -0
  105. package/lib/typescript/module/plugin/src/withAndroid.d.ts.map +1 -0
  106. package/lib/typescript/module/plugin/src/withIos.d.ts +8 -0
  107. package/lib/typescript/module/plugin/src/withIos.d.ts.map +1 -0
  108. package/lib/typescript/module/src/AdBannerView.d.ts +124 -2
  109. package/lib/typescript/module/src/AdBannerView.d.ts.map +1 -1
  110. package/lib/typescript/module/src/AppOpenAd.d.ts +6 -0
  111. package/lib/typescript/module/src/AppOpenAd.d.ts.map +1 -1
  112. package/lib/typescript/module/src/ErrorCode.d.ts.map +1 -1
  113. package/lib/typescript/module/src/EventEmitter.d.ts.map +1 -1
  114. package/lib/typescript/module/src/InterstitialAd.d.ts +6 -0
  115. package/lib/typescript/module/src/InterstitialAd.d.ts.map +1 -1
  116. package/lib/typescript/module/src/LightPopupAd.d.ts +6 -0
  117. package/lib/typescript/module/src/LightPopupAd.d.ts.map +1 -1
  118. package/lib/typescript/module/src/RewardedAd.d.ts +6 -0
  119. package/lib/typescript/module/src/RewardedAd.d.ts.map +1 -1
  120. package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts +124 -2
  121. package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts.map +1 -1
  122. package/lib/typescript/module/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
  123. package/lib/typescript/module/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
  124. package/lib/typescript/module/src/types/AdBannerViewProps.d.ts +2 -2
  125. package/lib/typescript/module/src/types/AdBannerViewProps.d.ts.map +1 -1
  126. package/lib/typescript/module/src/types/AdInfo.d.ts.map +1 -1
  127. package/lib/typescript/module/src/types/AdProps.d.ts +2 -2
  128. package/lib/typescript/module/src/types/AdProps.d.ts.map +1 -1
  129. package/lib/typescript/module/src/types/DaroMMobileAds.d.ts.map +1 -1
  130. package/lib/typescript/module/src/types/NativeAdViewProps.d.ts.map +1 -1
  131. package/package.json +88 -105
  132. package/plugin/build/index.d.ts +18 -0
  133. package/plugin/build/index.js +71 -0
  134. package/plugin/build/skAdNetworkIds.d.ts +5 -0
  135. package/plugin/build/skAdNetworkIds.js +205 -0
  136. package/plugin/build/withAndroid.d.ts +7 -0
  137. package/plugin/build/withAndroid.js +140 -0
  138. package/plugin/build/withIos.d.ts +7 -0
  139. package/plugin/build/withIos.js +83 -0
  140. package/react-native-daro.podspec +25 -0
  141. package/src/AdBannerView.tsx +54 -17
  142. package/src/AppOpenAd.ts +59 -15
  143. package/src/ErrorCode.ts +1 -2
  144. package/src/EventEmitter.ts +5 -2
  145. package/src/InterstitialAd.ts +73 -17
  146. package/src/LightPopupAd.ts +86 -46
  147. package/src/RewardedAd.ts +70 -18
  148. package/src/index.tsx +1 -1
  149. package/src/nativeAd/NativeAdView.tsx +65 -14
  150. package/src/nativeAd/NativeAdViewComponents.tsx +54 -27
  151. package/src/nativeAd/NativeAdViewProvider.tsx +17 -7
  152. package/src/types/AdBannerViewProps.ts +11 -11
  153. package/src/types/AdInfo.ts +17 -17
  154. package/src/types/AdProps.ts +8 -9
  155. package/src/types/DaroMMobileAds.ts +3 -6
  156. package/src/types/NativeAdViewProps.ts +5 -5
  157. package/src/types/index.ts +1 -1
  158. package/android/gradle.properties +0 -5
  159. package/android/src/main/AndroidManifestNew.xml +0 -7
  160. package/android/src/main/java/com/darom/view/DaroMAdBannerViewContainer.kt +0 -163
  161. package/android/src/main/res/layout/layout_activity_transparent.xml +0 -7
  162. package/android/src/main/res/values/styles.xml +0 -11
  163. package/ios/DaroM-Bridging-Header.h +0 -6
  164. package/react-native-daro-m.podspec +0 -44
@@ -1,11 +1,12 @@
1
- import Daro
1
+ import React
2
2
  import UIKit
3
3
  // MARK: - LightPopup Ad
4
4
  extension DaroMModule {
5
5
 
6
- @objc(isLightPopupReady:::)
6
+ @objc(isLightPopupReady::::)
7
7
  func isLightPopupReady(
8
- _ adUnitId: String,
8
+ _ requestId: NSNumber,
9
+ adUnitId: String,
9
10
  resolve: RCTPromiseResolveBlock,
10
11
  reject: RCTPromiseRejectBlock
11
12
  ) {
@@ -14,61 +15,67 @@ extension DaroMModule {
14
15
  resolve(false)
15
16
  return
16
17
  }
17
- resolve(lightPopups[adUnitId]?.loadedAd != nil)
18
+ resolve(lightPopups[requestId.intValue]?.loadedAd != nil)
18
19
  }
19
20
 
20
- @objc(loadLightPopup:::)
21
+ @objc(loadLightPopup::::)
21
22
  func loadLightPopup(
22
- _ adUnitId: String,
23
+ _ requestId: NSNumber,
24
+ adUnitId: String,
23
25
  resolve: RCTPromiseResolveBlock,
24
26
  reject: RCTPromiseRejectBlock
25
27
  ) {
26
- let lightPopupLoader = retrieveLightPopupLoader(for: adUnitId)
28
+ let lightPopupLoader = retrieveLightPopupLoader(requestId: requestId.intValue, adUnitId: adUnitId)
27
29
  lightPopupLoader.loadAd()
28
30
  resolve(Void())
29
31
  }
30
32
 
31
- @objc(showLightPopup:::)
33
+ @objc(showLightPopup::::)
32
34
  func showLightPopup(
33
- _ adUnitId: String,
35
+ _ requestId: NSNumber,
36
+ adUnitId: String,
34
37
  resolve: @escaping RCTPromiseResolveBlock,
35
38
  reject: @escaping RCTPromiseRejectBlock
36
39
  ) {
37
- guard let loadedAd = lightPopups[adUnitId]?.loadedAd else {
40
+ guard let loadedAd = lightPopups[requestId.intValue]?.loadedAd else {
38
41
  reject("LIGHTPOPUP_NOT_LOADED", "LightPopup ad not loaded", nil)
39
42
  return
40
43
  }
44
+ let reqIdInt = requestId.intValue
41
45
  executeOnMainThread { [weak self] in
42
46
  guard let viewController = UIApplication.shared.windows.first?.rootViewController else {
43
47
  reject("VIEW_CONTROLLER_NOT_FOUND", "Root view controller not found", nil)
44
48
  return
45
49
  }
46
- self?.applyStoredConfiguration(to: loadedAd, for: adUnitId)
50
+ self?.applyStoredConfiguration(to: loadedAd, for: reqIdInt)
47
51
  loadedAd.show(viewController: viewController)
48
52
  resolve(Void())
49
53
  }
50
54
  }
51
55
 
52
- @objc(setLightPopupAdConfiguration::::)
56
+ @objc(setLightPopupAdConfiguration:::::)
53
57
  func setLightPopupAdConfiguration(
54
- _ adUnitId: String,
58
+ _ requestId: NSNumber,
59
+ adUnitId: String,
55
60
  configuration: [String: Any],
56
61
  resolve: RCTPromiseResolveBlock,
57
62
  reject: RCTPromiseRejectBlock
58
63
  ) {
59
- guard let loadedAd = lightPopups[adUnitId]?.loadedAd else {
60
- lightPopupConfigurations[adUnitId] = configuration
64
+ let reqIdInt = requestId.intValue
65
+ guard let loadedAd = lightPopups[reqIdInt]?.loadedAd else {
66
+ lightPopupConfigurations[reqIdInt] = configuration
61
67
  resolve(Void())
62
68
  return
63
69
  }
70
+ lightPopupConfigurations[reqIdInt] = configuration
64
71
  executeOnMainThread { [weak self] in
65
- self?.applyStoredConfiguration(to: loadedAd, for: adUnitId)
72
+ self?.applyStoredConfiguration(to: loadedAd, for: reqIdInt)
66
73
  }
67
74
  resolve(Void())
68
75
  }
69
76
 
70
- func applyStoredConfiguration(to ad: DaroLightPopupAd, for unitId: String) {
71
- if let configuration = lightPopupConfigurations[unitId] {
77
+ func applyStoredConfiguration(to ad: DaroLightPopupAd, for requestId: Int) {
78
+ if let configuration = lightPopupConfigurations[requestId] {
72
79
  let lightPopupConfig = DaroLightPopupConfiguration()
73
80
 
74
81
  func setColorIfValid(_ key: String, setter: (UIColor) -> Void) {
@@ -95,47 +102,47 @@ extension DaroMModule {
95
102
  }
96
103
  }
97
104
 
98
- func retrieveLightPopupLoader(for unitId: String) -> DaroLightPopupAdLoader {
99
- if let lightPopupAd = lightPopups[unitId] {
105
+ func retrieveLightPopupLoader(requestId: Int, adUnitId: String) -> DaroLightPopupAdLoader {
106
+ if let lightPopupAd = lightPopups[requestId] {
100
107
  return lightPopupAd.loader
101
108
  } else {
102
- let lightPopupLoader = DaroLightPopupAdLoader(unit: DaroAdUnit(unitId: unitId))
109
+ let lightPopupLoader = DaroLightPopupAdLoader(unit: DaroAdUnit(unitId: adUnitId))
103
110
 
104
111
  lightPopupLoader.listener.onAdClicked = { [weak self] adInfo in
105
- self?.sendEvent(with: .onLightPopupClickedEvent, body: adInfo?.toBody)
112
+ self?.sendEvent(with: .onLightPopupClickedEvent, body: adInfo?.toBody(requestId: requestId))
106
113
  }
107
114
 
108
115
  lightPopupLoader.listener.onAdImpression = { [weak self] adInfo in
109
- self?.lightPopups[unitId]?.loadedAd = nil
110
- self?.sendEvent(with: .onLightPopupAdImpressionRecordedEvent, body: adInfo?.toBody)
116
+ self?.lightPopups[requestId]?.loadedAd = nil
117
+ self?.sendEvent(with: .onLightPopupAdImpressionRecordedEvent, body: adInfo?.toBody(requestId: requestId))
111
118
  }
112
119
 
113
120
  lightPopupLoader.listener.onAdLoadSuccess = { [weak self] ad, adInfo in
114
- self?.lightPopups[unitId]?.loadedAd = ad
115
- self?.sendEvent(with: .onLightPopupLoadedEvent, body: adInfo?.toBody)
116
- self?.setupLightPopupListener(for: ad)
121
+ self?.lightPopups[requestId]?.loadedAd = ad
122
+ self?.sendEvent(with: .onLightPopupLoadedEvent, body: adInfo?.toBody(requestId: requestId))
123
+ self?.setupLightPopupListener(for: ad, requestId: requestId)
117
124
  }
118
125
 
119
126
  lightPopupLoader.listener.onAdLoadFail = { [weak self] error in
120
- self?.sendEvent(with: .onLightPopupLoadFailedEvent, body: error.toBody)
127
+ self?.sendEvent(with: .onLightPopupLoadFailedEvent, body: error.toBody(requestId: requestId))
121
128
  }
122
129
 
123
- self.lightPopups[unitId] = LightPopupAd(loader: lightPopupLoader)
130
+ self.lightPopups[requestId] = LightPopupAd(loader: lightPopupLoader)
124
131
  return lightPopupLoader
125
132
  }
126
133
  }
127
134
 
128
- private func setupLightPopupListener(for ad: DaroLightPopupAd) {
135
+ private func setupLightPopupListener(for ad: DaroLightPopupAd, requestId: Int) {
129
136
  ad.lightPopupAdListener.onShown = { [weak self] adInfo in
130
- self?.sendEvent(with: .onLightPopupDisplayedEvent, body: adInfo?.toBody)
137
+ self?.sendEvent(with: .onLightPopupDisplayedEvent, body: adInfo?.toBody(requestId: requestId))
131
138
  }
132
139
 
133
140
  ad.lightPopupAdListener.onDismiss = { [weak self] adInfo in
134
- self?.sendEvent(with: .onLightPopupHiddenEvent, body: adInfo?.toBody)
141
+ self?.sendEvent(with: .onLightPopupHiddenEvent, body: adInfo?.toBody(requestId: requestId))
135
142
  }
136
143
 
137
144
  ad.lightPopupAdListener.onFailedToShow = { [weak self] adInfo, error in
138
- self?.sendEvent(with: .onLightPopupAdFailedToDisplayEvent, body: adInfo?.toBody)
145
+ self?.sendEvent(with: .onLightPopupAdFailedToDisplayEvent, body: adInfo?.toBody(requestId: requestId))
139
146
  }
140
147
  }
141
148
 
@@ -1,10 +1,10 @@
1
- import Daro
2
-
1
+ import React
3
2
 
4
3
  extension DaroMModule {
5
- @objc(isRewardedAdReady:::)
4
+ @objc(isRewardedAdReady::::)
6
5
  func isRewardedAdReady(
7
- _ adUnitId: String,
6
+ _ requestId: NSNumber,
7
+ adUnitId: String,
8
8
  resolve: RCTPromiseResolveBlock,
9
9
  reject: RCTPromiseRejectBlock
10
10
  ) {
@@ -14,28 +14,30 @@ extension DaroMModule {
14
14
  return
15
15
  }
16
16
 
17
- resolve(rewardedAds[adUnitId]?.loadedAd != nil)
17
+ resolve(rewardedAds[requestId.intValue]?.loadedAd != nil)
18
18
  }
19
19
 
20
- @objc(loadRewardedAd:::)
20
+ @objc(loadRewardedAd::::)
21
21
  func loadRewardedAd(
22
- _ adUnitId: String,
22
+ _ requestId: NSNumber,
23
+ adUnitId: String,
23
24
  resolve: RCTPromiseResolveBlock,
24
25
  reject: RCTPromiseRejectBlock
25
26
  ) {
26
- let rewardedLoader = retrieveRewardedLoader(for: adUnitId)
27
+ let rewardedLoader = retrieveRewardedLoader(requestId: requestId.intValue, adUnitId: adUnitId)
27
28
  rewardedLoader.loadAd()
28
29
  resolve(Void())
29
30
  }
30
31
 
31
- @objc(showRewardedAd::::)
32
+ @objc(showRewardedAd:::::)
32
33
  func showRewardedAd(
33
- _ adUnitId: String,
34
+ _ requestId: NSNumber,
35
+ adUnitId: String,
34
36
  customData: String?,
35
37
  resolve: @escaping RCTPromiseResolveBlock,
36
38
  reject: @escaping RCTPromiseRejectBlock
37
39
  ) {
38
- guard let loadedAd = rewardedAds[adUnitId]?.loadedAd else {
40
+ guard let loadedAd = rewardedAds[requestId.intValue]?.loadedAd else {
39
41
  reject("REWARDED_AD_NOT_LOADED", "Rewarded ad not loaded", nil)
40
42
  return
41
43
  }
@@ -52,57 +54,57 @@ extension DaroMModule {
52
54
  }
53
55
  }
54
56
 
55
- func retrieveRewardedLoader(for unitId: String) -> DaroRewardedAdLoader {
56
- if let rewardedAd = rewardedAds[unitId] {
57
+ func retrieveRewardedLoader(requestId: Int, adUnitId: String) -> DaroRewardedAdLoader {
58
+ if let rewardedAd = rewardedAds[requestId] {
57
59
  return rewardedAd.loader
58
60
  } else {
59
- let rewardedAdLoader = DaroRewardedAdLoader(unit: DaroAdUnit(unitId: unitId))
61
+ let rewardedAdLoader = DaroRewardedAdLoader(unit: DaroAdUnit(unitId: adUnitId))
60
62
  rewardedAdLoader.listener.onAdClicked = { [weak self] adInfo in
61
63
  DaroMModule.logger.debug("[DARO] Sample Rewarded Ad clicked")
62
- self?.sendEvent(with: .onRewardedAdClickedEvent, body: adInfo?.toBody)
64
+ self?.sendEvent(with: .onRewardedAdClickedEvent, body: adInfo?.toBody(requestId: requestId))
63
65
  }
64
66
 
65
67
  rewardedAdLoader.listener.onAdImpression = { [weak self] adInfo in
66
68
  DaroMModule.logger.debug("[DARO] Sample Rewarded Ad impression")
67
- self?.rewardedAds[unitId]?.loadedAd = nil
68
- self?.sendEvent(with: .onRewardedAdImpressionRecordedEvent, body: adInfo?.toBody)
69
+ self?.rewardedAds[requestId]?.loadedAd = nil
70
+ self?.sendEvent(with: .onRewardedAdImpressionRecordedEvent, body: adInfo?.toBody(requestId: requestId))
69
71
  }
70
72
 
71
73
  rewardedAdLoader.listener.onAdLoadSuccess = { [weak self] ad, adInfo in
72
74
  DaroMModule.logger.debug("[DARO] Sample Rewarded Ad loaded")
73
- self?.rewardedAds[unitId]?.loadedAd = ad
74
- self?.sendEvent(with: .onRewardedAdLoadedEvent, body: adInfo?.toBody)
75
- self?.setupRewardedListener(for: ad)
75
+ self?.rewardedAds[requestId]?.loadedAd = ad
76
+ self?.sendEvent(with: .onRewardedAdLoadedEvent, body: adInfo?.toBody(requestId: requestId))
77
+ self?.setupRewardedListener(for: ad, requestId: requestId)
76
78
  }
77
79
 
78
80
  rewardedAdLoader.listener.onAdLoadFail = { [weak self] error in
79
81
  DaroMModule.logger.debug("[DARO] Sample Rewarded Ad failed to load: \(error)")
80
- self?.sendEvent(with: .onRewardedAdLoadFailedEvent, body: error.toBody)
82
+ self?.sendEvent(with: .onRewardedAdLoadFailedEvent, body: error.toBody(requestId: requestId))
81
83
  }
82
- self.rewardedAds[unitId] = RewardedAd(loader: rewardedAdLoader)
84
+ self.rewardedAds[requestId] = RewardedAd(loader: rewardedAdLoader)
83
85
  return rewardedAdLoader
84
86
  }
85
87
  }
86
88
 
87
- private func setupRewardedListener(for ad: DaroRewardedAd) {
89
+ private func setupRewardedListener(for ad: DaroRewardedAd, requestId: Int) {
88
90
  ad.rewardedAdListener.onShown = { [weak self] adInfo in
89
91
  DaroMModule.logger.debug("[DARO] Sample Rewarded Ad displayed")
90
- self?.sendEvent(with: .onRewardedAdDisplayedEvent, body: adInfo?.toBody)
92
+ self?.sendEvent(with: .onRewardedAdDisplayedEvent, body: adInfo?.toBody(requestId: requestId))
91
93
  }
92
94
 
93
95
  ad.rewardedAdListener.onDismiss = { [weak self] adInfo in
94
96
  DaroMModule.logger.debug("[DARO] Sample Rewarded Ad hidden")
95
- self?.sendEvent(with: .onRewardedAdHiddenEvent, body: adInfo?.toBody)
97
+ self?.sendEvent(with: .onRewardedAdHiddenEvent, body: adInfo?.toBody(requestId: requestId))
96
98
  }
97
99
 
98
100
  ad.rewardedAdListener.onFailedToShow = { [weak self] adInfo, error in
99
101
  DaroMModule.logger.debug("[DARO] Sample Rewarded Ad failed to display: \(error)")
100
- self?.sendEvent(with: .onRewardedAdFailedToDisplayEvent, body: adInfo?.toBody)
102
+ self?.sendEvent(with: .onRewardedAdFailedToDisplayEvent, body: adInfo?.toBody(requestId: requestId))
101
103
  }
102
104
 
103
105
  ad.rewardedAdListener.onEarnedReward = { [weak self] adInfo, rewardItem in
104
106
  DaroMModule.logger.debug("[DARO] Sample Rewarded Ad received reward")
105
- self?.sendEvent(with: .onRewardedAdReceivedRewardEvent, body: rewardItem?.toBody(unitId: adInfo?.adUnitId ?? ""))
107
+ self?.sendEvent(with: .onRewardedAdReceivedRewardEvent, body: rewardItem?.toBody(requestId: requestId, unitId: adInfo?.adUnitId ?? ""))
106
108
  }
107
109
  }
108
110
  }
@@ -115,4 +117,10 @@ private extension DaroRewardedItem {
115
117
  "rewardAmount": self.amount,
116
118
  ]
117
119
  }
120
+
121
+ func toBody(requestId: Int, unitId: String) -> [String: Any] {
122
+ var body = self.toBody(unitId: unitId)
123
+ body["requestId"] = requestId
124
+ return body
125
+ }
118
126
  }
@@ -15,28 +15,28 @@ RCT_EXTERN_METHOD(showMediationDebugger : (RCTPromiseResolveBlock)resolve : (RCT
15
15
 
16
16
  #pragma mark - Interstitial
17
17
 
18
- RCT_EXTERN_METHOD(isInterstitialReady : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
19
- RCT_EXTERN_METHOD(loadInterstitial : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
20
- RCT_EXTERN_METHOD(showInterstitial : (NSString *)adUnitIdentifier : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
18
+ RCT_EXTERN_METHOD(isInterstitialReady : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
19
+ RCT_EXTERN_METHOD(loadInterstitial : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
20
+ RCT_EXTERN_METHOD(showInterstitial : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
21
21
 
22
22
  #pragma mark - Rewarded
23
23
 
24
- RCT_EXTERN_METHOD(isRewardedAdReady : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
25
- RCT_EXTERN_METHOD(loadRewardedAd : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
26
- RCT_EXTERN_METHOD(showRewardedAd : (NSString *)adUnitIdentifier : (nullable NSString *)customData : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
24
+ RCT_EXTERN_METHOD(isRewardedAdReady : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
25
+ RCT_EXTERN_METHOD(loadRewardedAd : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
26
+ RCT_EXTERN_METHOD(showRewardedAd : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (nullable NSString *)customData : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
27
27
 
28
28
  #pragma mark - AppOpen Ad
29
29
 
30
- RCT_EXTERN_METHOD(isAppOpenAdReady : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
31
- RCT_EXTERN_METHOD(loadAppOpenAd : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
32
- RCT_EXTERN_METHOD(showAppOpenAd : (NSString *)adUnitIdentifier : (nullable NSString *)customData : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
30
+ RCT_EXTERN_METHOD(isAppOpenAdReady : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
31
+ RCT_EXTERN_METHOD(loadAppOpenAd : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
32
+ RCT_EXTERN_METHOD(showAppOpenAd : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (nullable NSString *)placement : (nullable NSString *)customData : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
33
33
 
34
34
  #pragma mark - Light Popup
35
35
 
36
- RCT_EXTERN_METHOD(isLightPopupReady : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
37
- RCT_EXTERN_METHOD(loadLightPopup : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
38
- RCT_EXTERN_METHOD(showLightPopup : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
39
- RCT_EXTERN_METHOD(setLightPopupAdConfiguration : (NSString *)adUnitId : (NSDictionary *)configuration : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
36
+ RCT_EXTERN_METHOD(isLightPopupReady : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
37
+ RCT_EXTERN_METHOD(loadLightPopup : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
38
+ RCT_EXTERN_METHOD(showLightPopup : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
39
+ RCT_EXTERN_METHOD(setLightPopupAdConfiguration : (nonnull NSNumber *)requestId : (NSString *)adUnitId : (NSDictionary *)configuration : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject)
40
40
 
41
41
  + (BOOL)requiresMainQueueSetup {
42
42
  return YES;
@@ -1,5 +1,4 @@
1
- import GoogleMobileAds
2
- import Daro
1
+ import React
3
2
  import os.log
4
3
 
5
4
  @objc(DaroMModule)
@@ -83,11 +82,11 @@ class DaroMModule: RCTEventEmitter {
83
82
 
84
83
  static var sdkInitialized: Bool = false
85
84
  // 광고 인스턴스 저장소
86
- internal var interstitials: [String: InterstitialAd] = [:]
87
- internal var rewardedAds: [String: RewardedAd] = [:]
88
- internal var appOpenAds: [String: AppOpenAd] = [:]
89
- internal var lightPopups: [String: LightPopupAd] = [:]
90
- internal var lightPopupConfigurations: [String: [String: Any]] = [:]
85
+ internal var interstitials: [Int: InterstitialAd] = [:]
86
+ internal var rewardedAds: [Int: RewardedAd] = [:]
87
+ internal var appOpenAds: [Int: AppOpenAd] = [:]
88
+ internal var lightPopups: [Int: LightPopupAd] = [:]
89
+ internal var lightPopupConfigurations: [Int: [String: Any]] = [:]
91
90
 
92
91
  // MARK: - SDK 초기화 및 설정
93
92
 
@@ -107,7 +106,7 @@ class DaroMModule: RCTEventEmitter {
107
106
  resolve(Void())
108
107
  return
109
108
  }
110
-
109
+
111
110
  // 초기화 진행
112
111
  DaroAds.shared.logLevel = .debug
113
112
  DaroAds.shared.initialized { error in
@@ -124,11 +123,7 @@ class DaroMModule: RCTEventEmitter {
124
123
 
125
124
  @objc(showMediationDebugger::)
126
125
  func showMediationDebugger(resolve: @escaping RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
127
- // ALSdk.shared().showMediationDebugger()
128
- DispatchQueue.main.async {
129
- MobileAds.shared.presentAdInspector(from: nil) { error in
130
- // Error will be non-nil if there was an issue and the inspector was not displayed.
131
- }
126
+ DaroMediationDebugger.show {
132
127
  resolve(Void())
133
128
  }
134
129
  }
@@ -206,6 +201,12 @@ extension DaroAdInfo {
206
201
  "latencyMillis": self.latency as Any,
207
202
  ]
208
203
  }
204
+
205
+ func toBody(requestId: Int) -> [String: Any] {
206
+ var body = self.toBody
207
+ body["requestId"] = requestId
208
+ return body
209
+ }
209
210
  }
210
211
 
211
212
  extension DaroError {
@@ -215,4 +216,10 @@ extension DaroError {
215
216
  "message": self.message,
216
217
  ]
217
218
  }
219
+
220
+ func toBody(requestId: Int) -> [String: Any] {
221
+ var body = self.toBody
222
+ body["requestId"] = requestId
223
+ return body
224
+ }
218
225
  }
@@ -1,5 +1,5 @@
1
+ import React
1
2
  import Combine
2
- import Daro
3
3
  import UIKit
4
4
 
5
5
  @objc(DaroMNativeAdViewManager)
@@ -0,0 +1,11 @@
1
+ import Dispatch
2
+ import GoogleMobileAds
3
+
4
+ enum DaroMediationDebugger {
5
+ static func show(resolve: @escaping () -> Void) {
6
+ DispatchQueue.main.async {
7
+ MobileAds.shared.presentAdInspector(from: nil) { _ in }
8
+ resolve()
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,22 @@
1
+ import Daro
2
+
3
+ internal typealias DaroAdBannerSize = Daro.DaroAdBannerSize
4
+ internal typealias DaroAdBannerView = Daro.DaroAdBannerView
5
+ internal typealias DaroAdFormat = Daro.DaroAdFormat
6
+ internal typealias DaroAdInfo = Daro.DaroAdInfo
7
+ internal typealias DaroAdNative = Daro.DaroAdNative
8
+ internal typealias DaroAdNativeView = Daro.DaroAdNativeView
9
+ internal typealias DaroAdUnit = Daro.DaroAdUnit
10
+ internal typealias DaroAds = Daro.DaroAds
11
+ internal typealias DaroAppOpenAd = Daro.DaroAppOpenAd
12
+ internal typealias DaroAppOpenAdLoader = Daro.DaroAppOpenAdLoader
13
+ internal typealias DaroError = Daro.DaroError
14
+ internal typealias DaroInterstitialAd = Daro.DaroInterstitialAd
15
+ internal typealias DaroInterstitialAdLoader = Daro.DaroInterstitialAdLoader
16
+ internal typealias DaroLightPopupAd = Daro.DaroLightPopupAd
17
+ internal typealias DaroLightPopupAdLoader = Daro.DaroLightPopupAdLoader
18
+ internal typealias DaroLightPopupConfiguration = Daro.DaroLightPopupConfiguration
19
+ internal typealias DaroRewardedAd = Daro.DaroRewardedAd
20
+ internal typealias DaroRewardedAdLoader = Daro.DaroRewardedAdLoader
21
+ internal typealias DaroRewardedItem = Daro.DaroRewardedItem
22
+ internal typealias AdNativeLoadable = Daro.AdNativeLoadable
@@ -49,7 +49,11 @@ const AdBannerView = exports.AdBannerView = /*#__PURE__*/(0, _react.forwardRef)(
49
49
  const [isInitialized, setIsInitialized] = (0, _react.useState)(false);
50
50
  const loadAd = (0, _react.useCallback)(() => {
51
51
  if (adViewRef.current) {
52
- _reactNative.UIManager.dispatchViewManagerCommand((0, _reactNative.findNodeHandle)(adViewRef.current),
52
+ const nodeHandle = (0, _reactNative.findNodeHandle)(adViewRef.current);
53
+ if (typeof nodeHandle !== 'number') {
54
+ return;
55
+ }
56
+ _reactNative.UIManager.dispatchViewManagerCommand(nodeHandle,
53
57
  // @ts-ignore: Issue in RN ts defs
54
58
  _reactNative.UIManager.getViewManagerConfig(ComponentName).Commands.loadAd, []);
55
59
  }
@@ -106,6 +110,7 @@ const AdBannerView = exports.AdBannerView = /*#__PURE__*/(0, _react.forwardRef)(
106
110
  ref: saveElement,
107
111
  adUnitId: adUnitId,
108
112
  placement: placement,
113
+ loadOnMount: loadOnMount,
109
114
  isVisible: isVisible,
110
115
  onAdLoadedEvent: onAdLoadedEvent,
111
116
  onAdLoadFailedEvent: onAdLoadFailedEvent,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_jsxRuntime","DaroMModule","NativeModules","BANNER_AD_FORMAT_LABEL","MREC_AD_FORMAT_LABEL","getConstants","AdFormat","exports","ComponentName","AdViewComponent","requireNativeComponent","ADVIEW_SIZE","banner","width","height","mrec","AdBannerView","forwardRef","adUnitId","adFormat","placement","loadOnMount","isVisible","onAdLoaded","onAdLoadFailed","onAdClicked","onAdImpressionRecorded","style","otherProps","ref","adFormatSize","useRef","adViewRef","isInitialized","setIsInitialized","useState","loadAd","useCallback","current","UIManager","dispatchViewManagerCommand","findNodeHandle","getViewManagerConfig","Commands","useImperativeHandle","saveElement","element","useEffect","BANNER","initialized","console","warn","onAdLoadedEvent","event","nativeEvent","onAdLoadFailedEvent","onAdClickedEvent","onAdImpressionRecordedEvent","log","jsx","View"],"sourceRoot":"../../src","sources":["AdBannerView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_jsxRuntime","DaroMModule","NativeModules","BANNER_AD_FORMAT_LABEL","MREC_AD_FORMAT_LABEL","getConstants","AdFormat","exports","ComponentName","AdViewComponent","requireNativeComponent","ADVIEW_SIZE","banner","width","height","mrec","AdBannerView","forwardRef","adUnitId","adFormat","placement","loadOnMount","isVisible","onAdLoaded","onAdLoadFailed","onAdClicked","onAdImpressionRecorded","style","otherProps","ref","adFormatSize","useRef","adViewRef","isInitialized","setIsInitialized","useState","loadAd","useCallback","current","nodeHandle","findNodeHandle","UIManager","dispatchViewManagerCommand","getViewManagerConfig","Commands","useImperativeHandle","saveElement","element","useEffect","BANNER","initialized","console","warn","onAdLoadedEvent","event","nativeEvent","onAdLoadFailedEvent","onAdClickedEvent","onAdImpressionRecordedEvent","log","jsx","View"],"sourceRoot":"../../src","sources":["AdBannerView.tsx"],"mappings":"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","ignoreList":[]}
@@ -29,27 +29,32 @@ const NATIVE_EVENT_BY_TYPE = {
29
29
  [_AdEvent.AdEventType.IMPRESSION_RECORDED]: ON_APPOPEN_AD_IMPRESSION_RECORDED
30
30
  };
31
31
  class AppOpenAd {
32
+ static _nextRequestId = 1;
33
+ static _legacyRequestIds = new Map();
34
+ static _legacyRequestIdSet = new Set();
32
35
  eventEmitter = new _EventEmitter.AdEventEmitter();
33
- constructor(adUnitId) {
36
+ constructor(requestId, adUnitId) {
37
+ this.requestId = requestId;
34
38
  this.adUnitId = adUnitId;
35
39
  }
36
40
  static createForAdRequest(adUnitId) {
37
- return new AppOpenAd(adUnitId);
41
+ const requestId = AppOpenAd._nextRequestId++;
42
+ return new AppOpenAd(requestId, adUnitId);
38
43
  }
39
44
  isAdReady() {
40
- return DaroMModule.isAppOpenAdReady(this.adUnitId);
45
+ return DaroMModule.isAppOpenAdReady(this.requestId, this.adUnitId);
41
46
  }
42
47
  load() {
43
- DaroMModule.loadAppOpenAd(this.adUnitId);
48
+ DaroMModule.loadAppOpenAd(this.requestId, this.adUnitId);
44
49
  }
45
50
  show(placement, customData) {
46
- DaroMModule.showAppOpenAd(this.adUnitId, placement ?? undefined, customData ?? undefined);
51
+ DaroMModule.showAppOpenAd(this.requestId, this.adUnitId, placement ?? undefined, customData ?? undefined);
47
52
  }
48
53
  addAdEventListener(type, listener) {
49
54
  const nativeEvent = NATIVE_EVENT_BY_TYPE[type];
50
- const adUnitId = this.adUnitId;
55
+ const requestId = this.requestId;
51
56
  return this.eventEmitter.addEventListener(nativeEvent, payload => {
52
- if (payload?.adUnitId !== undefined && payload.adUnitId !== adUnitId) {
57
+ if (payload?.requestId !== requestId) {
53
58
  return;
54
59
  }
55
60
  listener(payload);
@@ -61,24 +66,45 @@ class AppOpenAd {
61
66
 
62
67
  // ---- Deprecated static API (backward compatibility) ----
63
68
 
69
+ static _getLegacyRequestId(adUnitId) {
70
+ let requestId = AppOpenAd._legacyRequestIds.get(adUnitId);
71
+ if (requestId === undefined) {
72
+ requestId = AppOpenAd._nextRequestId++;
73
+ AppOpenAd._legacyRequestIds.set(adUnitId, requestId);
74
+ AppOpenAd._legacyRequestIdSet.add(requestId);
75
+ }
76
+ return requestId;
77
+ }
78
+ static _addLegacyEventListener(event, listener) {
79
+ (0, _EventEmitter.addEventListener)(event, payload => {
80
+ if (!AppOpenAd._legacyRequestIdSet.has(payload?.requestId)) {
81
+ return;
82
+ }
83
+ listener(payload);
84
+ });
85
+ }
86
+
64
87
  /** @deprecated `AppOpenAd.createForAdRequest(adUnitId)` 인스턴스의 `isAdReady()`를 사용하세요. */
65
88
  static isAdReady(adUnitId) {
66
- return DaroMModule.isAppOpenAdReady(adUnitId);
89
+ const requestId = AppOpenAd._getLegacyRequestId(adUnitId);
90
+ return DaroMModule.isAppOpenAdReady(requestId, adUnitId);
67
91
  }
68
92
 
69
93
  /** @deprecated `AppOpenAd.createForAdRequest(adUnitId)` 인스턴스의 `load()`를 사용하세요. */
70
94
  static loadAd(adUnitId) {
71
- DaroMModule.loadAppOpenAd(adUnitId);
95
+ const requestId = AppOpenAd._getLegacyRequestId(adUnitId);
96
+ DaroMModule.loadAppOpenAd(requestId, adUnitId);
72
97
  }
73
98
 
74
99
  /** @deprecated `AppOpenAd.createForAdRequest(adUnitId)` 인스턴스의 `show()`를 사용하세요. */
75
100
  static showAd(adUnitId, placement, customData) {
76
- DaroMModule.showAppOpenAd(adUnitId, placement ?? undefined, customData ?? undefined);
101
+ const requestId = AppOpenAd._getLegacyRequestId(adUnitId);
102
+ DaroMModule.showAppOpenAd(requestId, adUnitId, placement ?? undefined, customData ?? undefined);
77
103
  }
78
104
 
79
105
  /** @deprecated `addAdEventListener(AdEventType.LOADED, ...)`를 인스턴스에서 사용하세요. */
80
106
  static addAdLoadedEventListener(listener) {
81
- (0, _EventEmitter.addEventListener)(ON_APPOPEN_AD_LOADED_EVENT, listener);
107
+ AppOpenAd._addLegacyEventListener(ON_APPOPEN_AD_LOADED_EVENT, listener);
82
108
  }
83
109
 
84
110
  /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
@@ -88,7 +114,7 @@ class AppOpenAd {
88
114
 
89
115
  /** @deprecated `addAdEventListener(AdEventType.LOAD_FAILED, ...)`를 인스턴스에서 사용하세요. */
90
116
  static addAdLoadFailedEventListener(listener) {
91
- (0, _EventEmitter.addEventListener)(ON_APPOPEN_AD_LOAD_FAILED_EVENT, listener);
117
+ AppOpenAd._addLegacyEventListener(ON_APPOPEN_AD_LOAD_FAILED_EVENT, listener);
92
118
  }
93
119
 
94
120
  /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
@@ -98,7 +124,7 @@ class AppOpenAd {
98
124
 
99
125
  /** @deprecated `addAdEventListener(AdEventType.CLICKED, ...)`를 인스턴스에서 사용하세요. */
100
126
  static addAdClickedEventListener(listener) {
101
- (0, _EventEmitter.addEventListener)(ON_APPOPEN_AD_CLICKED_EVENT, listener);
127
+ AppOpenAd._addLegacyEventListener(ON_APPOPEN_AD_CLICKED_EVENT, listener);
102
128
  }
103
129
 
104
130
  /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
@@ -108,7 +134,7 @@ class AppOpenAd {
108
134
 
109
135
  /** @deprecated `addAdEventListener(AdEventType.DISPLAYED, ...)`를 인스턴스에서 사용하세요. */
110
136
  static addAdDisplayedEventListener(listener) {
111
- (0, _EventEmitter.addEventListener)(ON_APPOPEN_AD_DISPLAYED_EVENT, listener);
137
+ AppOpenAd._addLegacyEventListener(ON_APPOPEN_AD_DISPLAYED_EVENT, listener);
112
138
  }
113
139
 
114
140
  /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
@@ -118,7 +144,7 @@ class AppOpenAd {
118
144
 
119
145
  /** @deprecated `addAdEventListener(AdEventType.FAILED_TO_DISPLAY, ...)`를 인스턴스에서 사용하세요. */
120
146
  static addAdFailedToDisplayEventListener(listener) {
121
- (0, _EventEmitter.addEventListener)(ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT, listener);
147
+ AppOpenAd._addLegacyEventListener(ON_APPOPEN_AD_FAILED_TO_DISPLAY_EVENT, listener);
122
148
  }
123
149
 
124
150
  /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
@@ -128,7 +154,7 @@ class AppOpenAd {
128
154
 
129
155
  /** @deprecated `addAdEventListener(AdEventType.HIDDEN, ...)`를 인스턴스에서 사용하세요. */
130
156
  static addAdHiddenEventListener(listener) {
131
- (0, _EventEmitter.addEventListener)(ON_APPOPEN_AD_HIDDEN_EVENT, listener);
157
+ AppOpenAd._addLegacyEventListener(ON_APPOPEN_AD_HIDDEN_EVENT, listener);
132
158
  }
133
159
 
134
160
  /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
@@ -138,7 +164,7 @@ class AppOpenAd {
138
164
 
139
165
  /** @deprecated `addAdEventListener(AdEventType.IMPRESSION_RECORDED, ...)`를 인스턴스에서 사용하세요. */
140
166
  static addAdImpressionRecordedListener(listener) {
141
- (0, _EventEmitter.addEventListener)(ON_APPOPEN_AD_IMPRESSION_RECORDED, listener);
167
+ AppOpenAd._addLegacyEventListener(ON_APPOPEN_AD_IMPRESSION_RECORDED, listener);
142
168
  }
143
169
 
144
170
  /** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */