react-native-applovin-max 7.1.1 → 8.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.
- package/android/build.gradle +3 -3
- package/android/src/main/java/com/applovin/reactnative/AppLovinMAXModule.java +17 -24
- package/ios/AppLovinMAX.m +17 -11
- package/lib/commonjs/AdView.js +86 -98
- package/lib/commonjs/AdView.js.map +1 -1
- package/lib/commonjs/AppLovinMAX.js +1 -1
- package/lib/commonjs/AppOpenAd.js +7 -7
- package/lib/commonjs/AppOpenAd.js.map +1 -1
- package/lib/commonjs/BannerAd.js +8 -8
- package/lib/commonjs/BannerAd.js.map +1 -1
- package/lib/commonjs/ErrorCode.js +49 -0
- package/lib/commonjs/ErrorCode.js.map +1 -0
- package/lib/commonjs/EventEmitter.js.map +1 -1
- package/lib/commonjs/InterstitialAd.js +7 -7
- package/lib/commonjs/InterstitialAd.js.map +1 -1
- package/lib/commonjs/MRecAd.js +6 -6
- package/lib/commonjs/MRecAd.js.map +1 -1
- package/lib/commonjs/RewardedAd.js +8 -8
- package/lib/commonjs/RewardedAd.js.map +1 -1
- package/lib/commonjs/index.js +8 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdView.js +26 -29
- package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js +69 -102
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js +13 -13
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -1
- package/lib/commonjs/types/AdInfo.js.map +1 -1
- package/lib/module/AdView.js +87 -99
- package/lib/module/AdView.js.map +1 -1
- package/lib/module/AppLovinMAX.js +1 -1
- package/lib/module/AppOpenAd.js +7 -7
- package/lib/module/AppOpenAd.js.map +1 -1
- package/lib/module/BannerAd.js +8 -8
- package/lib/module/BannerAd.js.map +1 -1
- package/lib/module/ErrorCode.js +43 -0
- package/lib/module/ErrorCode.js.map +1 -0
- package/lib/module/EventEmitter.js.map +1 -1
- package/lib/module/InterstitialAd.js +7 -7
- package/lib/module/InterstitialAd.js.map +1 -1
- package/lib/module/MRecAd.js +6 -6
- package/lib/module/MRecAd.js.map +1 -1
- package/lib/module/RewardedAd.js +8 -8
- package/lib/module/RewardedAd.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/nativeAd/NativeAdView.js +27 -30
- package/lib/module/nativeAd/NativeAdView.js.map +1 -1
- package/lib/module/nativeAd/NativeAdViewComponents.js +71 -104
- package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -1
- package/lib/module/nativeAd/NativeAdViewProvider.js +13 -13
- package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -1
- package/lib/module/types/AdInfo.js.map +1 -1
- package/lib/typescript/src/AdView.d.ts +2 -2
- package/lib/typescript/src/AdView.d.ts.map +1 -1
- package/lib/typescript/src/ErrorCode.d.ts +83 -0
- package/lib/typescript/src/ErrorCode.d.ts.map +1 -0
- package/lib/typescript/src/EventEmitter.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/nativeAd/NativeAdView.d.ts.map +1 -1
- package/lib/typescript/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
- package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts +3 -2
- package/lib/typescript/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
- package/lib/typescript/src/types/AdInfo.d.ts +6 -5
- package/lib/typescript/src/types/AdInfo.d.ts.map +1 -1
- package/lib/typescript/src/types/NativeAd.d.ts +3 -3
- package/lib/typescript/src/types/NativeAd.d.ts.map +1 -1
- package/lib/typescript/src/types/Privacy.d.ts +0 -12
- package/lib/typescript/src/types/Privacy.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-applovin-max.podspec +2 -2
- package/src/AdView.tsx +103 -92
- package/src/AppLovinMAX.ts +1 -1
- package/src/AppOpenAd.ts +21 -21
- package/src/BannerAd.ts +20 -20
- package/src/ErrorCode.ts +116 -0
- package/src/EventEmitter.ts +2 -2
- package/src/InterstitialAd.ts +21 -21
- package/src/MRecAd.ts +18 -18
- package/src/RewardedAd.ts +24 -24
- package/src/index.ts +1 -0
- package/src/nativeAd/NativeAdView.tsx +41 -29
- package/src/nativeAd/NativeAdViewComponents.tsx +72 -98
- package/src/nativeAd/NativeAdViewProvider.tsx +21 -15
- package/src/types/AdInfo.ts +7 -5
- package/src/types/NativeAd.ts +3 -3
- package/src/types/Privacy.ts +0 -16
package/src/ErrorCode.ts
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { NativeModules } from 'react-native';
|
|
2
|
+
|
|
3
|
+
const { AppLovinMAX } = NativeModules;
|
|
4
|
+
|
|
5
|
+
const {
|
|
6
|
+
MAX_ERROR_CODE_UNSPECIFIED,
|
|
7
|
+
MAX_ERROR_CODE_NO_FILL,
|
|
8
|
+
MAX_ERROR_CODE_AD_LOAD_FAILED,
|
|
9
|
+
MAX_ERROR_CODE_AD_DISPLAY_FAILED,
|
|
10
|
+
MAX_ERROR_CODE_NETWORK_ERROR,
|
|
11
|
+
MAX_ERROR_CODE_NETWORK_TIMEOUT,
|
|
12
|
+
MAX_ERROR_CODE_NO_NETWORK,
|
|
13
|
+
MAX_ERROR_CODE_FULLSCREEN_AD_ALREADY_SHOWING,
|
|
14
|
+
MAX_ERROR_CODE_FULLSCREEN_AD_NOT_READY,
|
|
15
|
+
MAX_ERROR_CODE_FULLSCREEN_AD_INVALID_VIEW_CONTROLLER,
|
|
16
|
+
MAX_ERROR_CODE_FULLSCREEN_AD_ALREADY_LOADING,
|
|
17
|
+
MAX_ERROR_CODE_FULLSCREEN_AD_LOAD_WHILE_SHOWING,
|
|
18
|
+
MAX_ERROR_CODE_DONT_KEEP_ACTIVITIES_ENABLED,
|
|
19
|
+
MAX_ERROR_CODE_INVALID_AD_UNIT_ID,
|
|
20
|
+
} = AppLovinMAX.getConstants();
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* This enum contains various error codes that the SDK can return when a MAX ad fails to load or
|
|
24
|
+
* display.
|
|
25
|
+
*/
|
|
26
|
+
export enum ErrorCode {
|
|
27
|
+
/**
|
|
28
|
+
* This error code represents an error that could not be categorized into one of the other defined
|
|
29
|
+
* errors. See the message field in the error object for more details.
|
|
30
|
+
*/
|
|
31
|
+
UNSPECIFIED = MAX_ERROR_CODE_UNSPECIFIED,
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* This error code indicates that MAX returned no eligible ads from any mediated networks for this
|
|
35
|
+
* app/device.
|
|
36
|
+
*/
|
|
37
|
+
NO_FILL = MAX_ERROR_CODE_NO_FILL,
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* This error code indicates that MAX returned eligible ads from mediated networks, but all ads
|
|
41
|
+
* failed to load. See the adLoadFailureInfo field in the error object for more details.
|
|
42
|
+
*/
|
|
43
|
+
AD_LOAD_FAILED = MAX_ERROR_CODE_AD_LOAD_FAILED,
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* This error code represents an error that was encountered when showing an ad.
|
|
47
|
+
*/
|
|
48
|
+
AD_DISPLAY_FAILED = MAX_ERROR_CODE_AD_DISPLAY_FAILED,
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* This error code indicates that the ad request failed due to a generic network error. See the
|
|
52
|
+
* message field in the error object for more details.
|
|
53
|
+
*/
|
|
54
|
+
NETWORK_ERROR = MAX_ERROR_CODE_NETWORK_ERROR,
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* This error code indicates that the ad request timed out due to a slow internet connection.
|
|
58
|
+
*/
|
|
59
|
+
NETWORK_TIMEOUT = MAX_ERROR_CODE_NETWORK_TIMEOUT,
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* This error code indicates that the ad request failed because the device is not connected to the
|
|
63
|
+
* internet.
|
|
64
|
+
*/
|
|
65
|
+
NO_NETWORK = MAX_ERROR_CODE_NO_NETWORK,
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* This error code indicates that you attempted to show a fullscreen ad while another fullscreen ad
|
|
69
|
+
* is still showing.
|
|
70
|
+
*/
|
|
71
|
+
FULLSCREEN_AD_ALREADY_SHOWING = MAX_ERROR_CODE_FULLSCREEN_AD_ALREADY_SHOWING,
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* This error code indicates you are attempting to show a fullscreen ad before the one has been
|
|
75
|
+
* loaded.
|
|
76
|
+
*/
|
|
77
|
+
FULLSCREEN_AD_NOT_READY = MAX_ERROR_CODE_FULLSCREEN_AD_NOT_READY,
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* This error code indicates you attempted to present a fullscreen ad from an invalid view
|
|
81
|
+
* controller.
|
|
82
|
+
* **iOS ONLY**.
|
|
83
|
+
*/
|
|
84
|
+
FULLSCREEN_AD_INVALID_VIEW_CONTROLLER = MAX_ERROR_CODE_FULLSCREEN_AD_INVALID_VIEW_CONTROLLER,
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* This error code indicates you are attempting to load a fullscreen ad while another
|
|
88
|
+
* fullscreen ad is already loading.
|
|
89
|
+
*/
|
|
90
|
+
FULLSCREEN_AD_ALREADY_LOADING = MAX_ERROR_CODE_FULLSCREEN_AD_ALREADY_LOADING,
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* This error code indicates you are attempting to load a fullscreen ad while another fullscreen ad
|
|
94
|
+
* is still showing.
|
|
95
|
+
*/
|
|
96
|
+
FULLSCREEN_AD_LOAD_WHILE_SHOWING = MAX_ERROR_CODE_FULLSCREEN_AD_LOAD_WHILE_SHOWING,
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* This error code indicates that the SDK failed to display an ad because the user has the
|
|
100
|
+
* "Don't Keep Activities" developer setting enabled.
|
|
101
|
+
* **Android ONLY**.
|
|
102
|
+
*/
|
|
103
|
+
DONT_KEEP_ACTIVITIES_ENABLED = MAX_ERROR_CODE_DONT_KEEP_ACTIVITIES_ENABLED,
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* This error code indicates that the SDK failed to load an ad because the publisher provided an
|
|
107
|
+
* invalid ad unit identifier.
|
|
108
|
+
*
|
|
109
|
+
* Possible reasons for an invalid ad unit identifier:
|
|
110
|
+
* 1. Ad unit identifier is malformed or does not exist.
|
|
111
|
+
* 2. Ad unit is disabled.
|
|
112
|
+
* 3. Ad unit is not associated with the current app's package name.
|
|
113
|
+
* 4. Ad unit was created within the last 30-60 minutes.
|
|
114
|
+
*/
|
|
115
|
+
INVALID_AD_UNIT_ID = MAX_ERROR_CODE_INVALID_AD_UNIT_ID,
|
|
116
|
+
}
|
package/src/EventEmitter.ts
CHANGED
|
@@ -9,7 +9,7 @@ const emitter = new NativeEventEmitter(AppLovinMAX);
|
|
|
9
9
|
|
|
10
10
|
const subscriptions: Record<string, EventSubscription> = {};
|
|
11
11
|
|
|
12
|
-
export const addEventListener = <T extends AdEventObject>(event: string, handler: AdEventListener<T>) => {
|
|
12
|
+
export const addEventListener = <T extends AdEventObject>(event: string, handler: AdEventListener<T>): void => {
|
|
13
13
|
const subscription: EventSubscription = emitter.addListener(event, handler);
|
|
14
14
|
const currentSubscription = subscriptions[event];
|
|
15
15
|
if (currentSubscription) {
|
|
@@ -18,7 +18,7 @@ export const addEventListener = <T extends AdEventObject>(event: string, handler
|
|
|
18
18
|
subscriptions[event] = subscription;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
export const removeEventListener = (event: string) => {
|
|
21
|
+
export const removeEventListener = (event: string): void => {
|
|
22
22
|
const currentSubscription = subscriptions[event];
|
|
23
23
|
if (currentSubscription) {
|
|
24
24
|
currentSubscription.remove();
|
package/src/InterstitialAd.ts
CHANGED
|
@@ -36,59 +36,59 @@ const setLocalExtraParameter = (adUnitId: string, key: string, value: LocalExtra
|
|
|
36
36
|
AppLovinMAX.setInterstitialLocalExtraParameter(adUnitId, { [key]: value });
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
40
|
-
addEventListener(ON_INTERSTITIAL_LOADED_EVENT,
|
|
39
|
+
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
40
|
+
addEventListener(ON_INTERSTITIAL_LOADED_EVENT, listener);
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
-
const removeAdLoadedEventListener = () => {
|
|
43
|
+
const removeAdLoadedEventListener = (): void => {
|
|
44
44
|
removeEventListener(ON_INTERSTITIAL_LOADED_EVENT);
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
|
|
48
|
-
addEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT,
|
|
47
|
+
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
|
|
48
|
+
addEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT, listener);
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
const removeAdLoadFailedEventListener = () => {
|
|
51
|
+
const removeAdLoadFailedEventListener = (): void => {
|
|
52
52
|
removeEventListener(ON_INTERSTITIAL_LOAD_FAILED_EVENT);
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
56
|
-
addEventListener(ON_INTERSTITIAL_CLICKED_EVENT,
|
|
55
|
+
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
56
|
+
addEventListener(ON_INTERSTITIAL_CLICKED_EVENT, listener);
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
const removeAdClickedEventListener = () => {
|
|
59
|
+
const removeAdClickedEventListener = (): void => {
|
|
60
60
|
removeEventListener(ON_INTERSTITIAL_CLICKED_EVENT);
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
64
|
-
addEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT,
|
|
63
|
+
const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
64
|
+
addEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT, listener);
|
|
65
65
|
};
|
|
66
66
|
|
|
67
|
-
const removeAdDisplayedEventListener = () => {
|
|
67
|
+
const removeAdDisplayedEventListener = (): void => {
|
|
68
68
|
removeEventListener(ON_INTERSTITIAL_DISPLAYED_EVENT);
|
|
69
69
|
};
|
|
70
70
|
|
|
71
|
-
const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void) => {
|
|
72
|
-
addEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT,
|
|
71
|
+
const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void): void => {
|
|
72
|
+
addEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT, listener);
|
|
73
73
|
};
|
|
74
74
|
|
|
75
|
-
const removeAdFailedToDisplayEventListener = () => {
|
|
75
|
+
const removeAdFailedToDisplayEventListener = (): void => {
|
|
76
76
|
removeEventListener(ON_INTERSTITIAL_AD_FAILED_TO_DISPLAY_EVENT);
|
|
77
77
|
};
|
|
78
78
|
|
|
79
|
-
const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
80
|
-
addEventListener(ON_INTERSTITIAL_HIDDEN_EVENT,
|
|
79
|
+
const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
80
|
+
addEventListener(ON_INTERSTITIAL_HIDDEN_EVENT, listener);
|
|
81
81
|
};
|
|
82
82
|
|
|
83
|
-
const removeAdHiddenEventListener = () => {
|
|
83
|
+
const removeAdHiddenEventListener = (): void => {
|
|
84
84
|
removeEventListener(ON_INTERSTITIAL_HIDDEN_EVENT);
|
|
85
85
|
};
|
|
86
86
|
|
|
87
|
-
const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
|
|
88
|
-
addEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID,
|
|
87
|
+
const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void): void => {
|
|
88
|
+
addEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID, listener);
|
|
89
89
|
};
|
|
90
90
|
|
|
91
|
-
const removeAdRevenuePaidListener = () => {
|
|
91
|
+
const removeAdRevenuePaidListener = (): void => {
|
|
92
92
|
removeEventListener(ON_INTERSTITIAL_AD_REVENUE_PAID);
|
|
93
93
|
};
|
|
94
94
|
|
package/src/MRecAd.ts
CHANGED
|
@@ -54,51 +54,51 @@ const stopAutoRefresh = (adUnitId: string): void => {
|
|
|
54
54
|
AppLovinMAX.stopMRecAutoRefresh(adUnitId);
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
-
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
58
|
-
addEventListener(ON_MREC_AD_LOADED_EVENT,
|
|
57
|
+
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
58
|
+
addEventListener(ON_MREC_AD_LOADED_EVENT, listener);
|
|
59
59
|
};
|
|
60
60
|
|
|
61
|
-
const removeAdLoadedEventListener = () => {
|
|
61
|
+
const removeAdLoadedEventListener = (): void => {
|
|
62
62
|
removeEventListener(ON_MREC_AD_LOADED_EVENT);
|
|
63
63
|
};
|
|
64
64
|
|
|
65
|
-
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
|
|
66
|
-
addEventListener(ON_MREC_AD_LOAD_FAILED_EVENT,
|
|
65
|
+
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
|
|
66
|
+
addEventListener(ON_MREC_AD_LOAD_FAILED_EVENT, listener);
|
|
67
67
|
};
|
|
68
68
|
|
|
69
|
-
const removeAdLoadFailedEventListener = () => {
|
|
69
|
+
const removeAdLoadFailedEventListener = (): void => {
|
|
70
70
|
removeEventListener(ON_MREC_AD_LOAD_FAILED_EVENT);
|
|
71
71
|
};
|
|
72
72
|
|
|
73
|
-
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
74
|
-
addEventListener(ON_MREC_AD_CLICKED_EVENT,
|
|
73
|
+
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
74
|
+
addEventListener(ON_MREC_AD_CLICKED_EVENT, listener);
|
|
75
75
|
};
|
|
76
76
|
|
|
77
|
-
const removeAdClickedEventListener = () => {
|
|
77
|
+
const removeAdClickedEventListener = (): void => {
|
|
78
78
|
removeEventListener(ON_MREC_AD_CLICKED_EVENT);
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
-
const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
82
|
-
addEventListener(ON_MREC_AD_COLLAPSED_EVENT,
|
|
81
|
+
const addAdCollapsedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
82
|
+
addEventListener(ON_MREC_AD_COLLAPSED_EVENT, listener);
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
-
const removeAdCollapsedEventListener = () => {
|
|
85
|
+
const removeAdCollapsedEventListener = (): void => {
|
|
86
86
|
removeEventListener(ON_MREC_AD_COLLAPSED_EVENT);
|
|
87
87
|
};
|
|
88
88
|
|
|
89
|
-
const addAdExpandedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
90
|
-
addEventListener(ON_MREC_AD_EXPANDED_EVENT,
|
|
89
|
+
const addAdExpandedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
90
|
+
addEventListener(ON_MREC_AD_EXPANDED_EVENT, listener);
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
const removeAdExpandedEventListener = () => {
|
|
93
|
+
const removeAdExpandedEventListener = (): void => {
|
|
94
94
|
removeEventListener(ON_MREC_AD_EXPANDED_EVENT);
|
|
95
95
|
};
|
|
96
96
|
|
|
97
|
-
const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
|
|
98
|
-
addEventListener(ON_MREC_AD_REVENUE_PAID,
|
|
97
|
+
const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void): void => {
|
|
98
|
+
addEventListener(ON_MREC_AD_REVENUE_PAID, listener);
|
|
99
99
|
};
|
|
100
100
|
|
|
101
|
-
const removeAdRevenuePaidListener = () => {
|
|
101
|
+
const removeAdRevenuePaidListener = (): void => {
|
|
102
102
|
removeEventListener(ON_MREC_AD_REVENUE_PAID);
|
|
103
103
|
};
|
|
104
104
|
|
package/src/RewardedAd.ts
CHANGED
|
@@ -37,69 +37,69 @@ const setLocalExtraParameter = (adUnitId: string, key: string, value: LocalExtra
|
|
|
37
37
|
AppLovinMAX.setRewardedAdLocalExtraParameter(adUnitId, { [key]: value });
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
-
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
41
|
-
addEventListener(ON_REWARDED_AD_LOADED_EVENT,
|
|
40
|
+
const addAdLoadedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
41
|
+
addEventListener(ON_REWARDED_AD_LOADED_EVENT, listener);
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
-
const removeAdLoadedEventListener = () => {
|
|
44
|
+
const removeAdLoadedEventListener = (): void => {
|
|
45
45
|
removeEventListener(ON_REWARDED_AD_LOADED_EVENT);
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
-
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void) => {
|
|
49
|
-
addEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT,
|
|
48
|
+
const addAdLoadFailedEventListener = (listener: (errorInfo: AdLoadFailedInfo) => void): void => {
|
|
49
|
+
addEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT, listener);
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
-
const removeAdLoadFailedEventListener = () => {
|
|
52
|
+
const removeAdLoadFailedEventListener = (): void => {
|
|
53
53
|
removeEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT);
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
57
|
-
addEventListener(ON_REWARDED_AD_CLICKED_EVENT,
|
|
56
|
+
const addAdClickedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
57
|
+
addEventListener(ON_REWARDED_AD_CLICKED_EVENT, listener);
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
const removeAdClickedEventListener = () => {
|
|
60
|
+
const removeAdClickedEventListener = (): void => {
|
|
61
61
|
removeEventListener(ON_REWARDED_AD_CLICKED_EVENT);
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
65
|
-
addEventListener(ON_REWARDED_AD_DISPLAYED_EVENT,
|
|
64
|
+
const addAdDisplayedEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
65
|
+
addEventListener(ON_REWARDED_AD_DISPLAYED_EVENT, listener);
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
const removeAdDisplayedEventListener = () => {
|
|
68
|
+
const removeAdDisplayedEventListener = (): void => {
|
|
69
69
|
removeEventListener(ON_REWARDED_AD_DISPLAYED_EVENT);
|
|
70
70
|
};
|
|
71
71
|
|
|
72
|
-
const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void) => {
|
|
73
|
-
addEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT,
|
|
72
|
+
const addAdFailedToDisplayEventListener = (listener: (errorInfo: AdDisplayFailedInfo) => void): void => {
|
|
73
|
+
addEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT, listener);
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
-
const removeAdFailedToDisplayEventListener = () => {
|
|
76
|
+
const removeAdFailedToDisplayEventListener = (): void => {
|
|
77
77
|
removeEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT);
|
|
78
78
|
};
|
|
79
79
|
|
|
80
|
-
const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void) => {
|
|
81
|
-
addEventListener(ON_REWARDED_AD_HIDDEN_EVENT,
|
|
80
|
+
const addAdHiddenEventListener = (listener: (adInfo: AdInfo) => void): void => {
|
|
81
|
+
addEventListener(ON_REWARDED_AD_HIDDEN_EVENT, listener);
|
|
82
82
|
};
|
|
83
83
|
|
|
84
|
-
const removeAdHiddenEventListener = () => {
|
|
84
|
+
const removeAdHiddenEventListener = (): void => {
|
|
85
85
|
removeEventListener(ON_REWARDED_AD_HIDDEN_EVENT);
|
|
86
86
|
};
|
|
87
87
|
|
|
88
|
-
const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void) => {
|
|
89
|
-
addEventListener(ON_REWARDED_AD_REVENUE_PAID,
|
|
88
|
+
const addAdRevenuePaidListener = (listener: (adInfo: AdRevenueInfo) => void): void => {
|
|
89
|
+
addEventListener(ON_REWARDED_AD_REVENUE_PAID, listener);
|
|
90
90
|
};
|
|
91
91
|
|
|
92
|
-
const removeAdRevenuePaidListener = () => {
|
|
92
|
+
const removeAdRevenuePaidListener = (): void => {
|
|
93
93
|
removeEventListener(ON_REWARDED_AD_REVENUE_PAID);
|
|
94
94
|
};
|
|
95
95
|
|
|
96
96
|
// Rewarded specific APIs
|
|
97
97
|
|
|
98
|
-
const addAdReceivedRewardEventListener = (listener: (adInfo: AdRewardInfo) => void) => {
|
|
99
|
-
addEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
|
|
98
|
+
const addAdReceivedRewardEventListener = (listener: (adInfo: AdRewardInfo) => void): void => {
|
|
99
|
+
addEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT, listener);
|
|
100
100
|
};
|
|
101
101
|
|
|
102
|
-
const removeAdReceivedRewardEventListener = () => {
|
|
102
|
+
const removeAdReceivedRewardEventListener = (): void => {
|
|
103
103
|
removeEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT);
|
|
104
104
|
};
|
|
105
105
|
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default, AppLovinMAX, ConsentFlowUserGeography, AppTrackingStatus, CMPErrorCode } from './AppLovinMAX';
|
|
2
|
+
export { ErrorCode } from './ErrorCode';
|
|
2
3
|
export { Privacy } from './Privacy';
|
|
3
4
|
export { InterstitialAd } from './InterstitialAd';
|
|
4
5
|
export { RewardedAd } from './RewardedAd';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { forwardRef, useContext, useImperativeHandle, useRef, useState, useEffect, useCallback } from 'react';
|
|
3
|
-
import { NativeModules, requireNativeComponent, UIManager, findNodeHandle } from 'react-native';
|
|
3
|
+
import { NativeModules, requireNativeComponent, UIManager, findNodeHandle, View } from 'react-native';
|
|
4
4
|
import type { ViewProps } from 'react-native';
|
|
5
5
|
import { NativeAdViewContext, NativeAdViewProvider } from './NativeAdViewProvider';
|
|
6
6
|
import type { AdInfo, AdLoadFailedInfo, AdRevenueInfo } from '../types/AdInfo';
|
|
@@ -61,18 +61,20 @@ export const NativeAdView = forwardRef<NativeAdViewHandler, NativeAdViewProps &
|
|
|
61
61
|
const [isInitialized, setIsInitialized] = useState<boolean>(false);
|
|
62
62
|
|
|
63
63
|
useEffect(() => {
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
const checkInitialization = async () => {
|
|
65
|
+
const result = await AppLovinMAX.isInitialized();
|
|
66
66
|
setIsInitialized(result);
|
|
67
67
|
if (!result) {
|
|
68
|
-
console.warn('NativeAdView is mounted before the initialization of the AppLovin MAX React Native module');
|
|
68
|
+
console.warn('NativeAdView is mounted before the initialization of the AppLovin MAX React Native module.');
|
|
69
69
|
}
|
|
70
|
-
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
checkInitialization();
|
|
71
73
|
}, []);
|
|
72
74
|
|
|
73
|
-
//
|
|
75
|
+
// Avoid rendering the NativeAdView if the SDK is not initialized
|
|
74
76
|
if (!isInitialized) {
|
|
75
|
-
return
|
|
77
|
+
return <View {...props} />;
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
return (
|
|
@@ -86,15 +88,14 @@ const NativeAdViewImpl = forwardRef<NativeAdViewHandler, NativeAdViewProps & Vie
|
|
|
86
88
|
{ adUnitId, placement, customData, extraParameters, localExtraParameters, onAdLoaded, onAdLoadFailed, onAdClicked, onAdRevenuePaid, children, style, ...otherProps },
|
|
87
89
|
ref
|
|
88
90
|
) {
|
|
89
|
-
//
|
|
91
|
+
// Context provides functions to manage native ad and native ad view state
|
|
90
92
|
const { setNativeAd, setNativeAdView } = useContext(NativeAdViewContext) as NativeAdViewContextType;
|
|
91
93
|
|
|
92
|
-
// keep the nativeAdView ref
|
|
93
94
|
const nativeAdViewRef = useRef<NativeAdViewType | null>(null);
|
|
94
95
|
|
|
95
|
-
//
|
|
96
|
-
const loadAd = () => {
|
|
97
|
-
if (nativeAdViewRef) {
|
|
96
|
+
// Load a new ad
|
|
97
|
+
const loadAd = useCallback(() => {
|
|
98
|
+
if (nativeAdViewRef.current) {
|
|
98
99
|
UIManager.dispatchViewManagerCommand(
|
|
99
100
|
findNodeHandle(nativeAdViewRef.current),
|
|
100
101
|
// @ts-ignore: Issue in RN ts defs
|
|
@@ -102,12 +103,11 @@ const NativeAdViewImpl = forwardRef<NativeAdViewHandler, NativeAdViewProps & Vie
|
|
|
102
103
|
undefined
|
|
103
104
|
);
|
|
104
105
|
}
|
|
105
|
-
};
|
|
106
|
+
}, []);
|
|
106
107
|
|
|
107
|
-
|
|
108
|
-
useImperativeHandle(ref, () => ({ loadAd }), []);
|
|
108
|
+
useImperativeHandle(ref, () => ({ loadAd }), [loadAd]);
|
|
109
109
|
|
|
110
|
-
//
|
|
110
|
+
// Save the DOM element reference
|
|
111
111
|
const saveElement = useCallback(
|
|
112
112
|
(element: NativeAdViewType | null) => {
|
|
113
113
|
if (element) {
|
|
@@ -118,22 +118,34 @@ const NativeAdViewImpl = forwardRef<NativeAdViewHandler, NativeAdViewProps & Vie
|
|
|
118
118
|
[setNativeAdView]
|
|
119
119
|
);
|
|
120
120
|
|
|
121
|
-
const onAdLoadedEvent = (
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
const onAdLoadedEvent = useCallback(
|
|
122
|
+
(event: { nativeEvent: { nativeAd: NativeAd; adInfo: AdInfo } }) => {
|
|
123
|
+
setNativeAd(event.nativeEvent.nativeAd);
|
|
124
|
+
onAdLoaded?.(event.nativeEvent.adInfo);
|
|
125
|
+
},
|
|
126
|
+
[onAdLoaded, setNativeAd]
|
|
127
|
+
);
|
|
125
128
|
|
|
126
|
-
const onAdLoadFailedEvent = (
|
|
127
|
-
|
|
128
|
-
|
|
129
|
+
const onAdLoadFailedEvent = useCallback(
|
|
130
|
+
(event: AdNativeEvent<AdLoadFailedInfo>) => {
|
|
131
|
+
onAdLoadFailed?.(event.nativeEvent);
|
|
132
|
+
},
|
|
133
|
+
[onAdLoadFailed]
|
|
134
|
+
);
|
|
129
135
|
|
|
130
|
-
const onAdClickedEvent = (
|
|
131
|
-
|
|
132
|
-
|
|
136
|
+
const onAdClickedEvent = useCallback(
|
|
137
|
+
(event: AdNativeEvent<AdInfo>) => {
|
|
138
|
+
onAdClicked?.(event.nativeEvent);
|
|
139
|
+
},
|
|
140
|
+
[onAdClicked]
|
|
141
|
+
);
|
|
133
142
|
|
|
134
|
-
const onAdRevenuePaidEvent = (
|
|
135
|
-
|
|
136
|
-
|
|
143
|
+
const onAdRevenuePaidEvent = useCallback(
|
|
144
|
+
(event: AdNativeEvent<AdRevenueInfo>) => {
|
|
145
|
+
onAdRevenuePaid?.(event.nativeEvent);
|
|
146
|
+
},
|
|
147
|
+
[onAdRevenuePaid]
|
|
148
|
+
);
|
|
137
149
|
|
|
138
150
|
return (
|
|
139
151
|
<NativeAdViewComponent
|