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.
- package/LICENSE +1 -1
- package/README.md +30 -30
- package/android/build.gradle +42 -59
- package/android/src/admob/java/com/daro/reactnative/DaroSdkBridge.kt +23 -0
- package/android/src/main/AndroidManifest.xml +1 -2
- package/android/src/main/java/com/{darom → daro/reactnative}/DaroMAdBannerViewManager.kt +4 -4
- package/android/src/main/java/com/{darom → daro/reactnative}/DaroMAdNativeViewManager.kt +4 -4
- package/android/src/main/java/com/{darom → daro/reactnative}/DaroMModule.kt +44 -45
- package/android/src/main/java/com/{darom → daro/reactnative}/DaroMPackage.kt +1 -1
- package/android/src/main/java/com/{darom → daro/reactnative}/constants/InternalDaroMBannerSize.kt +1 -1
- package/android/src/main/java/com/{darom → daro/reactnative}/event/DaroMEvent.kt +1 -1
- package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMBannerViewModuleImpl.kt +2 -2
- package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMInterstitialModuleImpl.kt +26 -26
- package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMLightPopupModuleImpl.kt +30 -29
- package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMRewardedAdModuleImpl.kt +27 -27
- package/android/src/main/java/com/{darom → daro/reactnative}/util/AdInfoUtil.kt +25 -1
- package/android/src/main/java/com/{darom → daro/reactnative}/util/EventEmitterUtil.kt +2 -2
- package/android/src/main/java/com/daro/reactnative/view/DaroMAdBannerViewContainer.kt +417 -0
- package/android/src/main/java/com/{darom → daro/reactnative}/view/DaroMAdNativeViewContainer.kt +4 -4
- package/app.plugin.js +1 -0
- package/ios/DaroMAdBannerViewManager.swift +1 -1
- package/ios/DaroMModule+AppOpen.swift +34 -31
- package/ios/DaroMModule+Interstitial.swift +29 -26
- package/ios/DaroMModule+LightPopup.swift +40 -33
- package/ios/DaroMModule+Rewarded.swift +35 -27
- package/ios/DaroMModule.mm +13 -13
- package/ios/DaroMModule.swift +20 -13
- package/ios/DaroMNativeAdViewManager.swift +1 -1
- package/ios/mediation/admob/DaroMediationDebugger.swift +11 -0
- package/ios/mediation/admob/DaroMediationTypes.swift +22 -0
- package/lib/commonjs/AdBannerView.js +6 -1
- package/lib/commonjs/AdBannerView.js.map +1 -1
- package/lib/commonjs/AppOpenAd.js +43 -17
- package/lib/commonjs/AppOpenAd.js.map +1 -1
- package/lib/commonjs/ErrorCode.js.map +1 -1
- package/lib/commonjs/EventEmitter.js.map +1 -1
- package/lib/commonjs/InterstitialAd.js +45 -17
- package/lib/commonjs/InterstitialAd.js.map +1 -1
- package/lib/commonjs/LightPopupAd.js +62 -43
- package/lib/commonjs/LightPopupAd.js.map +1 -1
- package/lib/commonjs/RewardedAd.js +44 -18
- package/lib/commonjs/RewardedAd.js.map +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdView.js +5 -1
- package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -1
- package/lib/commonjs/package.json +1 -0
- package/lib/module/AdBannerView.js +6 -1
- package/lib/module/AdBannerView.js.map +1 -1
- package/lib/module/AppOpenAd.js +43 -17
- package/lib/module/AppOpenAd.js.map +1 -1
- package/lib/module/ErrorCode.js.map +1 -1
- package/lib/module/EventEmitter.js.map +1 -1
- package/lib/module/InterstitialAd.js +45 -17
- package/lib/module/InterstitialAd.js.map +1 -1
- package/lib/module/LightPopupAd.js +63 -43
- package/lib/module/LightPopupAd.js.map +1 -1
- package/lib/module/RewardedAd.js +44 -18
- package/lib/module/RewardedAd.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/nativeAd/NativeAdView.js +5 -1
- package/lib/module/nativeAd/NativeAdView.js.map +1 -1
- package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -1
- package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/typescript/commonjs/plugin/src/index.d.ts +19 -0
- package/lib/typescript/commonjs/plugin/src/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/plugin/src/skAdNetworkIds.d.ts +6 -0
- package/lib/typescript/commonjs/plugin/src/skAdNetworkIds.d.ts.map +1 -0
- package/lib/typescript/commonjs/plugin/src/withAndroid.d.ts +8 -0
- package/lib/typescript/commonjs/plugin/src/withAndroid.d.ts.map +1 -0
- package/lib/typescript/commonjs/plugin/src/withIos.d.ts +8 -0
- package/lib/typescript/commonjs/plugin/src/withIos.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/AdBannerView.d.ts +124 -2
- package/lib/typescript/commonjs/src/AdBannerView.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/AppOpenAd.d.ts +6 -0
- package/lib/typescript/commonjs/src/AppOpenAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ErrorCode.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/EventEmitter.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/InterstitialAd.d.ts +6 -0
- package/lib/typescript/commonjs/src/InterstitialAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/LightPopupAd.d.ts +6 -0
- package/lib/typescript/commonjs/src/LightPopupAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/RewardedAd.d.ts +6 -0
- package/lib/typescript/commonjs/src/RewardedAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts +124 -2
- package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/AdBannerViewProps.d.ts +2 -2
- package/lib/typescript/commonjs/src/types/AdBannerViewProps.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/AdInfo.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/AdProps.d.ts +2 -2
- package/lib/typescript/commonjs/src/types/AdProps.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/DaroMMobileAds.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/NativeAdViewProps.d.ts.map +1 -1
- package/lib/typescript/module/plugin/src/index.d.ts +19 -0
- package/lib/typescript/module/plugin/src/index.d.ts.map +1 -0
- package/lib/typescript/module/plugin/src/skAdNetworkIds.d.ts +6 -0
- package/lib/typescript/module/plugin/src/skAdNetworkIds.d.ts.map +1 -0
- package/lib/typescript/module/plugin/src/withAndroid.d.ts +8 -0
- package/lib/typescript/module/plugin/src/withAndroid.d.ts.map +1 -0
- package/lib/typescript/module/plugin/src/withIos.d.ts +8 -0
- package/lib/typescript/module/plugin/src/withIos.d.ts.map +1 -0
- package/lib/typescript/module/src/AdBannerView.d.ts +124 -2
- package/lib/typescript/module/src/AdBannerView.d.ts.map +1 -1
- package/lib/typescript/module/src/AppOpenAd.d.ts +6 -0
- package/lib/typescript/module/src/AppOpenAd.d.ts.map +1 -1
- package/lib/typescript/module/src/ErrorCode.d.ts.map +1 -1
- package/lib/typescript/module/src/EventEmitter.d.ts.map +1 -1
- package/lib/typescript/module/src/InterstitialAd.d.ts +6 -0
- package/lib/typescript/module/src/InterstitialAd.d.ts.map +1 -1
- package/lib/typescript/module/src/LightPopupAd.d.ts +6 -0
- package/lib/typescript/module/src/LightPopupAd.d.ts.map +1 -1
- package/lib/typescript/module/src/RewardedAd.d.ts +6 -0
- package/lib/typescript/module/src/RewardedAd.d.ts.map +1 -1
- package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts +124 -2
- package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts.map +1 -1
- package/lib/typescript/module/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
- package/lib/typescript/module/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
- package/lib/typescript/module/src/types/AdBannerViewProps.d.ts +2 -2
- package/lib/typescript/module/src/types/AdBannerViewProps.d.ts.map +1 -1
- package/lib/typescript/module/src/types/AdInfo.d.ts.map +1 -1
- package/lib/typescript/module/src/types/AdProps.d.ts +2 -2
- package/lib/typescript/module/src/types/AdProps.d.ts.map +1 -1
- package/lib/typescript/module/src/types/DaroMMobileAds.d.ts.map +1 -1
- package/lib/typescript/module/src/types/NativeAdViewProps.d.ts.map +1 -1
- package/package.json +88 -105
- package/plugin/build/index.d.ts +18 -0
- package/plugin/build/index.js +71 -0
- package/plugin/build/skAdNetworkIds.d.ts +5 -0
- package/plugin/build/skAdNetworkIds.js +205 -0
- package/plugin/build/withAndroid.d.ts +7 -0
- package/plugin/build/withAndroid.js +140 -0
- package/plugin/build/withIos.d.ts +7 -0
- package/plugin/build/withIos.js +83 -0
- package/react-native-daro.podspec +25 -0
- package/src/AdBannerView.tsx +54 -17
- package/src/AppOpenAd.ts +59 -15
- package/src/ErrorCode.ts +1 -2
- package/src/EventEmitter.ts +5 -2
- package/src/InterstitialAd.ts +73 -17
- package/src/LightPopupAd.ts +86 -46
- package/src/RewardedAd.ts +70 -18
- package/src/index.tsx +1 -1
- package/src/nativeAd/NativeAdView.tsx +65 -14
- package/src/nativeAd/NativeAdViewComponents.tsx +54 -27
- package/src/nativeAd/NativeAdViewProvider.tsx +17 -7
- package/src/types/AdBannerViewProps.ts +11 -11
- package/src/types/AdInfo.ts +17 -17
- package/src/types/AdProps.ts +8 -9
- package/src/types/DaroMMobileAds.ts +3 -6
- package/src/types/NativeAdViewProps.ts +5 -5
- package/src/types/index.ts +1 -1
- package/android/gradle.properties +0 -5
- package/android/src/main/AndroidManifestNew.xml +0 -7
- package/android/src/main/java/com/darom/view/DaroMAdBannerViewContainer.kt +0 -163
- package/android/src/main/res/layout/layout_activity_transparent.xml +0 -7
- package/android/src/main/res/values/styles.xml +0 -11
- package/ios/DaroM-Bridging-Header.h +0 -6
- package/react-native-daro-m.podspec +0 -44
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import
|
|
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
|
-
_
|
|
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[
|
|
18
|
+
resolve(lightPopups[requestId.intValue]?.loadedAd != nil)
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
@objc(loadLightPopup
|
|
21
|
+
@objc(loadLightPopup::::)
|
|
21
22
|
func loadLightPopup(
|
|
22
|
-
_
|
|
23
|
+
_ requestId: NSNumber,
|
|
24
|
+
adUnitId: String,
|
|
23
25
|
resolve: RCTPromiseResolveBlock,
|
|
24
26
|
reject: RCTPromiseRejectBlock
|
|
25
27
|
) {
|
|
26
|
-
let lightPopupLoader = retrieveLightPopupLoader(
|
|
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
|
-
_
|
|
35
|
+
_ requestId: NSNumber,
|
|
36
|
+
adUnitId: String,
|
|
34
37
|
resolve: @escaping RCTPromiseResolveBlock,
|
|
35
38
|
reject: @escaping RCTPromiseRejectBlock
|
|
36
39
|
) {
|
|
37
|
-
guard let loadedAd = lightPopups[
|
|
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:
|
|
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
|
-
_
|
|
58
|
+
_ requestId: NSNumber,
|
|
59
|
+
adUnitId: String,
|
|
55
60
|
configuration: [String: Any],
|
|
56
61
|
resolve: RCTPromiseResolveBlock,
|
|
57
62
|
reject: RCTPromiseRejectBlock
|
|
58
63
|
) {
|
|
59
|
-
|
|
60
|
-
|
|
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:
|
|
72
|
+
self?.applyStoredConfiguration(to: loadedAd, for: reqIdInt)
|
|
66
73
|
}
|
|
67
74
|
resolve(Void())
|
|
68
75
|
}
|
|
69
76
|
|
|
70
|
-
func applyStoredConfiguration(to ad: DaroLightPopupAd, for
|
|
71
|
-
if let configuration = lightPopupConfigurations[
|
|
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(
|
|
99
|
-
if let lightPopupAd = lightPopups[
|
|
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:
|
|
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[
|
|
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[
|
|
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[
|
|
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
|
|
2
|
-
|
|
1
|
+
import React
|
|
3
2
|
|
|
4
3
|
extension DaroMModule {
|
|
5
|
-
@objc(isRewardedAdReady
|
|
4
|
+
@objc(isRewardedAdReady::::)
|
|
6
5
|
func isRewardedAdReady(
|
|
7
|
-
_
|
|
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[
|
|
17
|
+
resolve(rewardedAds[requestId.intValue]?.loadedAd != nil)
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
@objc(loadRewardedAd
|
|
20
|
+
@objc(loadRewardedAd::::)
|
|
21
21
|
func loadRewardedAd(
|
|
22
|
-
_
|
|
22
|
+
_ requestId: NSNumber,
|
|
23
|
+
adUnitId: String,
|
|
23
24
|
resolve: RCTPromiseResolveBlock,
|
|
24
25
|
reject: RCTPromiseRejectBlock
|
|
25
26
|
) {
|
|
26
|
-
let rewardedLoader = retrieveRewardedLoader(
|
|
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
|
-
_
|
|
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[
|
|
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(
|
|
56
|
-
if let rewardedAd = rewardedAds[
|
|
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:
|
|
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[
|
|
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[
|
|
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[
|
|
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
|
}
|
package/ios/DaroMModule.mm
CHANGED
|
@@ -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 *)
|
|
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 *)
|
|
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 *)
|
|
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;
|
package/ios/DaroMModule.swift
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
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: [
|
|
87
|
-
internal var rewardedAds: [
|
|
88
|
-
internal var appOpenAds: [
|
|
89
|
-
internal var lightPopups: [
|
|
90
|
-
internal var lightPopupConfigurations: [
|
|
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
|
-
|
|
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
|
}
|
|
@@ -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
|
-
|
|
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","
|
|
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
|
-
|
|
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
|
|
55
|
+
const requestId = this.requestId;
|
|
51
56
|
return this.eventEmitter.addEventListener(nativeEvent, payload => {
|
|
52
|
-
if (payload?.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
167
|
+
AppOpenAd._addLegacyEventListener(ON_APPOPEN_AD_IMPRESSION_RECORDED, listener);
|
|
142
168
|
}
|
|
143
169
|
|
|
144
170
|
/** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
|