@vynix-org/react-native-ads-sdk 0.1.2 → 0.1.4
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 +22 -13
- package/android/src/main/AndroidManifest.xml +1 -3
- package/android/src/main/java/com/adssdk/AdsSdkModule.kt +3 -8
- package/lib/module/components/BannerAdComponent.js +37 -35
- package/lib/module/components/BannerAdComponent.js.map +1 -1
- package/lib/typescript/src/components/BannerAdComponent.d.ts +1 -0
- package/lib/typescript/src/components/BannerAdComponent.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/components/BannerAdComponent.tsx +48 -36
package/android/build.gradle
CHANGED
|
@@ -12,7 +12,7 @@ buildscript {
|
|
|
12
12
|
classpath "com.android.tools.build:gradle:8.7.2"
|
|
13
13
|
// noinspection DifferentKotlinGradleVersion
|
|
14
14
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
|
|
15
|
-
classpath("com.google.gms:google-services:4.4.0")
|
|
15
|
+
// classpath("com.google.gms:google-services:4.4.0")
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -21,7 +21,7 @@ apply plugin: "com.android.library"
|
|
|
21
21
|
apply plugin: "kotlin-android"
|
|
22
22
|
|
|
23
23
|
apply plugin: "com.facebook.react"
|
|
24
|
-
apply plugin: "com.google.gms.google-services"
|
|
24
|
+
// apply plugin: "com.google.gms.google-services"
|
|
25
25
|
|
|
26
26
|
def getExtOrIntegerDefault(name) {
|
|
27
27
|
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["AdsSdk_" + name]).toInteger()
|
|
@@ -66,14 +66,23 @@ android {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
69
|
+
// allprojects {
|
|
70
|
+
// repositories {
|
|
71
|
+
// mavenCentral()
|
|
72
|
+
// google()
|
|
73
|
+
// maven {
|
|
74
|
+
// url = uri("https://android-sdk.is.com/")
|
|
75
|
+
// }
|
|
76
|
+
// maven { url "https://artifacts.applovin.com/android" }
|
|
77
|
+
|
|
78
|
+
// maven {
|
|
79
|
+
// url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea"
|
|
80
|
+
// }
|
|
81
|
+
// maven {
|
|
82
|
+
// url = uri("https://artifact.bytedance.com/repository/pangle/")
|
|
83
|
+
// }
|
|
84
|
+
// }
|
|
85
|
+
// }
|
|
77
86
|
|
|
78
87
|
def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
79
88
|
|
|
@@ -82,8 +91,8 @@ dependencies {
|
|
|
82
91
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
83
92
|
|
|
84
93
|
// Must-have
|
|
85
|
-
api 'com.google.ads.mediation:facebook:6.17.0.0'
|
|
86
|
-
api 'com.google.ads.mediation:applovin:
|
|
94
|
+
// api 'com.google.ads.mediation:facebook:6.17.0.0'
|
|
95
|
+
// api 'com.google.ads.mediation:applovin:13.4.0.1'
|
|
87
96
|
|
|
88
97
|
// Game
|
|
89
98
|
// api 'com.google.ads.mediation:unity:4.12.2.0'
|
|
@@ -93,7 +102,7 @@ dependencies {
|
|
|
93
102
|
// api 'com.google.ads.mediation:vungle:7.4.1.0'
|
|
94
103
|
|
|
95
104
|
// Châu Á focused
|
|
96
|
-
api 'com.google.ads.mediation:pangle:
|
|
105
|
+
// api 'com.google.ads.mediation:pangle:7.7.0.2.0'
|
|
97
106
|
// Mintegral (Mobvista)
|
|
98
107
|
// api 'com.google.ads.mediation:mintegral:16.7.71.0'
|
|
99
108
|
// api 'com.google.ads.mediation:inmobi:10.7.5.0'
|
|
@@ -1,5 +1,3 @@
|
|
|
1
1
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
2
|
-
|
|
3
|
-
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
4
|
-
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
|
2
|
+
|
|
5
3
|
</manifest>
|
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
package com.adssdk
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
4
5
|
import com.facebook.react.module.annotations.ReactModule
|
|
5
6
|
|
|
6
7
|
@ReactModule(name = AdsSdkModule.NAME)
|
|
7
8
|
class AdsSdkModule(reactContext: ReactApplicationContext) :
|
|
8
|
-
|
|
9
|
+
ReactContextBaseJavaModule(reactContext) {
|
|
9
10
|
|
|
10
11
|
override fun getName(): String {
|
|
11
12
|
return NAME
|
|
12
13
|
}
|
|
13
14
|
|
|
14
|
-
// Example method
|
|
15
|
-
// See https://reactnative.dev/docs/native-modules-android
|
|
16
|
-
override fun multiply(a: Double, b: Double): Double {
|
|
17
|
-
return a * b
|
|
18
|
-
}
|
|
19
|
-
|
|
20
15
|
companion object {
|
|
21
16
|
const val NAME = "AdsSdk"
|
|
22
17
|
}
|
|
23
|
-
}
|
|
18
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { useEffect, useState, useRef } from 'react';
|
|
4
|
-
import { View, StyleSheet
|
|
4
|
+
import { View, StyleSheet } from 'react-native';
|
|
5
5
|
import { BannerAd } from 'react-native-google-mobile-ads';
|
|
6
|
+
import { Placeholder, PlaceholderMedia, PlaceholderLine, Fade } from 'rn-placeholder';
|
|
6
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
8
|
export const BannerAdComponent = ({
|
|
8
9
|
adId,
|
|
@@ -16,10 +17,11 @@ export const BannerAdComponent = ({
|
|
|
16
17
|
onAdClicked,
|
|
17
18
|
onAdImpression,
|
|
18
19
|
showLoading = true,
|
|
19
|
-
loadingText = 'Đang tải quảng cáo...',
|
|
20
|
-
errorText = 'Không thể tải quảng cáo',
|
|
20
|
+
// loadingText = 'Đang tải quảng cáo...',
|
|
21
|
+
// errorText = 'Không thể tải quảng cáo',
|
|
21
22
|
showError = true,
|
|
22
|
-
requestOptions
|
|
23
|
+
requestOptions,
|
|
24
|
+
renderLoading
|
|
23
25
|
}) => {
|
|
24
26
|
const [isLoaded, setIsLoaded] = useState(false);
|
|
25
27
|
const [error, setError] = useState(null);
|
|
@@ -78,52 +80,52 @@ export const BannerAdComponent = ({
|
|
|
78
80
|
}
|
|
79
81
|
return /*#__PURE__*/_jsxs(View, {
|
|
80
82
|
style: [styles.container, style],
|
|
81
|
-
children: [!isLoaded && !error && showLoading && /*#__PURE__*/
|
|
83
|
+
children: [!isLoaded && !error && showLoading && (renderLoading ? renderLoading() : /*#__PURE__*/_jsx(Placeholder, {
|
|
82
84
|
style: styles.loadingContainer,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
style: styles.errorContainer,
|
|
92
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
93
|
-
style: styles.errorText,
|
|
94
|
-
children: errorText
|
|
85
|
+
Animation: Fade,
|
|
86
|
+
Left: PlaceholderMedia,
|
|
87
|
+
Right: PlaceholderMedia,
|
|
88
|
+
children: /*#__PURE__*/_jsx(PlaceholderLine, {
|
|
89
|
+
noMargin: true,
|
|
90
|
+
style: {
|
|
91
|
+
minHeight: 40
|
|
92
|
+
}
|
|
95
93
|
})
|
|
96
|
-
}), /*#__PURE__*/_jsx(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
94
|
+
})), error && showError && /*#__PURE__*/_jsx(View, {}), /*#__PURE__*/_jsx(View, {
|
|
95
|
+
style: {
|
|
96
|
+
minHeight: 50
|
|
97
|
+
},
|
|
98
|
+
children: /*#__PURE__*/_jsx(BannerAd, {
|
|
99
|
+
ref: bannerRef,
|
|
100
|
+
unitId: currentAdId,
|
|
101
|
+
size: size,
|
|
102
|
+
onAdLoaded: handleAdLoaded,
|
|
103
|
+
onAdFailedToLoad: handleAdFailedToLoad,
|
|
104
|
+
onAdOpened: handleAdOpened,
|
|
105
|
+
onAdClosed: handleAdClosed,
|
|
106
|
+
onAdClicked: handleAdClicked,
|
|
107
|
+
onAdImpression: handleAdImpression,
|
|
108
|
+
requestOptions: requestOptions
|
|
109
|
+
}, currentAdId)
|
|
110
|
+
})]
|
|
109
111
|
});
|
|
110
112
|
};
|
|
111
113
|
const styles = StyleSheet.create({
|
|
112
114
|
container: {
|
|
113
115
|
alignItems: 'center',
|
|
114
116
|
justifyContent: 'center',
|
|
115
|
-
minHeight: 50,
|
|
116
117
|
backgroundColor: 'transparent'
|
|
117
118
|
},
|
|
118
119
|
loadingContainer: {
|
|
119
|
-
|
|
120
|
+
flexDirection: 'row',
|
|
121
|
+
width: '100%',
|
|
120
122
|
position: 'absolute',
|
|
121
123
|
alignItems: 'center',
|
|
122
124
|
justifyContent: 'center',
|
|
123
|
-
zIndex: 1,
|
|
124
125
|
backgroundColor: 'rgba(255, 255, 255, 0.9)',
|
|
125
|
-
|
|
126
|
-
|
|
126
|
+
paddingHorizontal: 20,
|
|
127
|
+
paddingVertical: 10,
|
|
128
|
+
borderRadius: 8
|
|
127
129
|
},
|
|
128
130
|
loadingText: {
|
|
129
131
|
marginTop: 8,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","useRef","View","StyleSheet","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","useRef","View","StyleSheet","BannerAd","Placeholder","PlaceholderMedia","PlaceholderLine","Fade","jsx","_jsx","jsxs","_jsxs","BannerAdComponent","adId","adHighpriorityId","style","size","onAdLoaded","onAdFailedToLoad","onAdOpened","onAdClosed","onAdClicked","onAdImpression","showLoading","showError","requestOptions","renderLoading","isLoaded","setIsLoaded","error","setError","shouldRender","setShouldRender","bannerRef","currentAdId","setCurrentAdId","hasTriedHighPriority","setHasTriedHighPriority","handleAdLoaded","console","log","handleAdFailedToLoad","message","handleAdOpened","handleAdClosed","handleAdClicked","handleAdImpression","styles","container","children","loadingContainer","Animation","Left","Right","noMargin","minHeight","ref","unitId","create","alignItems","justifyContent","backgroundColor","flexDirection","width","position","paddingHorizontal","paddingVertical","borderRadius","loadingText","marginTop","fontSize","color","textAlign","errorContainer","padding","borderWidth","borderColor","errorText","banner","hiddenBanner","opacity","height","overflow"],"sourceRoot":"../../../src","sources":["components/BannerAdComponent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BannerAdComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/BannerAdComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"BannerAdComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/BannerAdComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAQ/E,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EACD,QAAQ,GACR,cAAc,GACd,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,0BAA0B,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;CACvC;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAoI9D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vynix-org/react-native-ads-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "This is ads sdk for vynix",
|
|
5
5
|
"access": "public",
|
|
6
6
|
"main": "./lib/module/index.js",
|
|
@@ -172,6 +172,7 @@
|
|
|
172
172
|
"version": "0.54.3"
|
|
173
173
|
},
|
|
174
174
|
"dependencies": {
|
|
175
|
+
"rn-placeholder": "^3.0.3",
|
|
175
176
|
"zustand": "^5.0.8"
|
|
176
177
|
}
|
|
177
178
|
}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import React, { useEffect, useState, useRef } from 'react';
|
|
2
|
-
import { View, StyleSheet
|
|
2
|
+
import { View, StyleSheet } from 'react-native';
|
|
3
3
|
import { BannerAd, type RequestOptions } from 'react-native-google-mobile-ads';
|
|
4
|
+
import {
|
|
5
|
+
Placeholder,
|
|
6
|
+
PlaceholderMedia,
|
|
7
|
+
PlaceholderLine,
|
|
8
|
+
Fade,
|
|
9
|
+
} from 'rn-placeholder';
|
|
4
10
|
|
|
5
11
|
interface BannerAdComponentProps {
|
|
6
12
|
adId: string;
|
|
@@ -24,6 +30,7 @@ interface BannerAdComponentProps {
|
|
|
24
30
|
errorText?: string;
|
|
25
31
|
showError?: boolean;
|
|
26
32
|
requestOptions?: RequestOptions;
|
|
33
|
+
renderLoading?: () => React.ReactNode;
|
|
27
34
|
}
|
|
28
35
|
|
|
29
36
|
export const BannerAdComponent: React.FC<BannerAdComponentProps> = ({
|
|
@@ -38,10 +45,11 @@ export const BannerAdComponent: React.FC<BannerAdComponentProps> = ({
|
|
|
38
45
|
onAdClicked,
|
|
39
46
|
onAdImpression,
|
|
40
47
|
showLoading = true,
|
|
41
|
-
loadingText = 'Đang tải quảng cáo...',
|
|
42
|
-
errorText = 'Không thể tải quảng cáo',
|
|
48
|
+
// loadingText = 'Đang tải quảng cáo...',
|
|
49
|
+
// errorText = 'Không thể tải quảng cáo',
|
|
43
50
|
showError = true,
|
|
44
51
|
requestOptions,
|
|
52
|
+
renderLoading,
|
|
45
53
|
}) => {
|
|
46
54
|
const [isLoaded, setIsLoaded] = useState(false);
|
|
47
55
|
const [error, setError] = useState<string | null>(null);
|
|
@@ -122,35 +130,39 @@ export const BannerAdComponent: React.FC<BannerAdComponentProps> = ({
|
|
|
122
130
|
|
|
123
131
|
return (
|
|
124
132
|
<View style={[styles.container, style]}>
|
|
125
|
-
{
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
<
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
133
|
+
{!isLoaded &&
|
|
134
|
+
!error &&
|
|
135
|
+
showLoading &&
|
|
136
|
+
(renderLoading ? (
|
|
137
|
+
renderLoading()
|
|
138
|
+
) : (
|
|
139
|
+
<Placeholder
|
|
140
|
+
style={styles.loadingContainer}
|
|
141
|
+
Animation={Fade}
|
|
142
|
+
Left={PlaceholderMedia}
|
|
143
|
+
Right={PlaceholderMedia}
|
|
144
|
+
>
|
|
145
|
+
<PlaceholderLine noMargin style={{ minHeight: 40 }} />
|
|
146
|
+
</Placeholder>
|
|
147
|
+
))}
|
|
148
|
+
|
|
149
|
+
{error && showError && <View />}
|
|
150
|
+
|
|
151
|
+
<View style={{ minHeight: 50 }}>
|
|
152
|
+
<BannerAd
|
|
153
|
+
key={currentAdId}
|
|
154
|
+
ref={bannerRef}
|
|
155
|
+
unitId={currentAdId}
|
|
156
|
+
size={size}
|
|
157
|
+
onAdLoaded={handleAdLoaded}
|
|
158
|
+
onAdFailedToLoad={handleAdFailedToLoad}
|
|
159
|
+
onAdOpened={handleAdOpened}
|
|
160
|
+
onAdClosed={handleAdClosed}
|
|
161
|
+
onAdClicked={handleAdClicked}
|
|
162
|
+
onAdImpression={handleAdImpression}
|
|
163
|
+
requestOptions={requestOptions}
|
|
164
|
+
/>
|
|
165
|
+
</View>
|
|
154
166
|
</View>
|
|
155
167
|
);
|
|
156
168
|
};
|
|
@@ -159,18 +171,18 @@ const styles = StyleSheet.create({
|
|
|
159
171
|
container: {
|
|
160
172
|
alignItems: 'center',
|
|
161
173
|
justifyContent: 'center',
|
|
162
|
-
minHeight: 50,
|
|
163
174
|
backgroundColor: 'transparent',
|
|
164
175
|
},
|
|
165
176
|
loadingContainer: {
|
|
166
|
-
|
|
177
|
+
flexDirection: 'row',
|
|
178
|
+
width: '100%',
|
|
167
179
|
position: 'absolute',
|
|
168
180
|
alignItems: 'center',
|
|
169
181
|
justifyContent: 'center',
|
|
170
|
-
zIndex: 1,
|
|
171
182
|
backgroundColor: 'rgba(255, 255, 255, 0.9)',
|
|
183
|
+
paddingHorizontal: 20,
|
|
184
|
+
paddingVertical: 10,
|
|
172
185
|
borderRadius: 8,
|
|
173
|
-
padding: 12,
|
|
174
186
|
},
|
|
175
187
|
loadingText: {
|
|
176
188
|
marginTop: 8,
|