react-native-applovin-max 6.0.0 → 6.0.2
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/android/build.gradle +3 -3
- package/ios/Podfile +1 -1
- package/ios/Podfile.lock +5 -5
- package/package.json +5 -1
- package/react-native-applovin-max.podspec +2 -2
- package/src/AdView.tsx +62 -50
- package/src/AppLovinMAX.ts +8 -10
- package/src/AppOpenAd.ts +28 -31
- package/src/BannerAd.ts +36 -35
- package/src/EventEmitter.ts +9 -9
- package/src/InterstitialAd.ts +31 -32
- package/src/MRecAd.ts +32 -31
- package/src/Privacy.ts +2 -2
- package/src/RewardedAd.ts +31 -34
- package/src/TargetingData.ts +95 -38
- package/src/index.ts +12 -12
- package/src/nativeAd/NativeAdView.tsx +68 -59
- package/src/nativeAd/NativeAdViewComponents.tsx +36 -28
- package/src/nativeAd/NativeAdViewProvider.tsx +15 -13
- package/src/types/AdEvent.ts +2 -13
- package/src/types/AdInfo.ts +27 -39
- package/src/types/AdProps.ts +13 -9
- package/src/types/AdViewProps.ts +6 -7
- package/src/types/AppLovinMAX.ts +19 -19
- package/src/types/AppOpenAd.ts +1 -1
- package/src/types/BannerAd.ts +12 -13
- package/src/types/Configuration.ts +2 -4
- package/src/types/FullscreenAd.ts +45 -39
- package/src/types/InterstitialAd.ts +1 -1
- package/src/types/MRecAd.ts +3 -4
- package/src/types/NativeAd.ts +1 -2
- package/src/types/NativeAdViewProps.ts +1 -2
- package/src/types/Privacy.ts +18 -23
- package/src/types/RewardedAd.ts +8 -7
- package/src/types/TargetingData.ts +50 -0
- package/src/types/ViewAd.ts +50 -46
- package/src/types/index.ts +4 -4
package/src/InterstitialAd.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { NativeModules } from
|
|
2
|
-
import { addEventListener, removeEventListener } from
|
|
3
|
-
import type { AdDisplayFailedInfo, AdInfo, AdLoadFailedInfo, AdRevenueInfo } from
|
|
4
|
-
import type {
|
|
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 { LocalExtraParameterValue } from './types/AdProps';
|
|
5
|
+
import type { InterstitialAdType } from './types/InterstitialAd';
|
|
5
6
|
|
|
6
7
|
const { AppLovinMAX } = NativeModules;
|
|
7
8
|
|
|
@@ -17,83 +18,81 @@ const {
|
|
|
17
18
|
|
|
18
19
|
const isAdReady = (adUnitId: string): Promise<boolean> => {
|
|
19
20
|
return AppLovinMAX.isInterstitialReady(adUnitId);
|
|
20
|
-
}
|
|
21
|
+
};
|
|
21
22
|
|
|
22
23
|
const loadAd = (adUnitId: string): void => {
|
|
23
24
|
AppLovinMAX.loadInterstitial(adUnitId);
|
|
24
|
-
}
|
|
25
|
+
};
|
|
25
26
|
|
|
26
|
-
const showAd = (
|
|
27
|
-
adUnitId: string,
|
|
28
|
-
placement?: string | null,
|
|
29
|
-
customData?: string | null
|
|
30
|
-
): void => {
|
|
27
|
+
const showAd = (adUnitId: string, placement?: string | null, customData?: string | null): void => {
|
|
31
28
|
AppLovinMAX.showInterstitial(adUnitId, placement ?? null, customData ?? null);
|
|
32
|
-
}
|
|
29
|
+
};
|
|
33
30
|
|
|
34
|
-
const setExtraParameter = (adUnitId: string, key: string, value:
|
|
31
|
+
const setExtraParameter = (adUnitId: string, key: string, value: string | null): void => {
|
|
35
32
|
AppLovinMAX.setInterstitialExtraParameter(adUnitId, key, value);
|
|
36
|
-
}
|
|
33
|
+
};
|
|
37
34
|
|
|
38
|
-
const setLocalExtraParameter = (adUnitId: string, key: string, value:
|
|
35
|
+
const setLocalExtraParameter = (adUnitId: string, key: string, value: LocalExtraParameterValue): void => {
|
|
39
36
|
AppLovinMAX.setInterstitialLocalExtraParameter(adUnitId, { [key]: value });
|
|
40
|
-
}
|
|
37
|
+
};
|
|
41
38
|
|
|
42
39
|
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
43
40
|
addEventListener(ON_INTERSTITIAL_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
44
|
-
}
|
|
41
|
+
};
|
|
45
42
|
|
|
46
43
|
const removeAdLoadedEventListener = () => {
|
|
47
44
|
removeEventListener(ON_INTERSTITIAL_LOADED_EVENT);
|
|
48
|
-
}
|
|
45
|
+
};
|
|
49
46
|
|
|
50
47
|
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
|
|
51
48
|
addEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
|
|
52
|
-
}
|
|
49
|
+
};
|
|
53
50
|
|
|
54
51
|
const removeAdLoadFailedEventListener = () => {
|
|
55
52
|
removeEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT);
|
|
56
|
-
}
|
|
53
|
+
};
|
|
57
54
|
|
|
58
55
|
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
59
56
|
addEventListener(ON_INTERSTITIAL_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
60
|
-
}
|
|
57
|
+
};
|
|
61
58
|
|
|
62
59
|
const removeAdClickedEventListener = () => {
|
|
63
60
|
removeEventListener(ON_INTERSTITIAL_CLICKED_EVENT);
|
|
64
|
-
}
|
|
61
|
+
};
|
|
65
62
|
|
|
66
63
|
const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
67
64
|
addEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
68
|
-
}
|
|
65
|
+
};
|
|
69
66
|
|
|
70
67
|
const removeAdDisplayedEventListener = () => {
|
|
71
68
|
removeEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT);
|
|
72
|
-
}
|
|
69
|
+
};
|
|
73
70
|
|
|
74
71
|
const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void) => {
|
|
75
|
-
addEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT, (errorInfo: AdDisplayFailedInfo) =>
|
|
76
|
-
|
|
72
|
+
addEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT, (errorInfo: AdDisplayFailedInfo) =>
|
|
73
|
+
listener(errorInfo)
|
|
74
|
+
);
|
|
75
|
+
};
|
|
77
76
|
|
|
78
77
|
const removeAdFailedToDisplayEventListener = () => {
|
|
79
78
|
removeEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT);
|
|
80
|
-
}
|
|
79
|
+
};
|
|
81
80
|
|
|
82
81
|
const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
83
82
|
addEventListener(ON_INTERSTITIAL_HIDDEN_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
84
|
-
}
|
|
83
|
+
};
|
|
85
84
|
|
|
86
85
|
const removeAdHiddenEventListener = () => {
|
|
87
86
|
removeEventListener(ON_INTERSTITIAL_HIDDEN_EVENT);
|
|
88
|
-
}
|
|
87
|
+
};
|
|
89
88
|
|
|
90
89
|
const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
|
|
91
90
|
addEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
|
|
92
|
-
}
|
|
91
|
+
};
|
|
93
92
|
|
|
94
93
|
const removeAdRevenuePaidListener = () => {
|
|
95
94
|
removeEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID);
|
|
96
|
-
}
|
|
95
|
+
};
|
|
97
96
|
|
|
98
97
|
export const InterstitialAd: InterstitialAdType = {
|
|
99
98
|
isAdReady,
|
|
@@ -123,6 +122,6 @@ export const InterstitialAd: InterstitialAdType = {
|
|
|
123
122
|
|
|
124
123
|
addAdRevenuePaidListener,
|
|
125
124
|
removeAdRevenuePaidListener,
|
|
126
|
-
}
|
|
125
|
+
};
|
|
127
126
|
|
|
128
127
|
export default InterstitialAd;
|
package/src/MRecAd.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { NativeModules } from
|
|
2
|
-
import { addEventListener, removeEventListener } from
|
|
3
|
-
import type { AdInfo, AdLoadFailedInfo, AdRevenueInfo } from
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
1
|
+
import { NativeModules } from 'react-native';
|
|
2
|
+
import { addEventListener, removeEventListener } from './EventEmitter';
|
|
3
|
+
import type { AdInfo, AdLoadFailedInfo, AdRevenueInfo } from './types/AdInfo';
|
|
4
|
+
import type { LocalExtraParameterValue } from './types/AdProps';
|
|
5
|
+
import type { MRecAdType } from './types/MRecAd';
|
|
6
|
+
import type { AdViewPosition } from './AdView';
|
|
6
7
|
|
|
7
8
|
const { AppLovinMAX } = NativeModules;
|
|
8
9
|
|
|
@@ -17,95 +18,95 @@ const {
|
|
|
17
18
|
|
|
18
19
|
const createAd = (adUnitId: string, position: AdViewPosition): void => {
|
|
19
20
|
AppLovinMAX.createMRec(adUnitId, position);
|
|
20
|
-
}
|
|
21
|
+
};
|
|
21
22
|
|
|
22
23
|
const destroyAd = (adUnitId: string): void => {
|
|
23
24
|
AppLovinMAX.destroyMRec(adUnitId);
|
|
24
|
-
}
|
|
25
|
+
};
|
|
25
26
|
|
|
26
27
|
const showAd = (adUnitId: string): void => {
|
|
27
28
|
AppLovinMAX.showMRec(adUnitId);
|
|
28
|
-
}
|
|
29
|
+
};
|
|
29
30
|
|
|
30
31
|
const hideAd = (adUnitId: string): void => {
|
|
31
32
|
AppLovinMAX.hideMRec(adUnitId);
|
|
32
|
-
}
|
|
33
|
+
};
|
|
33
34
|
|
|
34
35
|
const setPlacement = (adUnitId: string, placement: string | null): void => {
|
|
35
36
|
AppLovinMAX.setMRecPlacement(adUnitId, placement);
|
|
36
|
-
}
|
|
37
|
+
};
|
|
37
38
|
|
|
38
39
|
const setCustomData = (adUnitId: string, customData: string | null): void => {
|
|
39
40
|
AppLovinMAX.setMRecCustomData(adUnitId, customData);
|
|
40
|
-
}
|
|
41
|
+
};
|
|
41
42
|
|
|
42
43
|
const updatePosition = (adUnitId: string, bannerPosition: AdViewPosition): void => {
|
|
43
44
|
AppLovinMAX.updateMRecPosition(adUnitId, bannerPosition);
|
|
44
|
-
}
|
|
45
|
+
};
|
|
45
46
|
|
|
46
|
-
const setExtraParameter = (adUnitId: string, key: string, value:
|
|
47
|
+
const setExtraParameter = (adUnitId: string, key: string, value: string | null): void => {
|
|
47
48
|
AppLovinMAX.setMRecExtraParameter(adUnitId, key, value);
|
|
48
|
-
}
|
|
49
|
+
};
|
|
49
50
|
|
|
50
|
-
const setLocalExtraParameter = (adUnitId: string, key: string, value:
|
|
51
|
+
const setLocalExtraParameter = (adUnitId: string, key: string, value: LocalExtraParameterValue): void => {
|
|
51
52
|
AppLovinMAX.setMRecLocalExtraParameter(adUnitId, { [key]: value });
|
|
52
|
-
}
|
|
53
|
+
};
|
|
53
54
|
|
|
54
55
|
const startAutoRefresh = (adUnitId: string): void => {
|
|
55
56
|
AppLovinMAX.startMRecAutoRefresh(adUnitId);
|
|
56
|
-
}
|
|
57
|
+
};
|
|
57
58
|
|
|
58
59
|
const stopAutoRefresh = (adUnitId: string): void => {
|
|
59
60
|
AppLovinMAX.stopMRecAutoRefresh(adUnitId);
|
|
60
|
-
}
|
|
61
|
+
};
|
|
61
62
|
|
|
62
63
|
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
63
64
|
addEventListener(ON_MREC_AD_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
64
|
-
}
|
|
65
|
+
};
|
|
65
66
|
|
|
66
67
|
const removeAdLoadedEventListener = () => {
|
|
67
68
|
removeEventListener(ON_MREC_AD_LOADED_EVENT);
|
|
68
|
-
}
|
|
69
|
+
};
|
|
69
70
|
|
|
70
71
|
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
|
|
71
72
|
addEventListener(ON_MREC_AD_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
|
|
72
|
-
}
|
|
73
|
+
};
|
|
73
74
|
|
|
74
75
|
const removeAdLoadFailedEventListener = () => {
|
|
75
76
|
removeEventListener(ON_MREC_AD_LOAD_FAILED_EVENT);
|
|
76
|
-
}
|
|
77
|
+
};
|
|
77
78
|
|
|
78
79
|
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
79
80
|
addEventListener(ON_MREC_AD_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
80
|
-
}
|
|
81
|
+
};
|
|
81
82
|
|
|
82
83
|
const removeAdClickedEventListener = () => {
|
|
83
84
|
removeEventListener(ON_MREC_AD_CLICKED_EVENT);
|
|
84
|
-
}
|
|
85
|
+
};
|
|
85
86
|
|
|
86
87
|
const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
87
88
|
addEventListener(ON_MREC_AD_COLLAPSED_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
88
|
-
}
|
|
89
|
+
};
|
|
89
90
|
|
|
90
91
|
const removeAdCollapsedEventListener = () => {
|
|
91
92
|
removeEventListener(ON_MREC_AD_COLLAPSED_EVENT);
|
|
92
|
-
}
|
|
93
|
+
};
|
|
93
94
|
|
|
94
95
|
const addAdExpandedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
95
96
|
addEventListener(ON_MREC_AD_EXPANDED_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
96
|
-
}
|
|
97
|
+
};
|
|
97
98
|
|
|
98
99
|
const removeAdExpandedEventListener = () => {
|
|
99
100
|
removeEventListener(ON_MREC_AD_EXPANDED_EVENT);
|
|
100
|
-
}
|
|
101
|
+
};
|
|
101
102
|
|
|
102
103
|
const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
|
|
103
104
|
addEventListener(ON_MREC_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
|
|
104
|
-
}
|
|
105
|
+
};
|
|
105
106
|
|
|
106
107
|
const removeAdRevenuePaidListener = () => {
|
|
107
108
|
removeEventListener(ON_MREC_AD_REVENUE_PAID);
|
|
108
|
-
}
|
|
109
|
+
};
|
|
109
110
|
|
|
110
111
|
export const MRecAd: MRecAdType = {
|
|
111
112
|
createAd,
|
|
@@ -142,6 +143,6 @@ export const MRecAd: MRecAdType = {
|
|
|
142
143
|
|
|
143
144
|
addAdRevenuePaidListener,
|
|
144
145
|
removeAdRevenuePaidListener,
|
|
145
|
-
}
|
|
146
|
+
};
|
|
146
147
|
|
|
147
148
|
export default MRecAd;
|
package/src/Privacy.ts
CHANGED
package/src/RewardedAd.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { NativeModules } from
|
|
2
|
-
import { addEventListener, removeEventListener } from
|
|
3
|
-
import type { AdDisplayFailedInfo, AdInfo, AdLoadFailedInfo, AdRevenueInfo, AdRewardInfo } from
|
|
4
|
-
import type {
|
|
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 { LocalExtraParameterValue } from './types/AdProps';
|
|
5
|
+
import type { RewardedAdType } from './types/RewardedAd';
|
|
5
6
|
|
|
6
7
|
const { AppLovinMAX } = NativeModules;
|
|
7
8
|
|
|
@@ -18,93 +19,89 @@ const {
|
|
|
18
19
|
|
|
19
20
|
const isAdReady = (adUnitId: string): Promise<boolean> => {
|
|
20
21
|
return AppLovinMAX.isRewardedAdReady(adUnitId);
|
|
21
|
-
}
|
|
22
|
+
};
|
|
22
23
|
|
|
23
24
|
const loadAd = (adUnitId: string): void => {
|
|
24
25
|
AppLovinMAX.loadRewardedAd(adUnitId);
|
|
25
|
-
}
|
|
26
|
+
};
|
|
26
27
|
|
|
27
|
-
const showAd = (
|
|
28
|
-
adUnitId: string,
|
|
29
|
-
placement?: string | null,
|
|
30
|
-
customData?: string | null
|
|
31
|
-
): void => {
|
|
28
|
+
const showAd = (adUnitId: string, placement?: string | null, customData?: string | null): void => {
|
|
32
29
|
AppLovinMAX.showRewardedAd(adUnitId, placement ?? null, customData ?? null);
|
|
33
|
-
}
|
|
30
|
+
};
|
|
34
31
|
|
|
35
|
-
const setExtraParameter = (adUnitId: string, key: string, value:
|
|
32
|
+
const setExtraParameter = (adUnitId: string, key: string, value: string | null): void => {
|
|
36
33
|
AppLovinMAX.setRewardedAdExtraParameter(adUnitId, key, value);
|
|
37
|
-
}
|
|
34
|
+
};
|
|
38
35
|
|
|
39
|
-
const setLocalExtraParameter = (adUnitId: string, key: string, value:
|
|
36
|
+
const setLocalExtraParameter = (adUnitId: string, key: string, value: LocalExtraParameterValue): void => {
|
|
40
37
|
AppLovinMAX.setRewardedAdLocalExtraParameter(adUnitId, { [key]: value });
|
|
41
|
-
}
|
|
38
|
+
};
|
|
42
39
|
|
|
43
40
|
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
44
41
|
addEventListener(ON_REWARDED_AD_LOADED_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
45
|
-
}
|
|
42
|
+
};
|
|
46
43
|
|
|
47
44
|
const removeAdLoadedEventListener = () => {
|
|
48
45
|
removeEventListener(ON_REWARDED_AD_LOADED_EVENT);
|
|
49
|
-
}
|
|
46
|
+
};
|
|
50
47
|
|
|
51
48
|
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
|
|
52
49
|
addEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT, (errorInfo: AdLoadFailedInfo) => listener(errorInfo));
|
|
53
|
-
}
|
|
50
|
+
};
|
|
54
51
|
|
|
55
52
|
const removeAdLoadFailedEventListener = () => {
|
|
56
53
|
removeEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT);
|
|
57
|
-
}
|
|
54
|
+
};
|
|
58
55
|
|
|
59
56
|
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
60
57
|
addEventListener(ON_REWARDED_AD_CLICKED_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
61
|
-
}
|
|
58
|
+
};
|
|
62
59
|
|
|
63
60
|
const removeAdClickedEventListener = () => {
|
|
64
61
|
removeEventListener(ON_REWARDED_AD_CLICKED_EVENT);
|
|
65
|
-
}
|
|
62
|
+
};
|
|
66
63
|
|
|
67
64
|
const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
68
65
|
addEventListener(ON_REWARDED_AD_DISPLAYED_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
69
|
-
}
|
|
66
|
+
};
|
|
70
67
|
|
|
71
68
|
const removeAdDisplayedEventListener = () => {
|
|
72
69
|
removeEventListener(ON_REWARDED_AD_DISPLAYED_EVENT);
|
|
73
|
-
}
|
|
70
|
+
};
|
|
74
71
|
|
|
75
72
|
const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void) => {
|
|
76
73
|
addEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT, (errorInfo: AdDisplayFailedInfo) => listener(errorInfo));
|
|
77
|
-
}
|
|
74
|
+
};
|
|
78
75
|
|
|
79
76
|
const removeAdFailedToDisplayEventListener = () => {
|
|
80
77
|
removeEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT);
|
|
81
|
-
}
|
|
78
|
+
};
|
|
82
79
|
|
|
83
80
|
const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
84
81
|
addEventListener(ON_REWARDED_AD_HIDDEN_EVENT, (adInfo: AdInfo) => listener(adInfo));
|
|
85
|
-
}
|
|
82
|
+
};
|
|
86
83
|
|
|
87
84
|
const removeAdHiddenEventListener = () => {
|
|
88
85
|
removeEventListener(ON_REWARDED_AD_HIDDEN_EVENT);
|
|
89
|
-
}
|
|
86
|
+
};
|
|
90
87
|
|
|
91
88
|
const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
|
|
92
89
|
addEventListener(ON_REWARDED_AD_REVENUE_PAID, (adInfo: AdRevenueInfo) => listener(adInfo));
|
|
93
|
-
}
|
|
90
|
+
};
|
|
94
91
|
|
|
95
92
|
const removeAdRevenuePaidListener = () => {
|
|
96
93
|
removeEventListener(ON_REWARDED_AD_REVENUE_PAID);
|
|
97
|
-
}
|
|
94
|
+
};
|
|
98
95
|
|
|
99
96
|
// Rewarded specific APIs
|
|
100
97
|
|
|
101
98
|
const addAdReceivedRewardEventListener = (listener: (adInfo: AdRewardInfo) => void) => {
|
|
102
99
|
addEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT, (adInfo: AdRewardInfo) => listener(adInfo));
|
|
103
|
-
}
|
|
100
|
+
};
|
|
104
101
|
|
|
105
102
|
const removeAdReceivedRewardEventListener = () => {
|
|
106
103
|
removeEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT);
|
|
107
|
-
}
|
|
104
|
+
};
|
|
108
105
|
|
|
109
106
|
export const RewardedAd: RewardedAdType = {
|
|
110
107
|
isAdReady,
|
|
@@ -136,9 +133,9 @@ export const RewardedAd: RewardedAdType = {
|
|
|
136
133
|
removeAdRevenuePaidListener,
|
|
137
134
|
|
|
138
135
|
// Rewarded specific APIs
|
|
139
|
-
|
|
136
|
+
|
|
140
137
|
addAdReceivedRewardEventListener,
|
|
141
138
|
removeAdReceivedRewardEventListener,
|
|
142
|
-
}
|
|
139
|
+
};
|
|
143
140
|
|
|
144
141
|
export default RewardedAd;
|
package/src/TargetingData.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { NativeModules } from
|
|
1
|
+
import { NativeModules } from 'react-native';
|
|
2
|
+
import type { TargetingDataType } from './types/TargetingData';
|
|
2
3
|
|
|
3
4
|
const { AppLovinMAX } = NativeModules;
|
|
4
5
|
|
|
@@ -43,126 +44,182 @@ export enum UserGender {
|
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
/**
|
|
46
|
-
*
|
|
47
|
+
* Defines additional data for the publisher to send to AppLovin.
|
|
48
|
+
*
|
|
49
|
+
* @see {@link https://support.applovin.com/hc/en-us/articles/13964925614733-Data-and-Keyword-Passing}
|
|
47
50
|
*/
|
|
48
|
-
export const TargetingData = {
|
|
49
|
-
|
|
51
|
+
export const TargetingData: TargetingDataType = {
|
|
50
52
|
/**
|
|
51
|
-
*
|
|
53
|
+
* Sets the year of birth of the user. Set this to 0 to clear this value.
|
|
52
54
|
*/
|
|
53
|
-
set yearOfBirth(value: number) {
|
|
54
|
-
|
|
55
|
+
set yearOfBirth(value: number | Promise<number>) {
|
|
56
|
+
if (typeof value === 'number') {
|
|
57
|
+
nativeMethods.setTargetingDataYearOfBirth(value);
|
|
58
|
+
} else {
|
|
59
|
+
printError('TargetingData.yearOfBirth', 'number', typeof value);
|
|
60
|
+
}
|
|
55
61
|
},
|
|
56
62
|
|
|
57
63
|
/**
|
|
58
|
-
*
|
|
64
|
+
* Gets the year of birth of the user.
|
|
59
65
|
*/
|
|
60
|
-
get yearOfBirth(): Promise<number> {
|
|
66
|
+
get yearOfBirth(): number | Promise<number> {
|
|
61
67
|
return nativeMethods.getTargetingDataYearOfBirth();
|
|
62
68
|
},
|
|
63
69
|
|
|
64
70
|
/**
|
|
65
|
-
* Sets the gender of the user.
|
|
71
|
+
* Sets the gender of the user. Set this to {@link UserGender.Unknown} to clear this value.
|
|
66
72
|
*/
|
|
67
|
-
set gender(value: UserGender) {
|
|
68
|
-
if (
|
|
73
|
+
set gender(value: UserGender | Promise<UserGender>) {
|
|
74
|
+
if (
|
|
75
|
+
value === UserGender.Unknown ||
|
|
69
76
|
value === UserGender.Female ||
|
|
70
77
|
value === UserGender.Male ||
|
|
71
|
-
value === UserGender.Other
|
|
78
|
+
value === UserGender.Other
|
|
79
|
+
) {
|
|
72
80
|
nativeMethods.setTargetingDataGender(value);
|
|
81
|
+
} else {
|
|
82
|
+
printError('TargetingData.gender', 'UserGender', typeof value);
|
|
73
83
|
}
|
|
74
84
|
},
|
|
75
85
|
|
|
76
86
|
/**
|
|
77
87
|
* Gets the gender of the user.
|
|
78
88
|
*/
|
|
79
|
-
get gender(): Promise<UserGender> {
|
|
89
|
+
get gender(): UserGender | Promise<UserGender> {
|
|
80
90
|
return nativeMethods.getTargetingDataGender().then((value: string) => {
|
|
81
91
|
return value as UserGender;
|
|
82
92
|
});
|
|
83
93
|
},
|
|
84
94
|
|
|
85
95
|
/**
|
|
86
|
-
* Sets the maximum ad content rating shown to the user.
|
|
96
|
+
* Sets the maximum ad content rating shown to the user. The levels are based on IQG Media
|
|
97
|
+
* Ratings: 1=All Audiences, 2=Everyone Over 12, 3=Mature Audiences.
|
|
98
|
+
* Set this to {@link AdContentRating.None} to clear this value.
|
|
87
99
|
*/
|
|
88
|
-
set maximumAdContentRating(value: AdContentRating) {
|
|
89
|
-
if (
|
|
100
|
+
set maximumAdContentRating(value: AdContentRating | Promise<AdContentRating>) {
|
|
101
|
+
if (
|
|
102
|
+
value === AdContentRating.None ||
|
|
90
103
|
value === AdContentRating.AllAudiences ||
|
|
91
104
|
value === AdContentRating.EveryoneOverTwelve ||
|
|
92
|
-
value === AdContentRating.MatureAudiences
|
|
105
|
+
value === AdContentRating.MatureAudiences
|
|
106
|
+
) {
|
|
93
107
|
nativeMethods.setTargetingDataMaximumAdContentRating(value);
|
|
108
|
+
} else {
|
|
109
|
+
printError('TargetingData.maximumAdContentRating', 'AdContentRating', typeof value);
|
|
94
110
|
}
|
|
95
111
|
},
|
|
96
112
|
|
|
97
113
|
/**
|
|
98
|
-
* Gets the maximum ad content rating shown to the user.
|
|
114
|
+
* Gets the maximum ad content rating shown to the user. The levels are based on IQG Media
|
|
115
|
+
* Ratings: 1=All Audiences, 2=Everyone Over 12, 3=Mature Audiences.
|
|
99
116
|
*/
|
|
100
|
-
get maximumAdContentRating(): Promise<AdContentRating> {
|
|
117
|
+
get maximumAdContentRating(): AdContentRating | Promise<AdContentRating> {
|
|
101
118
|
return nativeMethods.getTargetingDataMaximumAdContentRating().then((value: number) => {
|
|
102
119
|
return value as AdContentRating;
|
|
103
120
|
});
|
|
104
121
|
},
|
|
105
122
|
|
|
106
123
|
/**
|
|
107
|
-
* Sets the email of the user.
|
|
124
|
+
* Sets the email of the user. Set this to null to clear this value.
|
|
108
125
|
*/
|
|
109
|
-
set email(value: string | null) {
|
|
110
|
-
|
|
126
|
+
set email(value: string | null | Promise<string | null>) {
|
|
127
|
+
if (value === null) {
|
|
128
|
+
nativeMethods.setTargetingDataEmail(null);
|
|
129
|
+
} else if (typeof value === 'string') {
|
|
130
|
+
nativeMethods.setTargetingDataEmail(value as string);
|
|
131
|
+
} else {
|
|
132
|
+
printError('TargetingData.email', 'string or null', typeof value);
|
|
133
|
+
}
|
|
111
134
|
},
|
|
112
135
|
|
|
113
136
|
/**
|
|
114
137
|
* Gets the email of the user.
|
|
115
138
|
*/
|
|
116
|
-
get email(): Promise<string | null> {
|
|
139
|
+
get email(): string | null | Promise<string | null> {
|
|
117
140
|
return nativeMethods.getTargetingDataEmail();
|
|
118
141
|
},
|
|
119
142
|
|
|
120
143
|
/**
|
|
121
|
-
* Sets the phone number of the user.
|
|
144
|
+
* Sets the phone number of the user. Set this to null to clear this value.
|
|
122
145
|
*/
|
|
123
|
-
set phoneNumber(value: string | null) {
|
|
124
|
-
|
|
146
|
+
set phoneNumber(value: string | null | Promise<string | null>) {
|
|
147
|
+
if (value === null) {
|
|
148
|
+
nativeMethods.setTargetingDataPhoneNumber(null);
|
|
149
|
+
} else if (typeof value === 'string') {
|
|
150
|
+
nativeMethods.setTargetingDataPhoneNumber(value as string);
|
|
151
|
+
} else {
|
|
152
|
+
printError('TargetingData.phoneNumber', 'string or null', typeof value);
|
|
153
|
+
}
|
|
125
154
|
},
|
|
126
155
|
|
|
127
156
|
/**
|
|
128
157
|
* Gets the phone number of the user.
|
|
129
158
|
*/
|
|
130
|
-
get phoneNumber(): Promise<string | null> {
|
|
159
|
+
get phoneNumber(): string | null | Promise<string | null> {
|
|
131
160
|
return nativeMethods.getTargetingDataPhoneNumber();
|
|
132
161
|
},
|
|
133
162
|
|
|
134
163
|
/**
|
|
135
|
-
* Sets the keywords describing the application.
|
|
164
|
+
* Sets the keywords describing the application. Set this to null to clear this value.
|
|
136
165
|
*/
|
|
137
|
-
set keywords(value: string[] | null) {
|
|
138
|
-
|
|
166
|
+
set keywords(value: string[] | null | Promise<string[] | null>) {
|
|
167
|
+
if (value === null) {
|
|
168
|
+
nativeMethods.setTargetingDataKeywords(null);
|
|
169
|
+
} else if (isStringArray(value)) {
|
|
170
|
+
nativeMethods.setTargetingDataKeywords(value as string[]);
|
|
171
|
+
} else {
|
|
172
|
+
printError('TargetingData.keywords', 'string[] or null', typeof value);
|
|
173
|
+
}
|
|
139
174
|
},
|
|
140
175
|
|
|
141
176
|
/**
|
|
142
177
|
* Gets the keywords describing the application.
|
|
143
178
|
*/
|
|
144
|
-
get keywords(): Promise<string[] | null> {
|
|
179
|
+
get keywords(): string[] | null | Promise<string[] | null> {
|
|
145
180
|
return nativeMethods.getTargetingDataKeywords();
|
|
146
181
|
},
|
|
147
182
|
|
|
148
183
|
/**
|
|
149
|
-
* Sets the interests of the user.
|
|
184
|
+
* Sets the interests of the user. Set this to null to clear this value.
|
|
150
185
|
*/
|
|
151
|
-
set interests(value: string[] | null) {
|
|
152
|
-
|
|
186
|
+
set interests(value: string[] | null | Promise<string[] | null>) {
|
|
187
|
+
if (value === null) {
|
|
188
|
+
nativeMethods.setTargetingDataInterests(null);
|
|
189
|
+
} else if (isStringArray(value)) {
|
|
190
|
+
nativeMethods.setTargetingDataInterests(value as string[]);
|
|
191
|
+
} else {
|
|
192
|
+
printError('TargetingData.interests', 'string[] or null', typeof value);
|
|
193
|
+
}
|
|
153
194
|
},
|
|
154
195
|
|
|
155
196
|
/**
|
|
156
197
|
* Gets the interests of the user.
|
|
157
198
|
*/
|
|
158
|
-
get interests(): Promise<string[] | null> {
|
|
199
|
+
get interests(): string[] | null | Promise<string[] | null> {
|
|
159
200
|
return nativeMethods.getTargetingDataInterests();
|
|
160
201
|
},
|
|
161
202
|
|
|
162
203
|
/**
|
|
163
|
-
*
|
|
204
|
+
* Clears all saved data from this class.
|
|
164
205
|
*/
|
|
165
206
|
clearAll(): void {
|
|
166
207
|
nativeMethods.clearAllTargetingData();
|
|
167
208
|
},
|
|
168
|
-
}
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
const isStringArray = (strs: object): boolean => {
|
|
212
|
+
return Array.isArray(strs) && strs.every((value) => typeof value === 'string');
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
const printError = (fieldName: string, correctType: string, wrongType: string) => {
|
|
216
|
+
console.error(
|
|
217
|
+
'Cannot set value to ' +
|
|
218
|
+
fieldName +
|
|
219
|
+
' with unsupported type: ' +
|
|
220
|
+
wrongType +
|
|
221
|
+
'. Value has to be of type ' +
|
|
222
|
+
correctType +
|
|
223
|
+
'.'
|
|
224
|
+
);
|
|
225
|
+
};
|