cloudx-react-native 2.0.0-beta.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +420 -1046
- package/android/src/main/AndroidManifest.xml +0 -4
- package/android/src/main/java/com/cloudxreactnative/CloudXAdEvents.kt +39 -0
- package/android/src/main/java/com/cloudxreactnative/CloudXAdInfo.kt +32 -0
- package/android/src/main/java/com/cloudxreactnative/CloudXModuleImpl.kt +694 -0
- package/android/src/{newarch/com/cloudxreactnative/CloudXReactNativePackage.kt → main/java/com/cloudxreactnative/CloudXPackage.kt} +14 -13
- package/android/src/newarch/com/cloudxreactnative/{CloudXReactNativeModule.kt → CloudXModule.kt} +31 -34
- package/android/src/oldarch/com/cloudxreactnative/{CloudXReactNativeModule.kt → CloudXModule.kt} +27 -32
- package/cloudx-react-native.podspec +1 -1
- package/ios/CloudX.h +47 -0
- package/ios/CloudX.mm +1406 -0
- package/lib/commonjs/AppTrackingTransparency.js +13 -13
- package/lib/commonjs/AppTrackingTransparency.js.map +1 -1
- package/lib/commonjs/CloudX.js +16 -12
- package/lib/commonjs/CloudX.js.map +1 -1
- package/lib/commonjs/CloudXAdPosition.js +23 -0
- package/lib/commonjs/CloudXAdPosition.js.map +1 -0
- package/lib/commonjs/{BannerAd.js → CloudXBannerAd.js} +42 -37
- package/lib/commonjs/CloudXBannerAd.js.map +1 -0
- package/lib/commonjs/CloudXErrorCode.js +116 -0
- package/lib/commonjs/CloudXErrorCode.js.map +1 -0
- package/lib/commonjs/{InterstitialAd.js → CloudXInterstitialAd.js} +10 -10
- package/lib/commonjs/CloudXInterstitialAd.js.map +1 -0
- package/lib/commonjs/{MRecAd.js → CloudXMRECAd.js} +42 -37
- package/lib/commonjs/CloudXMRECAd.js.map +1 -0
- package/lib/commonjs/{RewardedAd.js → CloudXRewardedAd.js} +10 -10
- package/lib/commonjs/CloudXRewardedAd.js.map +1 -0
- package/lib/commonjs/EventEmitter.js +3 -3
- package/lib/commonjs/EventEmitter.js.map +1 -1
- package/lib/commonjs/hooks.js +25 -26
- package/lib/commonjs/hooks.js.map +1 -1
- package/lib/commonjs/index.js +27 -41
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/specs/{NativeCloudXModule.js → NativeCloudX.js} +2 -2
- package/lib/commonjs/specs/NativeCloudX.js.map +1 -0
- package/lib/commonjs/types/AdProps.js +6 -0
- package/lib/commonjs/types/AdProps.js.map +1 -0
- package/lib/commonjs/types/InterstitialAd.js +6 -0
- package/lib/commonjs/types/InterstitialAd.js.map +1 -0
- package/lib/commonjs/types/MRECAd.js +6 -0
- package/lib/commonjs/types/MRECAd.js.map +1 -0
- package/lib/commonjs/types/ViewAd.js +6 -0
- package/lib/commonjs/types/ViewAd.js.map +1 -0
- package/lib/module/AppTrackingTransparency.js +12 -12
- package/lib/module/AppTrackingTransparency.js.map +1 -1
- package/lib/module/CloudX.js +16 -12
- package/lib/module/CloudX.js.map +1 -1
- package/lib/module/CloudXAdPosition.js +17 -0
- package/lib/module/CloudXAdPosition.js.map +1 -0
- package/lib/module/{BannerAd.js → CloudXBannerAd.js} +41 -36
- package/lib/module/CloudXBannerAd.js.map +1 -0
- package/lib/module/CloudXErrorCode.js +110 -0
- package/lib/module/CloudXErrorCode.js.map +1 -0
- package/lib/module/{InterstitialAd.js → CloudXInterstitialAd.js} +9 -9
- package/lib/module/CloudXInterstitialAd.js.map +1 -0
- package/lib/module/{MRecAd.js → CloudXMRECAd.js} +41 -36
- package/lib/module/CloudXMRECAd.js.map +1 -0
- package/lib/module/{RewardedAd.js → CloudXRewardedAd.js} +9 -9
- package/lib/module/CloudXRewardedAd.js.map +1 -0
- package/lib/module/EventEmitter.js +2 -2
- package/lib/module/EventEmitter.js.map +1 -1
- package/lib/module/hooks.js +14 -15
- package/lib/module/hooks.js.map +1 -1
- package/lib/module/index.js +9 -10
- package/lib/module/index.js.map +1 -1
- package/lib/module/specs/{NativeCloudXModule.js → NativeCloudX.js} +2 -2
- package/lib/module/specs/NativeCloudX.js.map +1 -0
- package/lib/module/types/AdProps.js +2 -0
- package/lib/module/types/AdProps.js.map +1 -0
- package/lib/module/types/InterstitialAd.js +2 -0
- package/lib/module/types/InterstitialAd.js.map +1 -0
- package/lib/module/types/MRECAd.js +2 -0
- package/lib/module/types/MRECAd.js.map +1 -0
- package/lib/module/types/ViewAd.js +2 -0
- package/lib/module/types/ViewAd.js.map +1 -0
- package/lib/typescript/src/AppTrackingTransparency.d.ts +4 -4
- package/lib/typescript/src/AppTrackingTransparency.d.ts.map +1 -1
- package/lib/typescript/src/CloudX.d.ts.map +1 -1
- package/lib/typescript/src/CloudXAdPosition.d.ts +16 -0
- package/lib/typescript/src/CloudXAdPosition.d.ts.map +1 -0
- package/lib/typescript/src/CloudXBannerAd.d.ts +4 -0
- package/lib/typescript/src/CloudXBannerAd.d.ts.map +1 -0
- package/lib/typescript/src/{ErrorCode.d.ts → CloudXErrorCode.d.ts} +2 -2
- package/lib/typescript/src/CloudXErrorCode.d.ts.map +1 -0
- package/lib/typescript/src/CloudXInterstitialAd.d.ts +4 -0
- package/lib/typescript/src/CloudXInterstitialAd.d.ts.map +1 -0
- package/lib/typescript/src/CloudXMRECAd.d.ts +4 -0
- package/lib/typescript/src/CloudXMRECAd.d.ts.map +1 -0
- package/lib/typescript/src/CloudXRewardedAd.d.ts +4 -0
- package/lib/typescript/src/CloudXRewardedAd.d.ts.map +1 -0
- package/lib/typescript/src/EventEmitter.d.ts +4 -2
- package/lib/typescript/src/EventEmitter.d.ts.map +1 -1
- package/lib/typescript/src/hooks.d.ts +7 -8
- package/lib/typescript/src/hooks.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +12 -13
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/{NativeCloudXModule.d.ts → NativeCloudX.d.ts} +47 -64
- package/lib/typescript/src/specs/NativeCloudX.d.ts.map +1 -0
- package/lib/typescript/src/types/AdEvent.d.ts +3 -3
- package/lib/typescript/src/types/AdEvent.d.ts.map +1 -1
- package/lib/typescript/src/types/AdInfo.d.ts +7 -7
- package/lib/typescript/src/types/AdInfo.d.ts.map +1 -1
- package/lib/typescript/src/types/AdProps.d.ts +21 -0
- package/lib/typescript/src/types/AdProps.d.ts.map +1 -0
- package/lib/typescript/src/types/BannerAd.d.ts +8 -34
- package/lib/typescript/src/types/BannerAd.d.ts.map +1 -1
- package/lib/typescript/src/types/CloudX.d.ts +7 -4
- package/lib/typescript/src/types/CloudX.d.ts.map +1 -1
- package/lib/typescript/src/types/Configuration.d.ts +7 -3
- package/lib/typescript/src/types/Configuration.d.ts.map +1 -1
- package/lib/typescript/src/types/FullscreenAd.d.ts +10 -9
- package/lib/typescript/src/types/FullscreenAd.d.ts.map +1 -1
- package/lib/typescript/src/types/InterstitialAd.d.ts +8 -0
- package/lib/typescript/src/types/InterstitialAd.d.ts.map +1 -0
- package/lib/typescript/src/types/MRECAd.d.ts +13 -0
- package/lib/typescript/src/types/MRECAd.d.ts.map +1 -0
- package/lib/typescript/src/types/RewardedAd.d.ts +5 -4
- package/lib/typescript/src/types/RewardedAd.d.ts.map +1 -1
- package/lib/typescript/src/types/ViewAd.d.ts +29 -0
- package/lib/typescript/src/types/ViewAd.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +11 -7
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/package.json +8 -10
- package/src/AppTrackingTransparency.ts +10 -10
- package/src/CloudX.ts +21 -16
- package/src/CloudXAdPosition.ts +16 -0
- package/src/{BannerAd.ts → CloudXBannerAd.ts} +69 -47
- package/src/{ErrorCode.ts → CloudXErrorCode.ts} +1 -1
- package/src/{InterstitialAd.ts → CloudXInterstitialAd.ts} +17 -17
- package/src/{MRecAd.ts → CloudXMRECAd.ts} +69 -47
- package/src/{RewardedAd.ts → CloudXRewardedAd.ts} +18 -18
- package/src/EventEmitter.ts +4 -4
- package/src/hooks.ts +20 -22
- package/src/index.ts +27 -24
- package/src/specs/{NativeCloudXModule.ts → NativeCloudX.ts} +61 -82
- package/src/types/AdEvent.ts +3 -3
- package/src/types/AdInfo.ts +7 -7
- package/src/types/AdProps.ts +27 -0
- package/src/types/BannerAd.ts +8 -54
- package/src/types/CloudX.ts +10 -5
- package/src/types/Configuration.ts +8 -3
- package/src/types/FullscreenAd.ts +10 -9
- package/src/types/InterstitialAd.ts +8 -0
- package/src/types/MRECAd.ts +13 -0
- package/src/types/RewardedAd.ts +5 -4
- package/src/types/ViewAd.ts +38 -0
- package/src/types/index.ts +11 -7
- package/android/src/main/java/com/cloudxreactnative/CloudXAdViewEvent.kt +0 -15
- package/android/src/main/java/com/cloudxreactnative/CloudXBannerViewManagerImpl.kt +0 -472
- package/android/src/main/java/com/cloudxreactnative/CloudXReactNativeModuleImpl.kt +0 -861
- package/android/src/newarch/com/cloudxreactnative/CloudXBannerViewManager.kt +0 -90
- package/android/src/oldarch/com/cloudxreactnative/CloudXBannerViewManager.kt +0 -76
- package/android/src/oldarch/com/cloudxreactnative/CloudXReactNativePackage.kt +0 -16
- package/ios/RNCloudXBannerView.h +0 -51
- package/ios/RNCloudXBannerView.mm +0 -633
- package/ios/RNCloudXBannerViewManager.h +0 -11
- package/ios/RNCloudXBannerViewManager.mm +0 -60
- package/ios/RNCloudXModule.h +0 -30
- package/ios/RNCloudXModule.mm +0 -1088
- package/lib/commonjs/AdView.js +0 -151
- package/lib/commonjs/AdView.js.map +0 -1
- package/lib/commonjs/BannerAd.js.map +0 -1
- package/lib/commonjs/ErrorCode.js +0 -116
- package/lib/commonjs/ErrorCode.js.map +0 -1
- package/lib/commonjs/InterstitialAd.js.map +0 -1
- package/lib/commonjs/MRecAd.js.map +0 -1
- package/lib/commonjs/RewardedAd.js.map +0 -1
- package/lib/commonjs/specs/CloudXAdViewNativeComponent.js +0 -26
- package/lib/commonjs/specs/CloudXAdViewNativeComponent.js.map +0 -1
- package/lib/commonjs/specs/NativeCloudXModule.js.map +0 -1
- package/lib/module/AdView.js +0 -144
- package/lib/module/AdView.js.map +0 -1
- package/lib/module/BannerAd.js.map +0 -1
- package/lib/module/ErrorCode.js +0 -110
- package/lib/module/ErrorCode.js.map +0 -1
- package/lib/module/InterstitialAd.js.map +0 -1
- package/lib/module/MRecAd.js.map +0 -1
- package/lib/module/RewardedAd.js.map +0 -1
- package/lib/module/specs/CloudXAdViewNativeComponent.js +0 -20
- package/lib/module/specs/CloudXAdViewNativeComponent.js.map +0 -1
- package/lib/module/specs/NativeCloudXModule.js.map +0 -1
- package/lib/typescript/src/AdView.d.ts +0 -69
- package/lib/typescript/src/AdView.d.ts.map +0 -1
- package/lib/typescript/src/BannerAd.d.ts +0 -4
- package/lib/typescript/src/BannerAd.d.ts.map +0 -1
- package/lib/typescript/src/ErrorCode.d.ts.map +0 -1
- package/lib/typescript/src/InterstitialAd.d.ts +0 -4
- package/lib/typescript/src/InterstitialAd.d.ts.map +0 -1
- package/lib/typescript/src/MRecAd.d.ts +0 -4
- package/lib/typescript/src/MRecAd.d.ts.map +0 -1
- package/lib/typescript/src/RewardedAd.d.ts +0 -4
- package/lib/typescript/src/RewardedAd.d.ts.map +0 -1
- package/lib/typescript/src/specs/CloudXAdViewNativeComponent.d.ts +0 -61
- package/lib/typescript/src/specs/CloudXAdViewNativeComponent.d.ts.map +0 -1
- package/lib/typescript/src/specs/NativeCloudXModule.d.ts.map +0 -1
- package/src/AdView.tsx +0 -213
- package/src/specs/CloudXAdViewNativeComponent.ts +0 -82
|
@@ -1,133 +1,155 @@
|
|
|
1
1
|
import { addEventListener, removeEventListener } from './EventEmitter';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import
|
|
2
|
+
import type { CloudXAdPosition } from './CloudXAdPosition';
|
|
3
|
+
import type { CloudXAdInfo, CloudXAdLoadFailedInfo } from './types/AdInfo';
|
|
4
|
+
import type { CloudXMRECAdType } from './types/MRECAd';
|
|
5
|
+
import NativeCloudX from './specs/NativeCloudX';
|
|
5
6
|
|
|
6
7
|
const {
|
|
7
8
|
ON_MREC_AD_LOADED_EVENT,
|
|
8
9
|
ON_MREC_AD_LOAD_FAILED_EVENT,
|
|
9
10
|
ON_MREC_AD_CLICKED_EVENT,
|
|
10
|
-
ON_MREC_AD_EXPANDED_EVENT,
|
|
11
11
|
ON_MREC_AD_COLLAPSED_EVENT,
|
|
12
|
+
ON_MREC_AD_EXPANDED_EVENT,
|
|
12
13
|
ON_MREC_AD_REVENUE_PAID,
|
|
13
|
-
} =
|
|
14
|
+
} = NativeCloudX.getConstants();
|
|
14
15
|
|
|
15
|
-
const createAd = (adUnitId: string, position:
|
|
16
|
-
|
|
16
|
+
const createAd = (adUnitId: string, position: CloudXAdPosition): void => {
|
|
17
|
+
NativeCloudX.createMREC(adUnitId, position);
|
|
17
18
|
};
|
|
18
19
|
|
|
19
|
-
const createAdWithOffsets = (adUnitId: string, position:
|
|
20
|
-
|
|
20
|
+
const createAdWithOffsets = (adUnitId: string, position: CloudXAdPosition, xOffset: number, yOffset: number): void => {
|
|
21
|
+
NativeCloudX.createMRECWithOffsets(adUnitId, position, xOffset, yOffset);
|
|
21
22
|
};
|
|
22
23
|
|
|
23
24
|
const destroyAd = (adUnitId: string): void => {
|
|
24
|
-
|
|
25
|
+
NativeCloudX.destroyMREC(adUnitId);
|
|
25
26
|
};
|
|
26
27
|
|
|
27
28
|
const showAd = (adUnitId: string): void => {
|
|
28
|
-
|
|
29
|
+
NativeCloudX.showMREC(adUnitId);
|
|
29
30
|
};
|
|
30
31
|
|
|
31
32
|
const hideAd = (adUnitId: string): void => {
|
|
32
|
-
|
|
33
|
+
NativeCloudX.hideMREC(adUnitId);
|
|
33
34
|
};
|
|
34
35
|
|
|
35
36
|
const setPlacement = (adUnitId: string, placement: string | null): void => {
|
|
36
|
-
|
|
37
|
+
NativeCloudX.setMRECPlacement(adUnitId, placement);
|
|
37
38
|
};
|
|
38
39
|
|
|
39
40
|
const setCustomData = (adUnitId: string, customData: string | null): void => {
|
|
40
|
-
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const startAutoRefresh = (adUnitId: string): void => {
|
|
44
|
-
NativeCloudXModule.startMRecAutoRefresh(adUnitId);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const stopAutoRefresh = (adUnitId: string): void => {
|
|
48
|
-
NativeCloudXModule.stopMRecAutoRefresh(adUnitId);
|
|
41
|
+
NativeCloudX.setMRECCustomData(adUnitId, customData);
|
|
49
42
|
};
|
|
50
43
|
|
|
51
|
-
const updatePosition = (adUnitId: string,
|
|
52
|
-
|
|
44
|
+
const updatePosition = (adUnitId: string, bannerPosition: CloudXAdPosition): void => {
|
|
45
|
+
NativeCloudX.updateMRECPosition(adUnitId, bannerPosition);
|
|
53
46
|
};
|
|
54
47
|
|
|
55
|
-
const
|
|
56
|
-
|
|
48
|
+
const startAutoRefresh = (adUnitId: string): void => {
|
|
49
|
+
NativeCloudX.startMRECAutoRefresh(adUnitId);
|
|
57
50
|
};
|
|
58
51
|
|
|
59
|
-
const
|
|
60
|
-
|
|
52
|
+
const stopAutoRefresh = (adUnitId: string): void => {
|
|
53
|
+
NativeCloudX.stopMRECAutoRefresh(adUnitId);
|
|
61
54
|
};
|
|
62
55
|
|
|
63
|
-
const addAdLoadedEventListener = (listener: (adInfo:
|
|
56
|
+
const addAdLoadedEventListener = (listener: (adInfo: CloudXAdInfo) => void): void => {
|
|
64
57
|
addEventListener(ON_MREC_AD_LOADED_EVENT, listener);
|
|
65
58
|
};
|
|
59
|
+
|
|
66
60
|
const removeAdLoadedEventListener = (): void => {
|
|
67
61
|
removeEventListener(ON_MREC_AD_LOADED_EVENT);
|
|
68
62
|
};
|
|
69
63
|
|
|
70
|
-
const addAdLoadFailedEventListener = (listener: (errorInfo:
|
|
64
|
+
const addAdLoadFailedEventListener = (listener: (errorInfo: CloudXAdLoadFailedInfo) => void): void => {
|
|
71
65
|
addEventListener(ON_MREC_AD_LOAD_FAILED_EVENT, listener);
|
|
72
66
|
};
|
|
67
|
+
|
|
73
68
|
const removeAdLoadFailedEventListener = (): void => {
|
|
74
69
|
removeEventListener(ON_MREC_AD_LOAD_FAILED_EVENT);
|
|
75
70
|
};
|
|
76
71
|
|
|
77
|
-
const addAdClickedEventListener = (listener: (adInfo:
|
|
72
|
+
const addAdClickedEventListener = (listener: (adInfo: CloudXAdInfo) => void): void => {
|
|
78
73
|
addEventListener(ON_MREC_AD_CLICKED_EVENT, listener);
|
|
79
74
|
};
|
|
75
|
+
|
|
80
76
|
const removeAdClickedEventListener = (): void => {
|
|
81
77
|
removeEventListener(ON_MREC_AD_CLICKED_EVENT);
|
|
82
78
|
};
|
|
83
79
|
|
|
84
|
-
const
|
|
85
|
-
addEventListener(ON_MREC_AD_EXPANDED_EVENT, listener);
|
|
86
|
-
};
|
|
87
|
-
const removeAdExpandedEventListener = (): void => {
|
|
88
|
-
removeEventListener(ON_MREC_AD_EXPANDED_EVENT);
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
80
|
+
const addAdCollapsedEventListener = (listener: (adInfo: CloudXAdInfo) => void): void => {
|
|
92
81
|
addEventListener(ON_MREC_AD_COLLAPSED_EVENT, listener);
|
|
93
82
|
};
|
|
83
|
+
|
|
94
84
|
const removeAdCollapsedEventListener = (): void => {
|
|
95
85
|
removeEventListener(ON_MREC_AD_COLLAPSED_EVENT);
|
|
96
86
|
};
|
|
97
87
|
|
|
98
|
-
const
|
|
88
|
+
const addAdExpandedEventListener = (listener: (adInfo: CloudXAdInfo) => void): void => {
|
|
89
|
+
addEventListener(ON_MREC_AD_EXPANDED_EVENT, listener);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const removeAdExpandedEventListener = (): void => {
|
|
93
|
+
removeEventListener(ON_MREC_AD_EXPANDED_EVENT);
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const addAdRevenuePaidListener = (listener: (adInfo: CloudXAdInfo) => void): void => {
|
|
99
97
|
addEventListener(ON_MREC_AD_REVENUE_PAID, listener);
|
|
100
98
|
};
|
|
99
|
+
|
|
101
100
|
const removeAdRevenuePaidListener = (): void => {
|
|
102
101
|
removeEventListener(ON_MREC_AD_REVENUE_PAID);
|
|
103
102
|
};
|
|
104
103
|
|
|
105
|
-
|
|
104
|
+
// MREC specific APIs
|
|
105
|
+
|
|
106
|
+
const setBackgroundColor = (adUnitId: string, hexColorCode: string): void => {
|
|
107
|
+
NativeCloudX.setMRECBackgroundColor(adUnitId, hexColorCode);
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
const updateOffsets = (adUnitId: string, xOffset: number, yOffset: number): void => {
|
|
111
|
+
NativeCloudX.updateMRECOffsets(adUnitId, xOffset, yOffset);
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
export const CloudXMRECAd: CloudXMRECAdType = {
|
|
106
115
|
createAd,
|
|
107
116
|
createAdWithOffsets,
|
|
108
117
|
destroyAd,
|
|
118
|
+
|
|
109
119
|
showAd,
|
|
110
120
|
hideAd,
|
|
111
|
-
|
|
112
|
-
updateOffsets,
|
|
113
|
-
setBackgroundColor,
|
|
121
|
+
|
|
114
122
|
setPlacement,
|
|
115
123
|
setCustomData,
|
|
124
|
+
|
|
125
|
+
updatePosition,
|
|
126
|
+
|
|
116
127
|
startAutoRefresh,
|
|
117
128
|
stopAutoRefresh,
|
|
118
129
|
|
|
119
130
|
addAdLoadedEventListener,
|
|
120
131
|
removeAdLoadedEventListener,
|
|
132
|
+
|
|
121
133
|
addAdLoadFailedEventListener,
|
|
122
134
|
removeAdLoadFailedEventListener,
|
|
135
|
+
|
|
123
136
|
addAdClickedEventListener,
|
|
124
137
|
removeAdClickedEventListener,
|
|
125
|
-
|
|
126
|
-
removeAdExpandedEventListener,
|
|
138
|
+
|
|
127
139
|
addAdCollapsedEventListener,
|
|
128
140
|
removeAdCollapsedEventListener,
|
|
141
|
+
|
|
142
|
+
addAdExpandedEventListener,
|
|
143
|
+
removeAdExpandedEventListener,
|
|
144
|
+
|
|
129
145
|
addAdRevenuePaidListener,
|
|
130
146
|
removeAdRevenuePaidListener,
|
|
147
|
+
|
|
148
|
+
// MREC specific APIs
|
|
149
|
+
|
|
150
|
+
setBackgroundColor,
|
|
151
|
+
|
|
152
|
+
updateOffsets,
|
|
131
153
|
};
|
|
132
154
|
|
|
133
|
-
export default
|
|
155
|
+
export default CloudXMRECAd;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { addEventListener, removeEventListener } from './EventEmitter';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import
|
|
2
|
+
import type { CloudXAdDisplayFailedInfo, CloudXAdInfo, CloudXAdLoadFailedInfo, CloudXAdRewardInfo } from './types/AdInfo';
|
|
3
|
+
import type { CloudXRewardedAdType } from './types/RewardedAd';
|
|
4
|
+
import NativeCloudX from './specs/NativeCloudX';
|
|
5
5
|
|
|
6
6
|
const {
|
|
7
7
|
ON_REWARDED_AD_LOADED_EVENT,
|
|
@@ -12,81 +12,81 @@ const {
|
|
|
12
12
|
ON_REWARDED_AD_HIDDEN_EVENT,
|
|
13
13
|
ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
|
|
14
14
|
ON_REWARDED_AD_REVENUE_PAID,
|
|
15
|
-
} =
|
|
15
|
+
} = NativeCloudX.getConstants();
|
|
16
16
|
|
|
17
17
|
const isAdReady = (adUnitId: string): Promise<boolean> => {
|
|
18
|
-
return
|
|
18
|
+
return NativeCloudX.isRewardedReady(adUnitId);
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
const loadAd = (adUnitId: string): void => {
|
|
22
|
-
|
|
22
|
+
NativeCloudX.loadRewarded(adUnitId);
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
const showAd = (adUnitId: string, placement?: string | null, customData?: string | null): void => {
|
|
26
|
-
|
|
26
|
+
NativeCloudX.showRewarded(adUnitId, placement ?? undefined, customData ?? undefined);
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
const destroyAd = (adUnitId: string): void => {
|
|
30
|
-
|
|
30
|
+
NativeCloudX.destroyRewarded(adUnitId);
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
const addAdLoadedEventListener = (listener: (adInfo:
|
|
33
|
+
const addAdLoadedEventListener = (listener: (adInfo: CloudXAdInfo) => void): void => {
|
|
34
34
|
addEventListener(ON_REWARDED_AD_LOADED_EVENT, listener);
|
|
35
35
|
};
|
|
36
36
|
const removeAdLoadedEventListener = (): void => {
|
|
37
37
|
removeEventListener(ON_REWARDED_AD_LOADED_EVENT);
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
-
const addAdLoadFailedEventListener = (listener: (errorInfo:
|
|
40
|
+
const addAdLoadFailedEventListener = (listener: (errorInfo: CloudXAdLoadFailedInfo) => void): void => {
|
|
41
41
|
addEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT, listener);
|
|
42
42
|
};
|
|
43
43
|
const removeAdLoadFailedEventListener = (): void => {
|
|
44
44
|
removeEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT);
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
const addAdClickedEventListener = (listener: (adInfo:
|
|
47
|
+
const addAdClickedEventListener = (listener: (adInfo: CloudXAdInfo) => void): void => {
|
|
48
48
|
addEventListener(ON_REWARDED_AD_CLICKED_EVENT, listener);
|
|
49
49
|
};
|
|
50
50
|
const removeAdClickedEventListener = (): void => {
|
|
51
51
|
removeEventListener(ON_REWARDED_AD_CLICKED_EVENT);
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
-
const addAdDisplayedEventListener = (listener: (adInfo:
|
|
54
|
+
const addAdDisplayedEventListener = (listener: (adInfo: CloudXAdInfo) => void): void => {
|
|
55
55
|
addEventListener(ON_REWARDED_AD_DISPLAYED_EVENT, listener);
|
|
56
56
|
};
|
|
57
57
|
const removeAdDisplayedEventListener = (): void => {
|
|
58
58
|
removeEventListener(ON_REWARDED_AD_DISPLAYED_EVENT);
|
|
59
59
|
};
|
|
60
60
|
|
|
61
|
-
const addAdFailedToDisplayEventListener = (listener: (errorInfo:
|
|
61
|
+
const addAdFailedToDisplayEventListener = (listener: (errorInfo: CloudXAdDisplayFailedInfo) => void): void => {
|
|
62
62
|
addEventListener(ON_REWARDED_AD_DISPLAY_FAILED_EVENT, listener);
|
|
63
63
|
};
|
|
64
64
|
const removeAdFailedToDisplayEventListener = (): void => {
|
|
65
65
|
removeEventListener(ON_REWARDED_AD_DISPLAY_FAILED_EVENT);
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
const addAdHiddenEventListener = (listener: (adInfo:
|
|
68
|
+
const addAdHiddenEventListener = (listener: (adInfo: CloudXAdInfo) => void): void => {
|
|
69
69
|
addEventListener(ON_REWARDED_AD_HIDDEN_EVENT, listener);
|
|
70
70
|
};
|
|
71
71
|
const removeAdHiddenEventListener = (): void => {
|
|
72
72
|
removeEventListener(ON_REWARDED_AD_HIDDEN_EVENT);
|
|
73
73
|
};
|
|
74
74
|
|
|
75
|
-
const addAdReceivedRewardEventListener = (listener: (rewardInfo:
|
|
75
|
+
const addAdReceivedRewardEventListener = (listener: (rewardInfo: CloudXAdRewardInfo) => void): void => {
|
|
76
76
|
addEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT, listener);
|
|
77
77
|
};
|
|
78
78
|
const removeAdReceivedRewardEventListener = (): void => {
|
|
79
79
|
removeEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT);
|
|
80
80
|
};
|
|
81
81
|
|
|
82
|
-
const addAdRevenuePaidListener = (listener: (adInfo:
|
|
82
|
+
const addAdRevenuePaidListener = (listener: (adInfo: CloudXAdInfo) => void): void => {
|
|
83
83
|
addEventListener(ON_REWARDED_AD_REVENUE_PAID, listener);
|
|
84
84
|
};
|
|
85
85
|
const removeAdRevenuePaidListener = (): void => {
|
|
86
86
|
removeEventListener(ON_REWARDED_AD_REVENUE_PAID);
|
|
87
87
|
};
|
|
88
88
|
|
|
89
|
-
export const
|
|
89
|
+
export const CloudXRewardedAd: CloudXRewardedAdType = {
|
|
90
90
|
isAdReady,
|
|
91
91
|
loadAd,
|
|
92
92
|
showAd,
|
|
@@ -110,4 +110,4 @@ export const RewardedAd: RewardedAdType = {
|
|
|
110
110
|
removeAdRevenuePaidListener,
|
|
111
111
|
};
|
|
112
112
|
|
|
113
|
-
export default
|
|
113
|
+
export default CloudXRewardedAd;
|
package/src/EventEmitter.ts
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
|
|
7
7
|
import { NativeEventEmitter } from 'react-native';
|
|
8
8
|
import type { EventSubscription } from 'react-native';
|
|
9
|
-
import type {
|
|
10
|
-
import
|
|
9
|
+
import type { CloudXAdEventObject, CloudXAdEventListener } from './types/AdEvent';
|
|
10
|
+
import NativeCloudX from './specs/NativeCloudX';
|
|
11
11
|
|
|
12
|
-
const emitter = new NativeEventEmitter(
|
|
12
|
+
export const emitter = new NativeEventEmitter(NativeCloudX);
|
|
13
13
|
|
|
14
14
|
const subscriptions: Record<string, EventSubscription> = {};
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ const subscriptions: Record<string, EventSubscription> = {};
|
|
|
17
17
|
* Subscribes to a specific ad event.
|
|
18
18
|
* If a listener already exists for the event, it will be replaced.
|
|
19
19
|
*/
|
|
20
|
-
export const addEventListener = <T extends
|
|
20
|
+
export const addEventListener = <T extends CloudXAdEventObject>(event: string, handler: CloudXAdEventListener<T>): void => {
|
|
21
21
|
const subscription = emitter.addListener(event, handler);
|
|
22
22
|
const currentSubscription = subscriptions[event];
|
|
23
23
|
if (currentSubscription) {
|
package/src/hooks.ts
CHANGED
|
@@ -6,11 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { useEffect, useState, useCallback, useRef } from 'react';
|
|
9
|
-
import { NativeEventEmitter } from 'react-native';
|
|
10
9
|
import type { EventSubscription } from 'react-native';
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
const emitter = new NativeEventEmitter(NativeCloudXModule);
|
|
10
|
+
import NativeCloudX from './specs/NativeCloudX';
|
|
11
|
+
import { emitter } from './EventEmitter';
|
|
14
12
|
|
|
15
13
|
const {
|
|
16
14
|
ON_INTERSTITIAL_LOADED_EVENT,
|
|
@@ -24,13 +22,13 @@ const {
|
|
|
24
22
|
ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
|
|
25
23
|
ON_BANNER_AD_LOADED_EVENT,
|
|
26
24
|
ON_BANNER_AD_LOAD_FAILED_EVENT,
|
|
27
|
-
} =
|
|
25
|
+
} = NativeCloudX.getConstants();
|
|
28
26
|
|
|
29
27
|
// ---------------------------------------------------------------------------
|
|
30
28
|
// useCloudXInterstitial
|
|
31
29
|
// ---------------------------------------------------------------------------
|
|
32
30
|
|
|
33
|
-
export type
|
|
31
|
+
export type CloudXInterstitialHookResult = {
|
|
34
32
|
isLoaded: boolean;
|
|
35
33
|
isLoading: boolean;
|
|
36
34
|
error: string | null;
|
|
@@ -44,7 +42,7 @@ export type InterstitialHookResult = {
|
|
|
44
42
|
*
|
|
45
43
|
* @param adUnitId - The ad unit identifier.
|
|
46
44
|
*/
|
|
47
|
-
export function useCloudXInterstitial(adUnitId: string):
|
|
45
|
+
export function useCloudXInterstitial(adUnitId: string): CloudXInterstitialHookResult {
|
|
48
46
|
const [isLoaded, setIsLoaded] = useState(false);
|
|
49
47
|
const [isLoading, setIsLoading] = useState(false);
|
|
50
48
|
const [error, setError] = useState<string | null>(null);
|
|
@@ -94,14 +92,14 @@ export function useCloudXInterstitial(adUnitId: string): InterstitialHookResult
|
|
|
94
92
|
return () => {
|
|
95
93
|
mountedRef.current = false;
|
|
96
94
|
subs.forEach((s) => s.remove());
|
|
97
|
-
|
|
95
|
+
NativeCloudX.destroyInterstitial(adUnitId);
|
|
98
96
|
};
|
|
99
97
|
}, [adUnitId]);
|
|
100
98
|
|
|
101
99
|
const load = useCallback(() => {
|
|
102
100
|
setIsLoading(true);
|
|
103
101
|
setError(null);
|
|
104
|
-
|
|
102
|
+
NativeCloudX.loadInterstitial(adUnitId);
|
|
105
103
|
}, [adUnitId]);
|
|
106
104
|
|
|
107
105
|
const show = useCallback(
|
|
@@ -110,13 +108,13 @@ export function useCloudXInterstitial(adUnitId: string): InterstitialHookResult
|
|
|
110
108
|
setError('Ad not loaded');
|
|
111
109
|
return;
|
|
112
110
|
}
|
|
113
|
-
|
|
111
|
+
NativeCloudX.showInterstitial(adUnitId, placement ?? undefined, customData ?? undefined);
|
|
114
112
|
},
|
|
115
113
|
[adUnitId, isLoaded],
|
|
116
114
|
);
|
|
117
115
|
|
|
118
116
|
const destroy = useCallback(() => {
|
|
119
|
-
|
|
117
|
+
NativeCloudX.destroyInterstitial(adUnitId);
|
|
120
118
|
setIsLoaded(false);
|
|
121
119
|
setIsLoading(false);
|
|
122
120
|
setError(null);
|
|
@@ -129,7 +127,7 @@ export function useCloudXInterstitial(adUnitId: string): InterstitialHookResult
|
|
|
129
127
|
// useCloudXRewarded
|
|
130
128
|
// ---------------------------------------------------------------------------
|
|
131
129
|
|
|
132
|
-
export type
|
|
130
|
+
export type CloudXRewardedHookResult = {
|
|
133
131
|
isLoaded: boolean;
|
|
134
132
|
isLoading: boolean;
|
|
135
133
|
error: string | null;
|
|
@@ -144,7 +142,7 @@ export type RewardedHookResult = {
|
|
|
144
142
|
*
|
|
145
143
|
* @param adUnitId - The ad unit identifier.
|
|
146
144
|
*/
|
|
147
|
-
export function useCloudXRewarded(adUnitId: string):
|
|
145
|
+
export function useCloudXRewarded(adUnitId: string): CloudXRewardedHookResult {
|
|
148
146
|
const [isLoaded, setIsLoaded] = useState(false);
|
|
149
147
|
const [isLoading, setIsLoading] = useState(false);
|
|
150
148
|
const [error, setError] = useState<string | null>(null);
|
|
@@ -188,6 +186,7 @@ export function useCloudXRewarded(adUnitId: string): RewardedHookResult {
|
|
|
188
186
|
emitter.addListener(ON_REWARDED_AD_HIDDEN_EVENT, (event: { adUnitId: string }) => {
|
|
189
187
|
if (event.adUnitId === adUnitId && mountedRef.current) {
|
|
190
188
|
setIsLoaded(false);
|
|
189
|
+
setRewardEarned(false);
|
|
191
190
|
}
|
|
192
191
|
}),
|
|
193
192
|
);
|
|
@@ -203,7 +202,7 @@ export function useCloudXRewarded(adUnitId: string): RewardedHookResult {
|
|
|
203
202
|
return () => {
|
|
204
203
|
mountedRef.current = false;
|
|
205
204
|
subs.forEach((s) => s.remove());
|
|
206
|
-
|
|
205
|
+
NativeCloudX.destroyRewarded(adUnitId);
|
|
207
206
|
};
|
|
208
207
|
}, [adUnitId]);
|
|
209
208
|
|
|
@@ -211,7 +210,7 @@ export function useCloudXRewarded(adUnitId: string): RewardedHookResult {
|
|
|
211
210
|
setIsLoading(true);
|
|
212
211
|
setError(null);
|
|
213
212
|
setRewardEarned(false);
|
|
214
|
-
|
|
213
|
+
NativeCloudX.loadRewarded(adUnitId);
|
|
215
214
|
}, [adUnitId]);
|
|
216
215
|
|
|
217
216
|
const show = useCallback(
|
|
@@ -220,13 +219,13 @@ export function useCloudXRewarded(adUnitId: string): RewardedHookResult {
|
|
|
220
219
|
setError('Ad not loaded');
|
|
221
220
|
return;
|
|
222
221
|
}
|
|
223
|
-
|
|
222
|
+
NativeCloudX.showRewarded(adUnitId, placement ?? undefined, customData ?? undefined);
|
|
224
223
|
},
|
|
225
224
|
[adUnitId, isLoaded],
|
|
226
225
|
);
|
|
227
226
|
|
|
228
227
|
const destroy = useCallback(() => {
|
|
229
|
-
|
|
228
|
+
NativeCloudX.destroyRewarded(adUnitId);
|
|
230
229
|
setIsLoaded(false);
|
|
231
230
|
setIsLoading(false);
|
|
232
231
|
setError(null);
|
|
@@ -240,7 +239,7 @@ export function useCloudXRewarded(adUnitId: string): RewardedHookResult {
|
|
|
240
239
|
// useCloudXBanner
|
|
241
240
|
// ---------------------------------------------------------------------------
|
|
242
241
|
|
|
243
|
-
export type
|
|
242
|
+
export type CloudXBannerHookResult = {
|
|
244
243
|
isLoaded: boolean;
|
|
245
244
|
error: string | null;
|
|
246
245
|
};
|
|
@@ -249,12 +248,11 @@ export type BannerHookResult = {
|
|
|
249
248
|
* Hook for listening to programmatic banner ad state.
|
|
250
249
|
*
|
|
251
250
|
* Subscribes to module-level banner events for a given adUnitId.
|
|
252
|
-
* Use with the programmatic
|
|
253
|
-
* For the <AdView> component, use its callback props (onAdLoaded, etc.) directly.
|
|
251
|
+
* Use with the programmatic CloudXBannerAd.createAd() API.
|
|
254
252
|
*
|
|
255
253
|
* @param adUnitId - The ad unit identifier.
|
|
256
254
|
*/
|
|
257
|
-
export function useCloudXBanner(adUnitId: string):
|
|
255
|
+
export function useCloudXBanner(adUnitId: string): CloudXBannerHookResult {
|
|
258
256
|
const [isLoaded, setIsLoaded] = useState(false);
|
|
259
257
|
const [error, setError] = useState<string | null>(null);
|
|
260
258
|
const mountedRef = useRef(true);
|
|
@@ -284,7 +282,7 @@ export function useCloudXBanner(adUnitId: string): BannerHookResult {
|
|
|
284
282
|
return () => {
|
|
285
283
|
mountedRef.current = false;
|
|
286
284
|
subs.forEach((s) => s.remove());
|
|
287
|
-
|
|
285
|
+
NativeCloudX.destroyBanner(adUnitId);
|
|
288
286
|
};
|
|
289
287
|
}, [adUnitId]);
|
|
290
288
|
|
package/src/index.ts
CHANGED
|
@@ -1,44 +1,47 @@
|
|
|
1
1
|
// Core SDK
|
|
2
2
|
export { default, CloudX } from './CloudX';
|
|
3
|
-
export { default as
|
|
3
|
+
export { default as NativeCloudX } from './specs/NativeCloudX';
|
|
4
4
|
|
|
5
5
|
// Ad Modules
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
|
|
11
|
-
// AdView Component
|
|
12
|
-
export { AdView, AdFormat, AdViewPosition } from './AdView';
|
|
13
|
-
export type { AdViewProps, AdViewHandler } from './AdView';
|
|
6
|
+
export { CloudXInterstitialAd } from './CloudXInterstitialAd';
|
|
7
|
+
export { CloudXRewardedAd } from './CloudXRewardedAd';
|
|
8
|
+
export { CloudXBannerAd } from './CloudXBannerAd';
|
|
9
|
+
export { CloudXMRECAd } from './CloudXMRECAd';
|
|
10
|
+
export { CloudXAdPosition } from './CloudXAdPosition';
|
|
14
11
|
|
|
15
12
|
// Error Codes
|
|
16
|
-
export {
|
|
13
|
+
export { CloudXErrorCode } from './CloudXErrorCode';
|
|
17
14
|
|
|
18
15
|
// App Tracking Transparency (iOS)
|
|
19
|
-
export { requestTrackingAuthorization, getTrackingAuthorizationStatus,
|
|
16
|
+
export { requestTrackingAuthorization, getTrackingAuthorizationStatus, CloudXATTStatus } from './AppTrackingTransparency';
|
|
20
17
|
|
|
21
18
|
// Hooks
|
|
22
19
|
export { useCloudXInterstitial, useCloudXRewarded, useCloudXBanner } from './hooks';
|
|
23
|
-
export type {
|
|
20
|
+
export type { CloudXInterstitialHookResult, CloudXRewardedHookResult, CloudXBannerHookResult } from './hooks';
|
|
24
21
|
|
|
25
22
|
// Types
|
|
26
23
|
export type {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
CloudXAdInfo,
|
|
25
|
+
CloudXAdLoadFailedInfo,
|
|
26
|
+
CloudXAdDisplayFailedInfo,
|
|
27
|
+
CloudXAdRewardInfo,
|
|
28
|
+
CloudXInitializationResult,
|
|
29
|
+
CloudXConfiguration,
|
|
32
30
|
CloudXType,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
CloudXLogLevelValue,
|
|
32
|
+
CloudXFullscreenAdType,
|
|
33
|
+
CloudXInterstitialAdType,
|
|
34
|
+
CloudXRewardedAdType,
|
|
35
|
+
CloudXViewAdType,
|
|
36
|
+
CloudXBannerAdType,
|
|
37
|
+
CloudXMRECAdType,
|
|
38
|
+
CloudXAdProps,
|
|
39
|
+
CloudXAdEventObject,
|
|
40
|
+
CloudXAdEventListener,
|
|
38
41
|
} from './types';
|
|
39
42
|
|
|
40
43
|
// Log level constants
|
|
41
|
-
export const
|
|
44
|
+
export const CloudXLogLevel = {
|
|
42
45
|
VERBOSE: 'verbose',
|
|
43
46
|
DEBUG: 'debug',
|
|
44
47
|
INFO: 'info',
|
|
@@ -47,4 +50,4 @@ export const LogLevel = {
|
|
|
47
50
|
NONE: 'none',
|
|
48
51
|
} as const;
|
|
49
52
|
|
|
50
|
-
export type
|
|
53
|
+
export type CloudXLogLevel = (typeof CloudXLogLevel)[keyof typeof CloudXLogLevel];
|