setupad-prebid-react-native 0.1.3
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/LICENSE +20 -0
- package/README.md +325 -0
- package/VeonPrebidReactNative.podspec +59 -0
- package/android/build.gradle +90 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/setupadprebidreactnative/VeonPrebidReactNativeModule.kt +130 -0
- package/android/src/main/java/com/setupadprebidreactnative/VeonPrebidReactNativePackage.kt +20 -0
- package/android/src/main/java/com/setupadprebidreactnative/VeonPrebidReactNativeView.kt +425 -0
- package/android/src/main/java/com/setupadprebidreactnative/VeonPrebidReactNativeViewManager.kt +186 -0
- package/ios/RCTFabricComponentsPlugins.h +12 -0
- package/ios/VeonPrebidReactNative-Bridging-Header.h +9 -0
- package/ios/VeonPrebidReactNativeModule.m +17 -0
- package/ios/VeonPrebidReactNativeModule.swift +108 -0
- package/ios/VeonPrebidReactNativeView+Delegates.swift +217 -0
- package/ios/VeonPrebidReactNativeView.h +5 -0
- package/ios/VeonPrebidReactNativeView.swift +381 -0
- package/ios/VeonPrebidReactNativeViewComponentView.h +13 -0
- package/ios/VeonPrebidReactNativeViewComponentView.mm +166 -0
- package/ios/VeonPrebidReactNativeViewManager.m +49 -0
- package/ios/VeonPrebidReactNativeViewManager.swift +105 -0
- package/lib/module/CodegenTypes.d.js +2 -0
- package/lib/module/CodegenTypes.d.js.map +1 -0
- package/lib/module/Commands.js +14 -0
- package/lib/module/Commands.js.map +1 -0
- package/lib/module/VeonPrebidAd.js +112 -0
- package/lib/module/VeonPrebidAd.js.map +1 -0
- package/lib/module/VeonPrebidModule.js +132 -0
- package/lib/module/VeonPrebidModule.js.map +1 -0
- package/lib/module/VeonPrebidReactNativeViewNativeComponent.ts +50 -0
- package/lib/module/VeonPrebidView.js +14 -0
- package/lib/module/VeonPrebidView.js.map +1 -0
- package/lib/module/index.js +8 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/types.js +8 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/useVeonPrebidAd.js +154 -0
- package/lib/module/useVeonPrebidAd.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/Commands.d.ts +14 -0
- package/lib/typescript/src/Commands.d.ts.map +1 -0
- package/lib/typescript/src/VeonPrebidAd.d.ts +4 -0
- package/lib/typescript/src/VeonPrebidAd.d.ts.map +1 -0
- package/lib/typescript/src/VeonPrebidModule.d.ts +59 -0
- package/lib/typescript/src/VeonPrebidModule.d.ts.map +1 -0
- package/lib/typescript/src/VeonPrebidReactNativeViewNativeComponent.d.ts +40 -0
- package/lib/typescript/src/VeonPrebidReactNativeViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/VeonPrebidView.d.ts +5 -0
- package/lib/typescript/src/VeonPrebidView.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +7 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +89 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/useVeonPrebidAd.d.ts +52 -0
- package/lib/typescript/src/useVeonPrebidAd.d.ts.map +1 -0
- package/package.json +169 -0
- package/src/CodegenTypes.d.ts +16 -0
- package/src/Commands.ts +25 -0
- package/src/VeonPrebidAd.tsx +159 -0
- package/src/VeonPrebidModule.ts +159 -0
- package/src/VeonPrebidReactNativeViewNativeComponent.ts +50 -0
- package/src/VeonPrebidView.tsx +13 -0
- package/src/index.tsx +12 -0
- package/src/types.ts +64 -0
- package/src/useVeonPrebidAd.ts +156 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import React
|
|
2
|
+
|
|
3
|
+
@objc(VeonPrebidReactNativeViewManager)
|
|
4
|
+
class VeonPrebidReactNativeViewManager: RCTViewManager {
|
|
5
|
+
|
|
6
|
+
override func view() -> UIView! {
|
|
7
|
+
return VeonPrebidReactNativeView()
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
override static func requiresMainQueueSetup() -> Bool {
|
|
11
|
+
return true
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// MARK: - Command Constants
|
|
15
|
+
|
|
16
|
+
override func constantsToExport() -> [AnyHashable : Any]! {
|
|
17
|
+
return [
|
|
18
|
+
"Commands": [
|
|
19
|
+
"loadBanner": 0,
|
|
20
|
+
"showBanner": 1,
|
|
21
|
+
"hideBanner": 2,
|
|
22
|
+
"loadInterstitial": 3,
|
|
23
|
+
"showInterstitial": 4,
|
|
24
|
+
"hideInterstitial": 5,
|
|
25
|
+
"pauseAuction": 6,
|
|
26
|
+
"resumeAuction": 7,
|
|
27
|
+
"destroyAuction": 8
|
|
28
|
+
]
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// MARK: - Commands
|
|
33
|
+
|
|
34
|
+
@objc func loadBanner(_ node: NSNumber) {
|
|
35
|
+
DispatchQueue.main.async {
|
|
36
|
+
if let view = self.bridge.uiManager.view(forReactTag: node) as? VeonPrebidReactNativeView {
|
|
37
|
+
view.loadBanner()
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@objc func showBanner(_ node: NSNumber) {
|
|
43
|
+
DispatchQueue.main.async {
|
|
44
|
+
if let view = self.bridge.uiManager.view(forReactTag: node) as? VeonPrebidReactNativeView {
|
|
45
|
+
view.showBanner()
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@objc func hideBanner(_ node: NSNumber) {
|
|
51
|
+
DispatchQueue.main.async {
|
|
52
|
+
if let view = self.bridge.uiManager.view(forReactTag: node) as? VeonPrebidReactNativeView {
|
|
53
|
+
view.hideBanner()
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@objc func loadInterstitial(_ node: NSNumber) {
|
|
59
|
+
DispatchQueue.main.async {
|
|
60
|
+
if let view = self.bridge.uiManager.view(forReactTag: node) as? VeonPrebidReactNativeView {
|
|
61
|
+
view.loadInterstitial()
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@objc func showInterstitial(_ node: NSNumber) {
|
|
67
|
+
DispatchQueue.main.async {
|
|
68
|
+
if let view = self.bridge.uiManager.view(forReactTag: node) as? VeonPrebidReactNativeView {
|
|
69
|
+
view.showInterstitial()
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@objc func hideInterstitial(_ node: NSNumber) {
|
|
75
|
+
DispatchQueue.main.async {
|
|
76
|
+
if let view = self.bridge.uiManager.view(forReactTag: node) as? VeonPrebidReactNativeView {
|
|
77
|
+
view.hideInterstitial()
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@objc func pauseAuction(_ node: NSNumber) {
|
|
83
|
+
DispatchQueue.main.async {
|
|
84
|
+
if let view = self.bridge.uiManager.view(forReactTag: node) as? VeonPrebidReactNativeView {
|
|
85
|
+
view.pauseAuction()
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@objc func resumeAuction(_ node: NSNumber) {
|
|
91
|
+
DispatchQueue.main.async {
|
|
92
|
+
if let view = self.bridge.uiManager.view(forReactTag: node) as? VeonPrebidReactNativeView {
|
|
93
|
+
view.resumeAuction()
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
@objc func destroyAuction(_ node: NSNumber) {
|
|
99
|
+
DispatchQueue.main.async {
|
|
100
|
+
if let view = self.bridge.uiManager.view(forReactTag: node) as? VeonPrebidReactNativeView {
|
|
101
|
+
view.destroyAuction()
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["CodegenTypes.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const VeonPrebidCommands = {
|
|
4
|
+
loadBanner: 1,
|
|
5
|
+
showBanner: 2,
|
|
6
|
+
hideBanner: 3,
|
|
7
|
+
loadInterstitial: 4,
|
|
8
|
+
showInterstitial: 5,
|
|
9
|
+
hideInterstitial: 6,
|
|
10
|
+
pauseAuction: 7,
|
|
11
|
+
resumeAuction: 8,
|
|
12
|
+
destroyAuction: 9
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=Commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["VeonPrebidCommands","loadBanner","showBanner","hideBanner","loadInterstitial","showInterstitial","hideInterstitial","pauseAuction","resumeAuction","destroyAuction"],"sourceRoot":"../../src","sources":["Commands.ts"],"mappings":";;AAcA,OAAO,MAAMA,kBAAsC,GAAG;EACpDC,UAAU,EAAE,CAAC;EACbC,UAAU,EAAE,CAAC;EACbC,UAAU,EAAE,CAAC;EACbC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE,CAAC;EACnBC,YAAY,EAAE,CAAC;EACfC,aAAa,EAAE,CAAC;EAChBC,cAAc,EAAE;AAClB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef, useImperativeHandle, forwardRef, useCallback } from 'react';
|
|
4
|
+
import { UIManager, findNodeHandle, StyleSheet, View } from 'react-native';
|
|
5
|
+
import VeonPrebidReactNativeView from './VeonPrebidReactNativeViewNativeComponent';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
// Command IDs - must match ViewManager (starts from 0 in iOS Old Architecture!)
|
|
8
|
+
const Commands = {
|
|
9
|
+
loadBanner: 0,
|
|
10
|
+
showBanner: 1,
|
|
11
|
+
hideBanner: 2,
|
|
12
|
+
loadInterstitial: 3,
|
|
13
|
+
showInterstitial: 4,
|
|
14
|
+
hideInterstitial: 5,
|
|
15
|
+
pauseAuction: 6,
|
|
16
|
+
resumeAuction: 7,
|
|
17
|
+
destroyAuction: 8
|
|
18
|
+
};
|
|
19
|
+
const VeonPrebidAd = /*#__PURE__*/forwardRef((props, ref) => {
|
|
20
|
+
const {
|
|
21
|
+
adType,
|
|
22
|
+
configId,
|
|
23
|
+
adUnitId,
|
|
24
|
+
width,
|
|
25
|
+
height,
|
|
26
|
+
refreshInterval = 30,
|
|
27
|
+
onAdLoaded,
|
|
28
|
+
onAdDisplayed,
|
|
29
|
+
onAdFailed,
|
|
30
|
+
onAdClicked,
|
|
31
|
+
onAdClosed,
|
|
32
|
+
style
|
|
33
|
+
} = props;
|
|
34
|
+
const viewRef = useRef(null);
|
|
35
|
+
const executeCommand = useCallback((commandName, commandId) => {
|
|
36
|
+
const node = findNodeHandle(viewRef.current);
|
|
37
|
+
if (!node) {
|
|
38
|
+
console.warn(`Cannot execute ${commandName} - view not mounted`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
console.log(`Executing ${commandName} (ID: ${commandId}) on node: ${node}`);
|
|
42
|
+
UIManager.dispatchViewManagerCommand(node, commandId, []);
|
|
43
|
+
}, []);
|
|
44
|
+
useImperativeHandle(ref, () => ({
|
|
45
|
+
loadBanner: () => executeCommand('loadBanner', Commands.loadBanner),
|
|
46
|
+
showBanner: () => executeCommand('showBanner', Commands.showBanner),
|
|
47
|
+
hideBanner: () => executeCommand('hideBanner', Commands.hideBanner),
|
|
48
|
+
loadInterstitial: () => executeCommand('loadInterstitial', Commands.loadInterstitial),
|
|
49
|
+
showInterstitial: () => executeCommand('showInterstitial', Commands.showInterstitial),
|
|
50
|
+
hideInterstitial: () => executeCommand('hideInterstitial', Commands.hideInterstitial),
|
|
51
|
+
pauseAuction: () => executeCommand('pauseAuction', Commands.pauseAuction),
|
|
52
|
+
resumeAuction: () => executeCommand('resumeAuction', Commands.resumeAuction),
|
|
53
|
+
destroyAuction: () => executeCommand('destroyAuction', Commands.destroyAuction)
|
|
54
|
+
}), [executeCommand]);
|
|
55
|
+
const handleAdLoaded = useCallback(event => {
|
|
56
|
+
const data = event.nativeEvent;
|
|
57
|
+
console.log('Ad loaded:', data);
|
|
58
|
+
onAdLoaded?.(data);
|
|
59
|
+
}, [onAdLoaded]);
|
|
60
|
+
const handleAdDisplayed = useCallback(event => {
|
|
61
|
+
const data = event.nativeEvent;
|
|
62
|
+
console.log('Ad displayed:', data);
|
|
63
|
+
onAdDisplayed?.(data);
|
|
64
|
+
}, [onAdDisplayed]);
|
|
65
|
+
const handleAdFailed = useCallback(event => {
|
|
66
|
+
const data = event.nativeEvent;
|
|
67
|
+
console.error('Ad failed:', data.error, `SDK: ${data.sdkType}`);
|
|
68
|
+
onAdFailed?.(data);
|
|
69
|
+
}, [onAdFailed]);
|
|
70
|
+
const handleAdClicked = useCallback(event => {
|
|
71
|
+
const data = event.nativeEvent;
|
|
72
|
+
console.log('Ad clicked:', data);
|
|
73
|
+
onAdClicked?.(data);
|
|
74
|
+
}, [onAdClicked]);
|
|
75
|
+
const handleAdClosed = useCallback(event => {
|
|
76
|
+
const data = event.nativeEvent;
|
|
77
|
+
console.log('Ad closed:', data);
|
|
78
|
+
onAdClosed?.(data);
|
|
79
|
+
}, [onAdClosed]);
|
|
80
|
+
const containerStyle = {
|
|
81
|
+
overflow: 'hidden',
|
|
82
|
+
...(adType === 'banner' && width && height ? {
|
|
83
|
+
width,
|
|
84
|
+
height
|
|
85
|
+
} : {
|
|
86
|
+
width: 1,
|
|
87
|
+
height: 1
|
|
88
|
+
}),
|
|
89
|
+
...(style || {})
|
|
90
|
+
};
|
|
91
|
+
return /*#__PURE__*/_jsx(View, {
|
|
92
|
+
style: containerStyle,
|
|
93
|
+
children: /*#__PURE__*/_jsx(VeonPrebidReactNativeView, {
|
|
94
|
+
ref: viewRef,
|
|
95
|
+
style: StyleSheet.absoluteFill,
|
|
96
|
+
adType: adType,
|
|
97
|
+
configId: configId,
|
|
98
|
+
adUnitId: adUnitId,
|
|
99
|
+
width: width,
|
|
100
|
+
height: height,
|
|
101
|
+
refreshInterval: refreshInterval,
|
|
102
|
+
onAdLoaded: handleAdLoaded,
|
|
103
|
+
onAdDisplayed: handleAdDisplayed,
|
|
104
|
+
onAdFailed: handleAdFailed,
|
|
105
|
+
onAdClicked: handleAdClicked,
|
|
106
|
+
onAdClosed: handleAdClosed
|
|
107
|
+
})
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
VeonPrebidAd.displayName = 'VeonPrebidAd';
|
|
111
|
+
export default VeonPrebidAd;
|
|
112
|
+
//# sourceMappingURL=VeonPrebidAd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","useImperativeHandle","forwardRef","useCallback","UIManager","findNodeHandle","StyleSheet","View","VeonPrebidReactNativeView","jsx","_jsx","Commands","loadBanner","showBanner","hideBanner","loadInterstitial","showInterstitial","hideInterstitial","pauseAuction","resumeAuction","destroyAuction","VeonPrebidAd","props","ref","adType","configId","adUnitId","width","height","refreshInterval","onAdLoaded","onAdDisplayed","onAdFailed","onAdClicked","onAdClosed","style","viewRef","executeCommand","commandName","commandId","node","current","console","warn","log","dispatchViewManagerCommand","handleAdLoaded","event","data","nativeEvent","handleAdDisplayed","handleAdFailed","error","sdkType","handleAdClicked","handleAdClosed","containerStyle","overflow","children","absoluteFill","displayName"],"sourceRoot":"../../src","sources":["VeonPrebidAd.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NativeModules, NativeEventEmitter } from 'react-native';
|
|
4
|
+
const LINKING_ERROR = `The package 'setupad-prebid-react-native' doesn't seem to be linked. Make sure: \n\n` + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
5
|
+
|
|
6
|
+
// Native Module
|
|
7
|
+
const VeonPrebidReactNativeModule = NativeModules.VeonPrebidReactNativeModule ? NativeModules.VeonPrebidReactNativeModule : new Proxy({}, {
|
|
8
|
+
get() {
|
|
9
|
+
throw new Error(LINKING_ERROR);
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
// Event Emitter for SDK events
|
|
14
|
+
const eventEmitter = new NativeEventEmitter(VeonPrebidReactNativeModule);
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Veon Prebid SDK Module
|
|
18
|
+
* Handles SDK initialization and global SDK operations
|
|
19
|
+
*/
|
|
20
|
+
class VeonPrebidSDK {
|
|
21
|
+
isInitialized = false;
|
|
22
|
+
initializationPromise = null;
|
|
23
|
+
constructor() {}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Get singleton instance
|
|
27
|
+
*/
|
|
28
|
+
static getInstance() {
|
|
29
|
+
if (!VeonPrebidSDK.instance) {
|
|
30
|
+
VeonPrebidSDK.instance = new VeonPrebidSDK();
|
|
31
|
+
}
|
|
32
|
+
return VeonPrebidSDK.instance;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Initialize Prebid Mobile SDK
|
|
37
|
+
*
|
|
38
|
+
* @param config - Prebid configuration
|
|
39
|
+
* @returns Promise that resolves when SDK is initialized
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* await VeonPrebidSDK.getInstance().initialize({
|
|
44
|
+
* prebidHost: 'https://prebid.veonadx.com/openrtb2/auction',
|
|
45
|
+
* configHost: 'https://config.veonadx.com',
|
|
46
|
+
* accountId: 'YOUR_ACCOUNT_ID',
|
|
47
|
+
* timeoutMillis: 3000,
|
|
48
|
+
* pbsDebug: __DEV__,
|
|
49
|
+
* });
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
async initialize(config) {
|
|
53
|
+
// Return existing initialization if in progress
|
|
54
|
+
if (this.initializationPromise !== null) {
|
|
55
|
+
return this.initializationPromise;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Return immediately if already initialized
|
|
59
|
+
if (this.isInitialized) {
|
|
60
|
+
return Promise.resolve('already initialized');
|
|
61
|
+
}
|
|
62
|
+
const {
|
|
63
|
+
prebidHost,
|
|
64
|
+
configHost,
|
|
65
|
+
accountId,
|
|
66
|
+
timeoutMillis = 3000,
|
|
67
|
+
pbsDebug = false
|
|
68
|
+
} = config;
|
|
69
|
+
console.log('Initializing Veon Prebid SDK...', {
|
|
70
|
+
prebidHost,
|
|
71
|
+
configHost,
|
|
72
|
+
accountId,
|
|
73
|
+
timeoutMillis,
|
|
74
|
+
pbsDebug
|
|
75
|
+
});
|
|
76
|
+
const promise = VeonPrebidReactNativeModule.initializeSDK(prebidHost, configHost, accountId, timeoutMillis, pbsDebug).then(result => {
|
|
77
|
+
console.log('Veon Prebid SDK initialized successfully:', result);
|
|
78
|
+
this.isInitialized = true;
|
|
79
|
+
this.initializationPromise = null;
|
|
80
|
+
return result;
|
|
81
|
+
}).catch(error => {
|
|
82
|
+
console.error('Failed to initialize Veon Prebid SDK:', error);
|
|
83
|
+
this.initializationPromise = null;
|
|
84
|
+
throw error;
|
|
85
|
+
});
|
|
86
|
+
this.initializationPromise = promise;
|
|
87
|
+
return promise;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Get Prebid SDK version
|
|
92
|
+
*
|
|
93
|
+
* @returns Promise that resolves with SDK version string
|
|
94
|
+
*/
|
|
95
|
+
async getSDKVersion() {
|
|
96
|
+
try {
|
|
97
|
+
return await VeonPrebidReactNativeModule.getSDKVersion();
|
|
98
|
+
} catch (error) {
|
|
99
|
+
console.error('Failed to get SDK version:', error);
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Check if SDK is initialized
|
|
106
|
+
*/
|
|
107
|
+
isSDKInitialized() {
|
|
108
|
+
return this.isInitialized;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Add listener for SDK initialization events
|
|
113
|
+
*
|
|
114
|
+
* @param event - Event name ('prebidSdkInitialized' or 'prebidSdkInitializeFailed')
|
|
115
|
+
* @param listener - Callback function
|
|
116
|
+
* @returns Subscription object with remove() method
|
|
117
|
+
*/
|
|
118
|
+
addListener(event, listener) {
|
|
119
|
+
return eventEmitter.addListener(event, listener);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Remove all listeners for specific event
|
|
124
|
+
*
|
|
125
|
+
* @param event - Event name
|
|
126
|
+
*/
|
|
127
|
+
removeAllListeners(event) {
|
|
128
|
+
eventEmitter.removeAllListeners(event);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export default VeonPrebidSDK;
|
|
132
|
+
//# sourceMappingURL=VeonPrebidModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","LINKING_ERROR","VeonPrebidReactNativeModule","Proxy","get","Error","eventEmitter","VeonPrebidSDK","isInitialized","initializationPromise","constructor","getInstance","instance","initialize","config","Promise","resolve","prebidHost","configHost","accountId","timeoutMillis","pbsDebug","console","log","promise","initializeSDK","then","result","catch","error","getSDKVersion","isSDKInitialized","addListener","event","listener","removeAllListeners"],"sourceRoot":"../../src","sources":["VeonPrebidModule.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ViewProps } from 'react-native';
|
|
2
|
+
import type {
|
|
3
|
+
Int32,
|
|
4
|
+
DirectEventHandler,
|
|
5
|
+
} from 'react-native/Libraries/Types/CodegenTypes';
|
|
6
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Event payload for ad events
|
|
10
|
+
*/
|
|
11
|
+
export interface AdEventPayload {
|
|
12
|
+
adId?: string;
|
|
13
|
+
sdk?: string;
|
|
14
|
+
message?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Native Props for VeonPrebidReactNativeView
|
|
19
|
+
*/
|
|
20
|
+
export interface NativeProps extends ViewProps {
|
|
21
|
+
/** Ad type: banner, interstitial, or rewardVideo */
|
|
22
|
+
adType?: string;
|
|
23
|
+
|
|
24
|
+
/** Prebid config ID */
|
|
25
|
+
configId?: string;
|
|
26
|
+
|
|
27
|
+
/** Google Ad Manager ad unit ID */
|
|
28
|
+
adUnitId?: string;
|
|
29
|
+
|
|
30
|
+
/** Ad width (required for banners) */
|
|
31
|
+
width?: Int32;
|
|
32
|
+
|
|
33
|
+
/** Ad height (required for banners) */
|
|
34
|
+
height?: Int32;
|
|
35
|
+
|
|
36
|
+
/** Refresh interval in seconds (30-120, for banners only) */
|
|
37
|
+
refreshInterval?: Int32;
|
|
38
|
+
|
|
39
|
+
// Event handlers
|
|
40
|
+
onAdLoaded?: DirectEventHandler<AdEventPayload>;
|
|
41
|
+
onAdDisplayed?: DirectEventHandler<AdEventPayload>;
|
|
42
|
+
onAdFailed?: DirectEventHandler<AdEventPayload>;
|
|
43
|
+
onAdClicked?: DirectEventHandler<AdEventPayload>;
|
|
44
|
+
onAdClosed?: DirectEventHandler<AdEventPayload>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Native component for Veon Prebid ads
|
|
49
|
+
*/
|
|
50
|
+
export default codegenNativeComponent<NativeProps>('VeonPrebidReactNativeView');
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import VeonPrebidReactNativeViewNative from './VeonPrebidReactNativeViewNativeComponent';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
export const VeonPrebidView = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
7
|
+
return /*#__PURE__*/_jsx(VeonPrebidReactNativeViewNative, {
|
|
8
|
+
ref: ref,
|
|
9
|
+
...props
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
VeonPrebidView.displayName = 'VeonPrebidView';
|
|
13
|
+
export default VeonPrebidView;
|
|
14
|
+
//# sourceMappingURL=VeonPrebidView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","VeonPrebidReactNativeViewNative","jsx","_jsx","VeonPrebidView","forwardRef","props","ref","displayName"],"sourceRoot":"../../src","sources":["VeonPrebidView.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,+BAA+B,MAAM,4CAA4C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzF,OAAO,MAAMC,cAAc,gBAAGJ,KAAK,CAACK,UAAU,CAC5C,CAACC,KAAK,EAAEC,GAAG,KAAK;EACd,oBAAOJ,IAAA,CAACF,+BAA+B;IAACM,GAAG,EAAEA,GAAI;IAAA,GAAKD;EAAK,CAAG,CAAC;AACjE,CACF,CAAC;AAEDF,cAAc,CAACI,WAAW,GAAG,gBAAgB;AAE7C,eAAeJ,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export { VeonPrebidView } from "./VeonPrebidView.js";
|
|
4
|
+
export { VeonPrebidCommands } from "./Commands.js";
|
|
5
|
+
export { default as VeonPrebidAd } from "./VeonPrebidAd.js";
|
|
6
|
+
export { default as VeonPrebidSDK } from "./VeonPrebidModule.js";
|
|
7
|
+
export { AdType } from "./types.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["VeonPrebidView","VeonPrebidCommands","default","VeonPrebidAd","VeonPrebidSDK","AdType"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,cAAc,QAAQ,qBAAkB;AACjD,SAASC,kBAAkB,QAAQ,eAAY;AAC/C,SAASC,OAAO,IAAIC,YAAY,QAAQ,mBAAgB;AACxD,SAASD,OAAO,IAAIE,aAAa,QAAQ,uBAAoB;AAC7D,SAASC,MAAM,QAAQ,YAAS","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AdType","BANNER","INTERSTITIAL","REWARD_VIDEO"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAAA,OAAO,MAAMA,MAAM,GAAG;EACpBC,MAAM,EAAE,QAAiB;EACzBC,YAAY,EAAE,cAAuB;EACrCC,YAAY,EAAE;AAChB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useRef, useCallback, useEffect } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Hook for managing Veon Prebid ads programmatically
|
|
6
|
+
*
|
|
7
|
+
* @param config - Ad configuration
|
|
8
|
+
* @param eventListener - Optional event listener
|
|
9
|
+
* @returns AdController reference and helper functions
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* function MyComponent() {
|
|
14
|
+
* const { adRef, loadBanner, showBanner } = useVeonPrebidAd(
|
|
15
|
+
* {
|
|
16
|
+
* adType: AdType.BANNER,
|
|
17
|
+
* configId: 'YOUR_CONFIG_ID',
|
|
18
|
+
* adUnitId: 'YOUR_AD_UNIT_ID',
|
|
19
|
+
* width: 300,
|
|
20
|
+
* height: 250,
|
|
21
|
+
* },
|
|
22
|
+
* {
|
|
23
|
+
* onAdLoaded: (data) => console.log('Ad loaded', data),
|
|
24
|
+
* onAdFailed: (error) => console.error('Ad failed', error),
|
|
25
|
+
* }
|
|
26
|
+
* );
|
|
27
|
+
*
|
|
28
|
+
* useEffect(() => {
|
|
29
|
+
* loadBanner();
|
|
30
|
+
* }, []);
|
|
31
|
+
*
|
|
32
|
+
* return (
|
|
33
|
+
* <VeonPrebidAd
|
|
34
|
+
* ref={adRef}
|
|
35
|
+
* {...config}
|
|
36
|
+
* {...eventListener}
|
|
37
|
+
* />
|
|
38
|
+
* );
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function useVeonPrebidAd(config) {
|
|
43
|
+
const adRef = useRef(null);
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Load banner ad
|
|
47
|
+
*/
|
|
48
|
+
const loadBanner = useCallback(() => {
|
|
49
|
+
if (config.adType !== 'banner') {
|
|
50
|
+
console.warn('loadBanner called but ad type is not banner');
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
adRef.current?.loadBanner();
|
|
54
|
+
}, [config.adType]);
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Show banner ad
|
|
58
|
+
*/
|
|
59
|
+
const showBanner = useCallback(() => {
|
|
60
|
+
if (config.adType !== 'banner') {
|
|
61
|
+
console.warn('showBanner called but ad type is not banner');
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
adRef.current?.showBanner();
|
|
65
|
+
}, [config.adType]);
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Hide banner ad
|
|
69
|
+
*/
|
|
70
|
+
const hideBanner = useCallback(() => {
|
|
71
|
+
if (config.adType !== 'banner') {
|
|
72
|
+
console.warn('hideBanner called but ad type is not banner');
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
adRef.current?.hideBanner();
|
|
76
|
+
}, [config.adType]);
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Load interstitial ad
|
|
80
|
+
*/
|
|
81
|
+
const loadInterstitial = useCallback(() => {
|
|
82
|
+
if (config.adType !== 'interstitial') {
|
|
83
|
+
console.warn('loadInterstitial called but ad type is not interstitial');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
adRef.current?.loadInterstitial();
|
|
87
|
+
}, [config.adType]);
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Show interstitial ad
|
|
91
|
+
*/
|
|
92
|
+
const showInterstitial = useCallback(() => {
|
|
93
|
+
if (config.adType !== 'interstitial') {
|
|
94
|
+
console.warn('showInterstitial called but ad type is not interstitial');
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
adRef.current?.showInterstitial();
|
|
98
|
+
}, [config.adType]);
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Hide interstitial ad
|
|
102
|
+
*/
|
|
103
|
+
const hideInterstitial = useCallback(() => {
|
|
104
|
+
if (config.adType !== 'interstitial') {
|
|
105
|
+
console.warn('hideInterstitial called but ad type is not interstitial');
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
adRef.current?.hideInterstitial();
|
|
109
|
+
}, [config.adType]);
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Pause ad auction (for banners)
|
|
113
|
+
*/
|
|
114
|
+
const pauseAuction = useCallback(() => {
|
|
115
|
+
adRef.current?.pauseAuction();
|
|
116
|
+
}, []);
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Resume ad auction (for banners)
|
|
120
|
+
*/
|
|
121
|
+
const resumeAuction = useCallback(() => {
|
|
122
|
+
adRef.current?.resumeAuction();
|
|
123
|
+
}, []);
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Destroy ad and free resources
|
|
127
|
+
*/
|
|
128
|
+
const destroyAuction = useCallback(() => {
|
|
129
|
+
adRef.current?.destroyAuction();
|
|
130
|
+
}, []);
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Cleanup on unmount
|
|
134
|
+
*/
|
|
135
|
+
useEffect(() => {
|
|
136
|
+
return () => {
|
|
137
|
+
// Optional: destroy ad on unmount
|
|
138
|
+
// adRef.current?.destroyAuction();
|
|
139
|
+
};
|
|
140
|
+
}, []);
|
|
141
|
+
return {
|
|
142
|
+
adRef,
|
|
143
|
+
loadBanner,
|
|
144
|
+
showBanner,
|
|
145
|
+
hideBanner,
|
|
146
|
+
loadInterstitial,
|
|
147
|
+
showInterstitial,
|
|
148
|
+
hideInterstitial,
|
|
149
|
+
pauseAuction,
|
|
150
|
+
resumeAuction,
|
|
151
|
+
destroyAuction
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=useVeonPrebidAd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","useCallback","useEffect","useVeonPrebidAd","config","adRef","loadBanner","adType","console","warn","current","showBanner","hideBanner","loadInterstitial","showInterstitial","hideInterstitial","pauseAuction","resumeAuction","destroyAuction"],"sourceRoot":"../../src","sources":["useVeonPrebidAd.ts"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAGtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAC7BC,MAA4G,EAC5G;EACA,MAAMC,KAAK,GAAGL,MAAM,CAAe,IAAI,CAAC;;EAExC;AACF;AACA;EACE,MAAMM,UAAU,GAAGL,WAAW,CAAC,MAAM;IACnC,IAAIG,MAAM,CAACG,MAAM,KAAK,QAAQ,EAAE;MAC9BC,OAAO,CAACC,IAAI,CAAC,6CAA6C,CAAC;MAC3D;IACF;IACAJ,KAAK,CAACK,OAAO,EAAEJ,UAAU,CAAC,CAAC;EAC7B,CAAC,EAAE,CAACF,MAAM,CAACG,MAAM,CAAC,CAAC;;EAEnB;AACF;AACA;EACE,MAAMI,UAAU,GAAGV,WAAW,CAAC,MAAM;IACnC,IAAIG,MAAM,CAACG,MAAM,KAAK,QAAQ,EAAE;MAC9BC,OAAO,CAACC,IAAI,CAAC,6CAA6C,CAAC;MAC3D;IACF;IACAJ,KAAK,CAACK,OAAO,EAAEC,UAAU,CAAC,CAAC;EAC7B,CAAC,EAAE,CAACP,MAAM,CAACG,MAAM,CAAC,CAAC;;EAEnB;AACF;AACA;EACE,MAAMK,UAAU,GAAGX,WAAW,CAAC,MAAM;IACnC,IAAIG,MAAM,CAACG,MAAM,KAAK,QAAQ,EAAE;MAC9BC,OAAO,CAACC,IAAI,CAAC,6CAA6C,CAAC;MAC3D;IACF;IACAJ,KAAK,CAACK,OAAO,EAAEE,UAAU,CAAC,CAAC;EAC7B,CAAC,EAAE,CAACR,MAAM,CAACG,MAAM,CAAC,CAAC;;EAEnB;AACF;AACA;EACE,MAAMM,gBAAgB,GAAGZ,WAAW,CAAC,MAAM;IACzC,IAAIG,MAAM,CAACG,MAAM,KAAK,cAAc,EAAE;MACpCC,OAAO,CAACC,IAAI,CAAC,yDAAyD,CAAC;MACvE;IACF;IACAJ,KAAK,CAACK,OAAO,EAAEG,gBAAgB,CAAC,CAAC;EACnC,CAAC,EAAE,CAACT,MAAM,CAACG,MAAM,CAAC,CAAC;;EAEnB;AACF;AACA;EACE,MAAMO,gBAAgB,GAAGb,WAAW,CAAC,MAAM;IACzC,IAAIG,MAAM,CAACG,MAAM,KAAK,cAAc,EAAE;MACpCC,OAAO,CAACC,IAAI,CAAC,yDAAyD,CAAC;MACvE;IACF;IACAJ,KAAK,CAACK,OAAO,EAAEI,gBAAgB,CAAC,CAAC;EACnC,CAAC,EAAE,CAACV,MAAM,CAACG,MAAM,CAAC,CAAC;;EAEnB;AACF;AACA;EACE,MAAMQ,gBAAgB,GAAGd,WAAW,CAAC,MAAM;IACzC,IAAIG,MAAM,CAACG,MAAM,KAAK,cAAc,EAAE;MACpCC,OAAO,CAACC,IAAI,CAAC,yDAAyD,CAAC;MACvE;IACF;IACAJ,KAAK,CAACK,OAAO,EAAEK,gBAAgB,CAAC,CAAC;EACnC,CAAC,EAAE,CAACX,MAAM,CAACG,MAAM,CAAC,CAAC;;EAEnB;AACF;AACA;EACE,MAAMS,YAAY,GAAGf,WAAW,CAAC,MAAM;IACrCI,KAAK,CAACK,OAAO,EAAEM,YAAY,CAAC,CAAC;EAC/B,CAAC,EAAE,EAAE,CAAC;;EAEN;AACF;AACA;EACE,MAAMC,aAAa,GAAGhB,WAAW,CAAC,MAAM;IACtCI,KAAK,CAACK,OAAO,EAAEO,aAAa,CAAC,CAAC;EAChC,CAAC,EAAE,EAAE,CAAC;;EAEN;AACF;AACA;EACE,MAAMC,cAAc,GAAGjB,WAAW,CAAC,MAAM;IACvCI,KAAK,CAACK,OAAO,EAAEQ,cAAc,CAAC,CAAC;EACjC,CAAC,EAAE,EAAE,CAAC;;EAEN;AACF;AACA;EACEhB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX;MACA;IAAA,CACD;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACLG,KAAK;IACLC,UAAU;IACVK,UAAU;IACVC,UAAU;IACVC,gBAAgB;IAChBC,gBAAgB;IAChBC,gBAAgB;IAChBC,YAAY;IACZC,aAAa;IACbC;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Int32 } from 'react-native/Libraries/Types/CodegenTypes';
|
|
2
|
+
export interface VeonPrebidCommands {
|
|
3
|
+
readonly loadBanner: Int32;
|
|
4
|
+
readonly showBanner: Int32;
|
|
5
|
+
readonly hideBanner: Int32;
|
|
6
|
+
readonly loadInterstitial: Int32;
|
|
7
|
+
readonly showInterstitial: Int32;
|
|
8
|
+
readonly hideInterstitial: Int32;
|
|
9
|
+
readonly pauseAuction: Int32;
|
|
10
|
+
readonly resumeAuction: Int32;
|
|
11
|
+
readonly destroyAuction: Int32;
|
|
12
|
+
}
|
|
13
|
+
export declare const VeonPrebidCommands: VeonPrebidCommands;
|
|
14
|
+
//# sourceMappingURL=Commands.d.ts.map
|