react-native-applovin-max 5.7.2 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +1 -1
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/com/applovin/mediation/adapters/GoogleAdManagerMediationAdapter.java.saved +1616 -0
  4. package/android/src/main/java/com/applovin/mediation/adapters/{GoogleMediationAdapter.java.saved → GoogleMediationAdapter.java.old} +126 -49
  5. package/android/src/main/java/com/applovin/mediation/adapters/MintegralMediationAdapter.java.old +1481 -0
  6. package/ios/AppLovinMAX.m +1 -9
  7. package/ios/AppLovinMAX.xcodeproj/project.pbxproj +4 -4
  8. package/ios/AppLovinMAX.xcworkspace/xcuserdata/hiroshi.watanabe.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  9. package/ios/AppLovinMAXNativeAdView.m +8 -1
  10. package/ios/Podfile +2 -2
  11. package/ios/Podfile.lock +5 -5
  12. package/package.json +2 -1
  13. package/react-native-applovin-max.podspec +2 -2
  14. package/src/AdView.tsx +251 -0
  15. package/src/AppLovinMAX.ts +24 -0
  16. package/src/AppOpenAd.ts +128 -0
  17. package/src/BannerAd.ts +175 -0
  18. package/src/EventEmitter.ts +27 -0
  19. package/src/InterstitialAd.ts +128 -0
  20. package/src/MRecAd.ts +147 -0
  21. package/src/Privacy.ts +6 -0
  22. package/src/RewardedAd.ts +144 -0
  23. package/src/TargetingData.ts +214 -0
  24. package/src/index.ts +21 -0
  25. package/src/nativeAd/NativeAdView.tsx +162 -0
  26. package/src/nativeAd/NativeAdViewComponents.tsx +185 -0
  27. package/src/nativeAd/NativeAdViewProvider.tsx +35 -0
  28. package/src/types/AdEvent.ts +26 -0
  29. package/src/types/AdInfo.ts +348 -0
  30. package/src/types/AdProps.ts +60 -0
  31. package/src/types/AdViewProps.ts +36 -0
  32. package/src/types/AppLovinMAX.ts +87 -0
  33. package/src/types/AppOpenAd.ts +3 -0
  34. package/src/types/BannerAd.ts +47 -0
  35. package/src/types/Configuration.ts +11 -0
  36. package/src/types/FullscreenAd.ts +141 -0
  37. package/src/types/InterstitialAd.ts +3 -0
  38. package/src/types/MRecAd.ts +13 -0
  39. package/src/types/NativeAd.ts +50 -0
  40. package/src/types/NativeAdViewProps.ts +17 -0
  41. package/src/types/Privacy.ts +74 -0
  42. package/src/types/RewardedAd.ts +20 -0
  43. package/src/types/TargetingData.ts +51 -0
  44. package/src/types/ViewAd.ts +162 -0
  45. package/src/types/index.ts +4 -0
  46. package/src/AppLovinMAXAdView.js +0 -231
  47. package/src/AppLovinMAXEventListeners.js +0 -419
  48. package/src/NativeAdComponents.js +0 -208
  49. package/src/NativeAdView.js +0 -164
  50. package/src/NativeAdViewProvider.js +0 -19
  51. package/src/TargetingData.js +0 -104
  52. package/src/index.js +0 -291
@@ -0,0 +1,175 @@
1
+ import { NativeModules } from "react-native";
2
+ import { addEventListener, removeEventListener } from "./EventEmitter"
3
+ import type { AdInfo, AdLoadFailedInfo, AdRevenueInfo } from "./types/AdInfo";
4
+ import type { BannerAdType } from "./types/BannerAd";
5
+ import type { AdViewPosition } from "./AdView";
6
+
7
+ const { AppLovinMAX } = NativeModules;
8
+
9
+ const {
10
+ ON_BANNER_AD_LOADED_EVENT,
11
+ ON_BANNER_AD_LOAD_FAILED_EVENT,
12
+ ON_BANNER_AD_CLICKED_EVENT,
13
+ ON_BANNER_AD_COLLAPSED_EVENT,
14
+ ON_BANNER_AD_EXPANDED_EVENT,
15
+ ON_BANNER_AD_REVENUE_PAID,
16
+ } = AppLovinMAX.getConstants();
17
+
18
+ const createAd = (adUnitId: string, position: AdViewPosition, xOffset?: number, yOffset?: number): void => {
19
+ AppLovinMAX.createBannerWithOffsets(adUnitId, position, xOffset ?? 0, yOffset ?? 0);
20
+ }
21
+
22
+ const destroyAd = (adUnitId: string): void => {
23
+ AppLovinMAX.destroyBanner(adUnitId);
24
+ }
25
+
26
+ const showAd = (adUnitId: string): void => {
27
+ AppLovinMAX.showBanner(adUnitId);
28
+ }
29
+
30
+ const hideAd = (adUnitId: string): void => {
31
+ AppLovinMAX.hideBanner(adUnitId);
32
+ }
33
+
34
+ const setPlacement = (adUnitId: string, placement: string | null): void => {
35
+ AppLovinMAX.setBannerPlacement(adUnitId, placement);
36
+ }
37
+
38
+ const setCustomData = (adUnitId: string, customData: string | null): void => {
39
+ AppLovinMAX.setBannerCustomData(adUnitId, customData);
40
+ }
41
+
42
+ const updatePosition = (adUnitId: string, bannerPosition: AdViewPosition): void => {
43
+ AppLovinMAX.updateBannerPosition(adUnitId, bannerPosition);
44
+ }
45
+
46
+ const setExtraParameter = (adUnitId: string, key: string, value: any): void => {
47
+ AppLovinMAX.setBannerExtraParameter(adUnitId, key, value);
48
+ }
49
+
50
+ const setLocalExtraParameter = (adUnitId: string, key: string, value: any): void => {
51
+ AppLovinMAX.setBannerLocalExtraParameter(adUnitId, { [key]: value });
52
+ }
53
+
54
+ const startAutoRefresh = (adUnitId: string): void => {
55
+ AppLovinMAX.startBannerAutoRefresh(adUnitId);
56
+ }
57
+
58
+ const stopAutoRefresh = (adUnitId: string): void => {
59
+ AppLovinMAX.stopBannerAutoRefresh(adUnitId);
60
+ }
61
+
62
+ const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
63
+ addEventListener(ON_BANNER_AD_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
64
+ }
65
+
66
+ const removeAdLoadedEventListener = () => {
67
+ removeEventListener(ON_BANNER_AD_LOADED_EVENT);
68
+ }
69
+
70
+ const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
71
+ addEventListener(ON_BANNER_AD_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
72
+ }
73
+
74
+ const removeAdLoadFailedEventListener = () => {
75
+ removeEventListener(ON_BANNER_AD_LOAD_FAILED_EVENT);
76
+ }
77
+
78
+ const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
79
+ addEventListener(ON_BANNER_AD_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
80
+ }
81
+
82
+ const removeAdClickedEventListener = () => {
83
+ removeEventListener(ON_BANNER_AD_CLICKED_EVENT);
84
+ }
85
+
86
+ const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void) => {
87
+ addEventListener(ON_BANNER_AD_COLLAPSED_EVENT, (adInfo: AdInfo) => listener(adInfo));
88
+ }
89
+
90
+ const removeAdCollapsedEventListener = () => {
91
+ removeEventListener(ON_BANNER_AD_COLLAPSED_EVENT);
92
+ }
93
+
94
+ const addAdExpandedEventListener = (listener: (adInfo: AdInfo) => void) => {
95
+ addEventListener(ON_BANNER_AD_EXPANDED_EVENT, (adInfo: AdInfo) => listener(adInfo));
96
+ }
97
+
98
+ const removeAdExpandedEventListener = () => {
99
+ removeEventListener(ON_BANNER_AD_EXPANDED_EVENT);
100
+ }
101
+
102
+ const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
103
+ addEventListener(ON_BANNER_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
104
+ }
105
+
106
+ const removeAdRevenuePaidListener = () => {
107
+ removeEventListener(ON_BANNER_AD_REVENUE_PAID);
108
+ }
109
+
110
+ // Banner specific APIs
111
+
112
+ const setBackgroundColor = (adUnitId: string, hexColorCode: string): void => {
113
+ AppLovinMAX.setBannerBackgroundColor(adUnitId, hexColorCode);
114
+ }
115
+
116
+ const setWidth = (adUnitId: string, width: number): void => {
117
+ AppLovinMAX.setBannerWidth(adUnitId, width);
118
+ }
119
+
120
+ const updateOffsets = (adUnitId: string, xOffset: number, yOffset: number): void => {
121
+ AppLovinMAX.updateBannerOffsets(adUnitId, xOffset, yOffset);
122
+ }
123
+
124
+ const getAdaptiveHeightForWidth = (width: number): Promise<number> => {
125
+ return AppLovinMAX.getAdaptiveBannerHeightForWidth(width);
126
+ }
127
+
128
+ export const BannerAd: BannerAdType = {
129
+ createAd,
130
+ destroyAd,
131
+
132
+ showAd,
133
+ hideAd,
134
+
135
+ setPlacement,
136
+ setCustomData,
137
+
138
+ updatePosition,
139
+
140
+ setExtraParameter,
141
+ setLocalExtraParameter,
142
+
143
+ startAutoRefresh,
144
+ stopAutoRefresh,
145
+
146
+ addAdLoadedEventListener,
147
+ removeAdLoadedEventListener,
148
+
149
+ addAdLoadFailedEventListener,
150
+ removeAdLoadFailedEventListener,
151
+
152
+ addAdClickedEventListener,
153
+ removeAdClickedEventListener,
154
+
155
+ addAdCollapsedEventListener,
156
+ removeAdCollapsedEventListener,
157
+
158
+ addAdExpandedEventListener,
159
+ removeAdExpandedEventListener,
160
+
161
+ addAdRevenuePaidListener,
162
+ removeAdRevenuePaidListener,
163
+
164
+ // Banner specific APIs
165
+
166
+ setBackgroundColor,
167
+
168
+ setWidth,
169
+
170
+ updateOffsets,
171
+
172
+ getAdaptiveHeightForWidth,
173
+ }
174
+
175
+ export default BannerAd;
@@ -0,0 +1,27 @@
1
+ import { NativeModules, NativeEventEmitter } from "react-native";
2
+ import type { EventSubscription } from "react-native";
3
+ import type { AdEventObject, AdEventListener } from "./types/AdEvent";
4
+
5
+ const { AppLovinMAX } = NativeModules;
6
+
7
+ // Note that this is a singleton in ES6 module
8
+ const emitter = new NativeEventEmitter(AppLovinMAX);
9
+
10
+ const subscriptions: Record<string, EventSubscription> = { };
11
+
12
+ export const addEventListener = <T extends AdEventObject>(event: string, handler: AdEventListener<T>) => {
13
+ let subscription: EventSubscription = emitter.addListener(event, handler);
14
+ let currentSubscription = subscriptions[event];
15
+ if (currentSubscription) {
16
+ currentSubscription.remove();
17
+ }
18
+ subscriptions[event] = subscription;
19
+ }
20
+
21
+ export const removeEventListener = (event: string) => {
22
+ let currentSubscription = subscriptions[event];
23
+ if (currentSubscription) {
24
+ currentSubscription.remove();
25
+ delete subscriptions[event];
26
+ }
27
+ }
@@ -0,0 +1,128 @@
1
+ import { NativeModules } from "react-native";
2
+ import { addEventListener, removeEventListener } from "./EventEmitter"
3
+ import type { AdDisplayFailedInfo, AdInfo, AdLoadFailedInfo, AdRevenueInfo } from "./types/AdInfo";
4
+ import type { InterstitialAdType } from "./types/InterstitialAd";
5
+
6
+ const { AppLovinMAX } = NativeModules;
7
+
8
+ const {
9
+ ON_INTERSTITIAL_LOADED_EVENT,
10
+ ON_INTERSTITIAL_LOAD_FAILED_EVENT,
11
+ ON_INTERSTITIAL_CLICKED_EVENT,
12
+ ON_INTERSTITIAL_DISPLAYED_EVENT,
13
+ ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT,
14
+ ON_INTERSTITIAL_HIDDEN_EVENT,
15
+ ON_INTERSTITIAL_AD_REVENUE_PAID,
16
+ } = AppLovinMAX.getConstants();
17
+
18
+ const isAdReady = (adUnitId: string): Promise<boolean> => {
19
+ return AppLovinMAX.isInterstitialReady(adUnitId);
20
+ }
21
+
22
+ const loadAd = (adUnitId: string): void => {
23
+ AppLovinMAX.loadInterstitial(adUnitId);
24
+ }
25
+
26
+ const showAd = (
27
+ adUnitId: string,
28
+ placement?: string | null,
29
+ customData?: string | null
30
+ ): void => {
31
+ AppLovinMAX.showInterstitial(adUnitId, placement ?? null, customData ?? null);
32
+ }
33
+
34
+ const setExtraParameter = (adUnitId: string, key: string, value: any): void => {
35
+ AppLovinMAX.setInterstitialExtraParameter(adUnitId, key, value);
36
+ }
37
+
38
+ const setLocalExtraParameter = (adUnitId: string, key: string, value: any): void => {
39
+ AppLovinMAX.setInterstitialLocalExtraParameter(adUnitId, { [key]: value });
40
+ }
41
+
42
+ const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
43
+ addEventListener(ON_INTERSTITIAL_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
44
+ }
45
+
46
+ const removeAdLoadedEventListener = () => {
47
+ removeEventListener(ON_INTERSTITIAL_LOADED_EVENT);
48
+ }
49
+
50
+ const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
51
+ addEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
52
+ }
53
+
54
+ const removeAdLoadFailedEventListener = () => {
55
+ removeEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT);
56
+ }
57
+
58
+ const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
59
+ addEventListener(ON_INTERSTITIAL_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
60
+ }
61
+
62
+ const removeAdClickedEventListener = () => {
63
+ removeEventListener(ON_INTERSTITIAL_CLICKED_EVENT);
64
+ }
65
+
66
+ const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void) => {
67
+ addEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT, (adInfo: AdInfo) => listener(adInfo));
68
+ }
69
+
70
+ const removeAdDisplayedEventListener = () => {
71
+ removeEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT);
72
+ }
73
+
74
+ const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void) => {
75
+ addEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT, (errorInfo: AdDisplayFailedInfo) => listener(errorInfo));
76
+ }
77
+
78
+ const removeAdFailedToDisplayEventListener = () => {
79
+ removeEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT);
80
+ }
81
+
82
+ const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void) => {
83
+ addEventListener(ON_INTERSTITIAL_HIDDEN_EVENT, (adInfo: AdInfo) => listener(adInfo));
84
+ }
85
+
86
+ const removeAdHiddenEventListener = () => {
87
+ removeEventListener(ON_INTERSTITIAL_HIDDEN_EVENT);
88
+ }
89
+
90
+ const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
91
+ addEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
92
+ }
93
+
94
+ const removeAdRevenuePaidListener = () => {
95
+ removeEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID);
96
+ }
97
+
98
+ export const InterstitialAd: InterstitialAdType = {
99
+ isAdReady,
100
+ loadAd,
101
+ showAd,
102
+
103
+ setExtraParameter,
104
+ setLocalExtraParameter,
105
+
106
+ addAdLoadedEventListener,
107
+ removeAdLoadedEventListener,
108
+
109
+ addAdLoadFailedEventListener,
110
+ removeAdLoadFailedEventListener,
111
+
112
+ addAdClickedEventListener,
113
+ removeAdClickedEventListener,
114
+
115
+ addAdDisplayedEventListener,
116
+ removeAdDisplayedEventListener,
117
+
118
+ addAdFailedToDisplayEventListener,
119
+ removeAdFailedToDisplayEventListener,
120
+
121
+ addAdHiddenEventListener,
122
+ removeAdHiddenEventListener,
123
+
124
+ addAdRevenuePaidListener,
125
+ removeAdRevenuePaidListener,
126
+ }
127
+
128
+ export default InterstitialAd;
package/src/MRecAd.ts ADDED
@@ -0,0 +1,147 @@
1
+ import { NativeModules } from "react-native";
2
+ import { addEventListener, removeEventListener } from "./EventEmitter"
3
+ import type { AdInfo, AdLoadFailedInfo, AdRevenueInfo } from "./types/AdInfo";
4
+ import type { MRecAdType } from "./types/MRecAd";
5
+ import type { AdViewPosition } from "./AdView";
6
+
7
+ const { AppLovinMAX } = NativeModules;
8
+
9
+ const {
10
+ ON_MREC_AD_LOADED_EVENT,
11
+ ON_MREC_AD_LOAD_FAILED_EVENT,
12
+ ON_MREC_AD_CLICKED_EVENT,
13
+ ON_MREC_AD_COLLAPSED_EVENT,
14
+ ON_MREC_AD_EXPANDED_EVENT,
15
+ ON_MREC_AD_REVENUE_PAID,
16
+ } = AppLovinMAX.getConstants();
17
+
18
+ const createAd = (adUnitId: string, position: AdViewPosition): void => {
19
+ AppLovinMAX.createMRec(adUnitId, position);
20
+ }
21
+
22
+ const destroyAd = (adUnitId: string): void => {
23
+ AppLovinMAX.destroyMRec(adUnitId);
24
+ }
25
+
26
+ const showAd = (adUnitId: string): void => {
27
+ AppLovinMAX.showMRec(adUnitId);
28
+ }
29
+
30
+ const hideAd = (adUnitId: string): void => {
31
+ AppLovinMAX.hideMRec(adUnitId);
32
+ }
33
+
34
+ const setPlacement = (adUnitId: string, placement: string | null): void => {
35
+ AppLovinMAX.setMRecPlacement(adUnitId, placement);
36
+ }
37
+
38
+ const setCustomData = (adUnitId: string, customData: string | null): void => {
39
+ AppLovinMAX.setMRecCustomData(adUnitId, customData);
40
+ }
41
+
42
+ const updatePosition = (adUnitId: string, bannerPosition: AdViewPosition): void => {
43
+ AppLovinMAX.updateMRecPosition(adUnitId, bannerPosition);
44
+ }
45
+
46
+ const setExtraParameter = (adUnitId: string, key: string, value: any): void => {
47
+ AppLovinMAX.setMRecExtraParameter(adUnitId, key, value);
48
+ }
49
+
50
+ const setLocalExtraParameter = (adUnitId: string, key: string, value: any): void => {
51
+ AppLovinMAX.setMRecLocalExtraParameter(adUnitId, { [key]: value });
52
+ }
53
+
54
+ const startAutoRefresh = (adUnitId: string): void => {
55
+ AppLovinMAX.startMRecAutoRefresh(adUnitId);
56
+ }
57
+
58
+ const stopAutoRefresh = (adUnitId: string): void => {
59
+ AppLovinMAX.stopMRecAutoRefresh(adUnitId);
60
+ }
61
+
62
+ const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
63
+ addEventListener(ON_MREC_AD_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
64
+ }
65
+
66
+ const removeAdLoadedEventListener = () => {
67
+ removeEventListener(ON_MREC_AD_LOADED_EVENT);
68
+ }
69
+
70
+ const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
71
+ addEventListener(ON_MREC_AD_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
72
+ }
73
+
74
+ const removeAdLoadFailedEventListener = () => {
75
+ removeEventListener(ON_MREC_AD_LOAD_FAILED_EVENT);
76
+ }
77
+
78
+ const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
79
+ addEventListener(ON_MREC_AD_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
80
+ }
81
+
82
+ const removeAdClickedEventListener = () => {
83
+ removeEventListener(ON_MREC_AD_CLICKED_EVENT);
84
+ }
85
+
86
+ const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void) => {
87
+ addEventListener(ON_MREC_AD_COLLAPSED_EVENT, (adInfo: AdInfo) => listener(adInfo));
88
+ }
89
+
90
+ const removeAdCollapsedEventListener = () => {
91
+ removeEventListener(ON_MREC_AD_COLLAPSED_EVENT);
92
+ }
93
+
94
+ const addAdExpandedEventListener = (listener: (adInfo: AdInfo) => void) => {
95
+ addEventListener(ON_MREC_AD_EXPANDED_EVENT, (adInfo: AdInfo) => listener(adInfo));
96
+ }
97
+
98
+ const removeAdExpandedEventListener = () => {
99
+ removeEventListener(ON_MREC_AD_EXPANDED_EVENT);
100
+ }
101
+
102
+ const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
103
+ addEventListener(ON_MREC_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
104
+ }
105
+
106
+ const removeAdRevenuePaidListener = () => {
107
+ removeEventListener(ON_MREC_AD_REVENUE_PAID);
108
+ }
109
+
110
+ export const MRecAd: MRecAdType = {
111
+ createAd,
112
+ destroyAd,
113
+
114
+ showAd,
115
+ hideAd,
116
+
117
+ setPlacement,
118
+ setCustomData,
119
+
120
+ updatePosition,
121
+
122
+ setExtraParameter,
123
+ setLocalExtraParameter,
124
+
125
+ startAutoRefresh,
126
+ stopAutoRefresh,
127
+
128
+ addAdLoadedEventListener,
129
+ removeAdLoadedEventListener,
130
+
131
+ addAdLoadFailedEventListener,
132
+ removeAdLoadFailedEventListener,
133
+
134
+ addAdClickedEventListener,
135
+ removeAdClickedEventListener,
136
+
137
+ addAdCollapsedEventListener,
138
+ removeAdCollapsedEventListener,
139
+
140
+ addAdExpandedEventListener,
141
+ removeAdExpandedEventListener,
142
+
143
+ addAdRevenuePaidListener,
144
+ removeAdRevenuePaidListener,
145
+ }
146
+
147
+ export default MRecAd;
package/src/Privacy.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { NativeModules } from "react-native";
2
+ import type { PrivacyType } from "./types/Privacy";
3
+
4
+ const { AppLovinMAX } = NativeModules;
5
+
6
+ export const Privacy: PrivacyType = AppLovinMAX;
@@ -0,0 +1,144 @@
1
+ import { NativeModules } from "react-native";
2
+ import { addEventListener, removeEventListener } from "./EventEmitter"
3
+ import type { AdDisplayFailedInfo, AdInfo, AdLoadFailedInfo, AdRevenueInfo, AdRewardInfo } from "./types/AdInfo";
4
+ import type { RewardedAdType } from "./types/RewardedAd";
5
+
6
+ const { AppLovinMAX } = NativeModules;
7
+
8
+ const {
9
+ ON_REWARDED_AD_LOADED_EVENT,
10
+ ON_REWARDED_AD_LOAD_FAILED_EVENT,
11
+ ON_REWARDED_AD_CLICKED_EVENT,
12
+ ON_REWARDED_AD_DISPLAYED_EVENT,
13
+ ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT,
14
+ ON_REWARDED_AD_HIDDEN_EVENT,
15
+ ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
16
+ ON_REWARDED_AD_REVENUE_PAID,
17
+ } = AppLovinMAX.getConstants();
18
+
19
+ const isAdReady = (adUnitId: string): Promise<boolean> => {
20
+ return AppLovinMAX.isRewardedAdReady(adUnitId);
21
+ }
22
+
23
+ const loadAd = (adUnitId: string): void => {
24
+ AppLovinMAX.loadRewardedAd(adUnitId);
25
+ }
26
+
27
+ const showAd = (
28
+ adUnitId: string,
29
+ placement?: string | null,
30
+ customData?: string | null
31
+ ): void => {
32
+ AppLovinMAX.showRewardedAd(adUnitId, placement ?? null, customData ?? null);
33
+ }
34
+
35
+ const setExtraParameter = (adUnitId: string, key: string, value: any): void => {
36
+ AppLovinMAX.setRewardedAdExtraParameter(adUnitId, key, value);
37
+ }
38
+
39
+ const setLocalExtraParameter = (adUnitId: string, key: string, value: any): void => {
40
+ AppLovinMAX.setRewardedAdLocalExtraParameter(adUnitId, { [key]: value });
41
+ }
42
+
43
+ const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
44
+ addEventListener(ON_REWARDED_AD_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
45
+ }
46
+
47
+ const removeAdLoadedEventListener = () => {
48
+ removeEventListener(ON_REWARDED_AD_LOADED_EVENT);
49
+ }
50
+
51
+ const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
52
+ addEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
53
+ }
54
+
55
+ const removeAdLoadFailedEventListener = () => {
56
+ removeEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT);
57
+ }
58
+
59
+ const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
60
+ addEventListener(ON_REWARDED_AD_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
61
+ }
62
+
63
+ const removeAdClickedEventListener = () => {
64
+ removeEventListener(ON_REWARDED_AD_CLICKED_EVENT);
65
+ }
66
+
67
+ const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void) => {
68
+ addEventListener(ON_REWARDED_AD_DISPLAYED_EVENT, (adInfo: AdInfo) => listener(adInfo));
69
+ }
70
+
71
+ const removeAdDisplayedEventListener = () => {
72
+ removeEventListener(ON_REWARDED_AD_DISPLAYED_EVENT);
73
+ }
74
+
75
+ const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void) => {
76
+ addEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT, (errorInfo: AdDisplayFailedInfo) => listener(errorInfo));
77
+ }
78
+
79
+ const removeAdFailedToDisplayEventListener = () => {
80
+ removeEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT);
81
+ }
82
+
83
+ const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void) => {
84
+ addEventListener(ON_REWARDED_AD_HIDDEN_EVENT, (adInfo: AdInfo) => listener(adInfo));
85
+ }
86
+
87
+ const removeAdHiddenEventListener = () => {
88
+ removeEventListener(ON_REWARDED_AD_HIDDEN_EVENT);
89
+ }
90
+
91
+ const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
92
+ addEventListener(ON_REWARDED_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
93
+ }
94
+
95
+ const removeAdRevenuePaidListener = () => {
96
+ removeEventListener(ON_REWARDED_AD_REVENUE_PAID);
97
+ }
98
+
99
+ // Rewarded specific APIs
100
+
101
+ const addAdReceivedRewardEventListener = (listener: (adInfo: AdRewardInfo) => void) => {
102
+ addEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT, (adInfo: AdRewardInfo) => listener(adInfo));
103
+ }
104
+
105
+ const removeAdReceivedRewardEventListener = () => {
106
+ removeEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT);
107
+ }
108
+
109
+ export const RewardedAd: RewardedAdType = {
110
+ isAdReady,
111
+ loadAd,
112
+ showAd,
113
+
114
+ setExtraParameter,
115
+ setLocalExtraParameter,
116
+
117
+ addAdLoadedEventListener,
118
+ removeAdLoadedEventListener,
119
+
120
+ addAdLoadFailedEventListener,
121
+ removeAdLoadFailedEventListener,
122
+
123
+ addAdClickedEventListener,
124
+ removeAdClickedEventListener,
125
+
126
+ addAdDisplayedEventListener,
127
+ removeAdDisplayedEventListener,
128
+
129
+ addAdFailedToDisplayEventListener,
130
+ removeAdFailedToDisplayEventListener,
131
+
132
+ addAdHiddenEventListener,
133
+ removeAdHiddenEventListener,
134
+
135
+ addAdRevenuePaidListener,
136
+ removeAdRevenuePaidListener,
137
+
138
+ // Rewarded specific APIs
139
+
140
+ addAdReceivedRewardEventListener,
141
+ removeAdReceivedRewardEventListener,
142
+ }
143
+
144
+ export default RewardedAd;