@thealteroffice/react-native-adgeist 0.0.19 → 0.0.22
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/Adgeist.podspec +1 -1
- package/README.md +70 -521
- package/android/build.gradle +6 -3
- package/android/generated/java/com/adgeist/NativeAdgeistSpec.java +11 -11
- package/android/generated/java/com/facebook/react/viewmanagers/HTML5AdNativeComponentManagerDelegate.java +55 -0
- package/android/generated/java/com/facebook/react/viewmanagers/HTML5AdNativeComponentManagerInterface.java +24 -0
- package/android/generated/jni/RNAdgeistSpec-generated.cpp +12 -12
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/ComponentDescriptors.cpp +22 -0
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/ComponentDescriptors.h +24 -0
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/EventEmitters.cpp +60 -0
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/EventEmitters.h +49 -0
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/Props.cpp +28 -0
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/Props.h +52 -0
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/RNAdgeistSpecJSI-generated.cpp +14 -22
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/RNAdgeistSpecJSI.h +36 -36
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/ShadowNodes.cpp +17 -0
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/ShadowNodes.h +32 -0
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/States.cpp +16 -0
- package/android/generated/jni/react/renderer/components/RNAdgeistSpec/States.h +29 -0
- package/android/src/main/java/com/adgeist/AdgeistPackage.kt +8 -7
- package/android/src/main/java/com/adgeist/components/HTML5AdViewManagerImpl.kt +125 -0
- package/android/src/main/java/com/adgeist/modules/AdgeistImpl.kt +114 -0
- package/android/src/main/java/com/adgeist/utils/CreativeExtensions.kt +151 -0
- package/android/src/newarch/java/com/Adgeist.kt +119 -0
- package/android/src/newarch/java/com/HTML5AdViewManager.kt +77 -0
- package/android/src/oldarch/java/com/Adgeist.kt +132 -0
- package/android/src/oldarch/java/com/HTML5AdViewManager.kt +63 -0
- package/ios/Adgeist-Bridging-Header.h +3 -0
- package/ios/Adgeist.h +1 -1
- package/ios/Adgeist.mm +154 -38
- package/ios/AdgeistImpl.swift +188 -53
- package/ios/NativeHTML5AdManager.h +9 -0
- package/ios/NativeHTML5AdManager.mm +178 -0
- package/ios/NativeHTML5AdView.swift +136 -0
- package/ios/generated/RNAdgeistSpec/ComponentDescriptors.cpp +22 -0
- package/ios/generated/RNAdgeistSpec/ComponentDescriptors.h +24 -0
- package/ios/generated/RNAdgeistSpec/EventEmitters.cpp +60 -0
- package/ios/generated/RNAdgeistSpec/EventEmitters.h +49 -0
- package/ios/generated/RNAdgeistSpec/Props.cpp +28 -0
- package/ios/generated/RNAdgeistSpec/Props.h +52 -0
- package/ios/generated/RNAdgeistSpec/RCTComponentViewHelpers.h +65 -0
- package/ios/generated/RNAdgeistSpec/RNAdgeistSpec-generated.mm +17 -17
- package/ios/generated/RNAdgeistSpec/RNAdgeistSpec.h +17 -25
- package/ios/generated/RNAdgeistSpec/ShadowNodes.cpp +17 -0
- package/ios/generated/RNAdgeistSpec/ShadowNodes.h +32 -0
- package/ios/generated/RNAdgeistSpec/States.cpp +16 -0
- package/ios/generated/RNAdgeistSpec/States.h +29 -0
- package/ios/generated/RNAdgeistSpecJSI-generated.cpp +14 -22
- package/ios/generated/RNAdgeistSpecJSI.h +36 -36
- package/lib/module/cdpclient/index.js +1 -25
- package/lib/module/cdpclient/index.js.map +1 -1
- package/lib/module/components/HTML5AdView.js +128 -0
- package/lib/module/components/HTML5AdView.js.map +1 -0
- package/lib/module/components/{BannerAd.js → deprecated/BannerAdView.js} +50 -79
- package/lib/module/components/deprecated/BannerAdView.js.map +1 -0
- package/lib/module/components/{ConsentModal.js → deprecated/ConsentModal.js} +2 -2
- package/lib/module/components/deprecated/ConsentModal.js.map +1 -0
- package/lib/module/constants.js +14 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/index.js +3 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/{components → providers}/AdgeistProvider.js +10 -35
- package/lib/module/providers/AdgeistProvider.js.map +1 -0
- package/lib/module/specs/HTML5AdNativeComponent.ts +46 -0
- package/lib/module/specs/NativeAdgeist.js.map +1 -0
- package/lib/module/types/AdSize.js +2 -0
- package/lib/module/types/AdSize.js.map +1 -0
- package/lib/module/types/CPMAdResponse.js +2 -0
- package/lib/module/types/CPMAdResponse.js.map +1 -0
- package/lib/module/types/FixedAdResponse.js +2 -0
- package/lib/module/types/FixedAdResponse.js.map +1 -0
- package/lib/module/types/HTML5AdNativeComponentProps.js +4 -0
- package/lib/module/types/HTML5AdNativeComponentProps.js.map +1 -0
- package/lib/module/types/Provider.js +2 -0
- package/lib/module/types/Provider.js.map +1 -0
- package/lib/typescript/src/cdpclient/index.d.ts +1 -21
- package/lib/typescript/src/cdpclient/index.d.ts.map +1 -1
- package/lib/typescript/src/components/HTML5AdView.d.ts +3 -0
- package/lib/typescript/src/components/HTML5AdView.d.ts.map +1 -0
- package/lib/typescript/src/components/deprecated/BannerAdView.d.ts +17 -0
- package/lib/typescript/src/components/deprecated/BannerAdView.d.ts.map +1 -0
- package/lib/typescript/src/components/deprecated/ConsentModal.d.ts.map +1 -0
- package/lib/typescript/src/constants.d.ts +10 -0
- package/lib/typescript/src/constants.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/providers/AdgeistProvider.d.ts +9 -0
- package/lib/typescript/src/providers/AdgeistProvider.d.ts.map +1 -0
- package/lib/typescript/src/specs/HTML5AdNativeComponent.d.ts +29 -0
- package/lib/typescript/src/specs/HTML5AdNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeAdgeist.d.ts +28 -0
- package/lib/typescript/src/specs/NativeAdgeist.d.ts.map +1 -0
- package/lib/typescript/src/types/AdSize.d.ts +5 -0
- package/lib/typescript/src/types/AdSize.d.ts.map +1 -0
- package/lib/typescript/src/types/CPMAdResponse.d.ts +25 -0
- package/lib/typescript/src/types/CPMAdResponse.d.ts.map +1 -0
- package/lib/typescript/src/types/FixedAdResponse.d.ts +50 -0
- package/lib/typescript/src/types/FixedAdResponse.d.ts.map +1 -0
- package/lib/typescript/src/types/HTML5AdNativeComponentProps.d.ts +24 -0
- package/lib/typescript/src/types/HTML5AdNativeComponentProps.d.ts.map +1 -0
- package/lib/typescript/src/types/Provider.d.ts +16 -0
- package/lib/typescript/src/types/Provider.d.ts.map +1 -0
- package/package.json +8 -3
- package/plugin/build/android/withRNAdgeistMainApplication.d.ts +3 -0
- package/plugin/build/android/withRNAdgeistMainApplication.js +65 -0
- package/plugin/build/index.d.ts +3 -0
- package/plugin/build/index.js +25 -0
- package/plugin/build/ios/withRNAdgeistAppDelegate.d.ts +4 -0
- package/plugin/build/ios/withRNAdgeistAppDelegate.js +66 -0
- package/react-native.config.js +1 -1
- package/src/cdpclient/index.ts +1 -21
- package/src/components/HTML5AdView.tsx +161 -0
- package/src/components/{BannerAd.tsx → deprecated/BannerAdView.tsx} +80 -115
- package/src/components/{ConsentModal.tsx → deprecated/ConsentModal.tsx} +2 -2
- package/src/constants.ts +8 -0
- package/src/index.tsx +4 -2
- package/src/{components → providers}/AdgeistProvider.tsx +26 -60
- package/src/specs/HTML5AdNativeComponent.ts +46 -0
- package/src/{NativeAdgeist.ts → specs/NativeAdgeist.ts} +26 -25
- package/src/types/AdSize.ts +4 -0
- package/src/types/CPMAdResponse.ts +26 -0
- package/src/types/FixedAdResponse.ts +51 -0
- package/src/types/HTML5AdNativeComponentProps.ts +28 -0
- package/src/types/Provider.ts +16 -0
- package/android/src/main/AndroidManifestNew.xml +0 -2
- package/android/src/main/java/com/adgeist/implementation/AdgeistModuleImpl.kt +0 -252
- package/android/src/newarch/java/com/AdgeistModule.kt +0 -135
- package/android/src/oldarch/java/com/AdgeistModule.kt +0 -148
- package/ios/adgeist-Bridging-Header.h +0 -1
- package/lib/module/NativeAdgeist.js.map +0 -1
- package/lib/module/components/AdgeistProvider.js.map +0 -1
- package/lib/module/components/BannerAd.js.map +0 -1
- package/lib/module/components/ConsentModal.js.map +0 -1
- package/lib/typescript/src/NativeAdgeist.d.ts +0 -28
- package/lib/typescript/src/NativeAdgeist.d.ts.map +0 -1
- package/lib/typescript/src/components/AdgeistProvider.d.ts +0 -50
- package/lib/typescript/src/components/AdgeistProvider.d.ts.map +0 -1
- package/lib/typescript/src/components/BannerAd.d.ts +0 -64
- package/lib/typescript/src/components/BannerAd.d.ts.map +0 -1
- package/lib/typescript/src/components/ConsentModal.d.ts.map +0 -1
- /package/lib/module/{NativeAdgeist.js → specs/NativeAdgeist.js} +0 -0
- /package/lib/typescript/src/components/{ConsentModal.d.ts → deprecated/ConsentModal.d.ts} +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface CPMADRESPONSE {
|
|
2
|
+
id: string;
|
|
3
|
+
bidId: string;
|
|
4
|
+
cur: string;
|
|
5
|
+
seatBid: SeatBid[];
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
interface SeatBid {
|
|
9
|
+
bidId: string;
|
|
10
|
+
bid: Bid[];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface Bid {
|
|
14
|
+
id: string;
|
|
15
|
+
impId: string;
|
|
16
|
+
price: number;
|
|
17
|
+
ext: BidExtension;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
interface BidExtension {
|
|
21
|
+
creativeUrl: string;
|
|
22
|
+
ctaUrl: string;
|
|
23
|
+
creativeTitle: string;
|
|
24
|
+
creativeDescription: string;
|
|
25
|
+
creativeBrandName?: string;
|
|
26
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export interface FIXEDADRESPONSE {
|
|
2
|
+
metaData: string;
|
|
3
|
+
id: string;
|
|
4
|
+
generatedAt: string;
|
|
5
|
+
signature: string;
|
|
6
|
+
campaignId: string;
|
|
7
|
+
advertiser: Advertiser;
|
|
8
|
+
type: 'FIXED' | string;
|
|
9
|
+
loadType: 'QUICK' | string;
|
|
10
|
+
displayOptions: DisplayOptions;
|
|
11
|
+
campaignValidity: {
|
|
12
|
+
startTime: string;
|
|
13
|
+
endTime: string;
|
|
14
|
+
};
|
|
15
|
+
creatives: Creative[];
|
|
16
|
+
frontendCacheDurationSeconds: number;
|
|
17
|
+
impressionRequirements: {
|
|
18
|
+
impressionType: ('VIEW' | 'CLICK')[];
|
|
19
|
+
minViewDurationSeconds: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface Advertiser {
|
|
24
|
+
id: string;
|
|
25
|
+
name: string;
|
|
26
|
+
logoUrl: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
interface DisplayOptions {
|
|
30
|
+
isResponsive: boolean;
|
|
31
|
+
dimensions: {
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
};
|
|
35
|
+
styleOptions: {
|
|
36
|
+
fontFamily: string;
|
|
37
|
+
fontColor: string;
|
|
38
|
+
};
|
|
39
|
+
allowedFormats: string[];
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
interface Creative {
|
|
43
|
+
ctaUrl: string;
|
|
44
|
+
title: string;
|
|
45
|
+
description: string;
|
|
46
|
+
type: 'image' | string;
|
|
47
|
+
fileName: string;
|
|
48
|
+
fileSize: number;
|
|
49
|
+
fileUrl: string;
|
|
50
|
+
thumbnailUrl: string;
|
|
51
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { NativeSyntheticEvent } from 'react-native';
|
|
2
|
+
import type { AdSize } from './AdSize';
|
|
3
|
+
|
|
4
|
+
export interface HTML5AdNativeComponentProps {
|
|
5
|
+
adUnitID: string;
|
|
6
|
+
adIsResponsive?: boolean;
|
|
7
|
+
adSize?: AdSize;
|
|
8
|
+
adType: string;
|
|
9
|
+
|
|
10
|
+
onAdLoaded?: () => void;
|
|
11
|
+
onAdFailedToLoad?: (event: NativeSyntheticEvent<AdFailedToLoadEvent>) => void;
|
|
12
|
+
onAdOpened?: () => void;
|
|
13
|
+
onAdClosed?: () => void;
|
|
14
|
+
onAdClicked?: () => void;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface AdFailedToLoadEvent {
|
|
18
|
+
error: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface HTML5AdRequest {
|
|
22
|
+
isTestMode?: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface HTML5AdViewRef {
|
|
26
|
+
loadAd: (adRequest?: HTML5AdRequest) => void;
|
|
27
|
+
destroy: () => void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface AdgeistContextType {
|
|
2
|
+
isTestEnvironment: boolean;
|
|
3
|
+
isInitialized: boolean;
|
|
4
|
+
initializationError?: Error;
|
|
5
|
+
setAdgeistConsentModal: (value: boolean) => void;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface AdgeistProviderProps {
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
customBidRequestBackendDomain?: string;
|
|
11
|
+
customPackageOrBundleID?: string;
|
|
12
|
+
customAdgeistAppID?: string;
|
|
13
|
+
isTestEnvironment?: boolean;
|
|
14
|
+
onInitializationError?: (error: Error) => void;
|
|
15
|
+
onInitializationSuccess?: () => void;
|
|
16
|
+
}
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
package com.adgeist.implementation
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.Promise
|
|
4
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
|
-
import com.facebook.react.bridge.Arguments
|
|
6
|
-
import com.facebook.react.bridge.WritableMap
|
|
7
|
-
import com.adgeistkit.AdgeistCore
|
|
8
|
-
import com.adgeistkit.FetchCreative
|
|
9
|
-
import com.adgeistkit.CreativeAnalytics
|
|
10
|
-
import com.adgeistkit.CreativeDataModel
|
|
11
|
-
import com.adgeistkit.BidResponseData
|
|
12
|
-
import com.adgeistkit.SeatBid
|
|
13
|
-
import com.adgeistkit.Bid
|
|
14
|
-
import com.adgeistkit.BidExtension
|
|
15
|
-
import com.adgeistkit.UserDetails
|
|
16
|
-
import com.adgeistkit.Event
|
|
17
|
-
import com.facebook.react.bridge.ReadableMap
|
|
18
|
-
|
|
19
|
-
class AdgeistModuleImpl internal constructor(private val context: ReactApplicationContext) {
|
|
20
|
-
|
|
21
|
-
private var adgeistInstance: AdgeistCore? = null
|
|
22
|
-
private var getAd: FetchCreative? = null
|
|
23
|
-
private var postCreativeAnalytic: CreativeAnalytics? = null
|
|
24
|
-
|
|
25
|
-
fun initializeSdk(customDomain: String?, promise: Promise) {
|
|
26
|
-
try {
|
|
27
|
-
adgeistInstance = AdgeistCore.initialize(context.applicationContext, customDomain)
|
|
28
|
-
getAd = adgeistInstance?.getCreative()
|
|
29
|
-
postCreativeAnalytic = adgeistInstance?.postCreativeAnalytics()
|
|
30
|
-
promise.resolve("SDK initialized with domain: ${customDomain ?: "default"}")
|
|
31
|
-
} catch (e: Exception) {
|
|
32
|
-
promise.reject("INIT_FAILED", "SDK initialization failed", e)
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
fun fetchCreative(apiKey: String, origin: String, adSpaceId: String, publisherId: String, isTestEnvironment: Boolean, promise: Promise) {
|
|
37
|
-
getAd?.fetchCreative(apiKey, origin, adSpaceId, publisherId, isTestEnvironment) { adData ->
|
|
38
|
-
if (adData != null) {
|
|
39
|
-
promise.resolve(adData.toWritableMap())
|
|
40
|
-
} else {
|
|
41
|
-
promise.reject("NO_AD", "Ad data not available")
|
|
42
|
-
}
|
|
43
|
-
} ?: promise.reject("NOT_INITIALIZED", "SDK not initialized")
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
fun setUserDetails(userDetailsMap: ReadableMap) {
|
|
48
|
-
val userDetails = UserDetails(
|
|
49
|
-
userId = userDetailsMap.getStringSafe("userId"),
|
|
50
|
-
userName = userDetailsMap.getStringSafe("userName"),
|
|
51
|
-
email = userDetailsMap.getStringSafe("email"),
|
|
52
|
-
phone = userDetailsMap.getStringSafe("phone")
|
|
53
|
-
)
|
|
54
|
-
adgeistInstance?.setUserDetails(userDetails)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
fun logEvent(eventMap: ReadableMap) {
|
|
58
|
-
val eventType = eventMap.getStringSafe("eventType")
|
|
59
|
-
|
|
60
|
-
if (eventType.isNullOrEmpty()) {
|
|
61
|
-
throw IllegalArgumentException("Event must have a non-empty eventType")
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
val props = if (eventMap.hasKey("eventProperties")) eventMap.getMap("eventProperties") else null
|
|
65
|
-
val eventProps = props?.toHashMap() ?: emptyMap<String, Any>()
|
|
66
|
-
|
|
67
|
-
val event = Event(
|
|
68
|
-
eventType = eventType,
|
|
69
|
-
eventProperties = eventProps
|
|
70
|
-
)
|
|
71
|
-
adgeistInstance?.logEvent(event)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
fun getConsentStatus(promise: Promise) {
|
|
75
|
-
try {
|
|
76
|
-
val consent = adgeistInstance?.getConsentStatus() ?: false
|
|
77
|
-
promise.resolve(consent)
|
|
78
|
-
} catch (e: Exception) {
|
|
79
|
-
promise.reject("CONSENT_ERROR", "Failed to get consent status", e)
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
fun updateConsentStatus(consent: Boolean) {
|
|
84
|
-
adgeistInstance?.updateConsentStatus(consent)
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
fun trackImpression(
|
|
88
|
-
campaignId: String,
|
|
89
|
-
adSpaceId: String,
|
|
90
|
-
publisherId: String,
|
|
91
|
-
apiKey: String,
|
|
92
|
-
bidId: String,
|
|
93
|
-
isTestEnvironment: Boolean,
|
|
94
|
-
renderTime: Float,
|
|
95
|
-
promise: Promise
|
|
96
|
-
) {
|
|
97
|
-
postCreativeAnalytic?.trackImpression(
|
|
98
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, renderTime
|
|
99
|
-
)
|
|
100
|
-
promise.resolve("Impression event sent")
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
fun trackView(
|
|
104
|
-
campaignId: String,
|
|
105
|
-
adSpaceId: String,
|
|
106
|
-
publisherId: String,
|
|
107
|
-
apiKey: String,
|
|
108
|
-
bidId: String,
|
|
109
|
-
isTestEnvironment: Boolean,
|
|
110
|
-
viewTime: Float,
|
|
111
|
-
visibilityRatio: Float,
|
|
112
|
-
scrollDepth: Float,
|
|
113
|
-
timeToVisible: Float,
|
|
114
|
-
promise: Promise
|
|
115
|
-
) {
|
|
116
|
-
postCreativeAnalytic?.trackView(
|
|
117
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment,
|
|
118
|
-
viewTime, visibilityRatio, scrollDepth, timeToVisible
|
|
119
|
-
)
|
|
120
|
-
promise.resolve("View event sent")
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
fun trackTotalView(
|
|
124
|
-
campaignId: String,
|
|
125
|
-
adSpaceId: String,
|
|
126
|
-
publisherId: String,
|
|
127
|
-
apiKey: String,
|
|
128
|
-
bidId: String,
|
|
129
|
-
isTestEnvironment: Boolean,
|
|
130
|
-
totalViewTime: Float,
|
|
131
|
-
visibilityRatio: Float,
|
|
132
|
-
promise: Promise
|
|
133
|
-
) {
|
|
134
|
-
postCreativeAnalytic?.trackTotalView(
|
|
135
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment,
|
|
136
|
-
totalViewTime, visibilityRatio
|
|
137
|
-
)
|
|
138
|
-
promise.resolve("Total view event sent")
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
fun trackClick(
|
|
142
|
-
campaignId: String,
|
|
143
|
-
adSpaceId: String,
|
|
144
|
-
publisherId: String,
|
|
145
|
-
apiKey: String,
|
|
146
|
-
bidId: String,
|
|
147
|
-
isTestEnvironment: Boolean,
|
|
148
|
-
promise: Promise
|
|
149
|
-
) {
|
|
150
|
-
postCreativeAnalytic?.trackClick(
|
|
151
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment
|
|
152
|
-
)
|
|
153
|
-
promise.resolve("Click event sent")
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
fun trackVideoPlayback(
|
|
157
|
-
campaignId: String,
|
|
158
|
-
adSpaceId: String,
|
|
159
|
-
publisherId: String,
|
|
160
|
-
apiKey: String,
|
|
161
|
-
bidId: String,
|
|
162
|
-
isTestEnvironment: Boolean,
|
|
163
|
-
totalPlaybackTime: Float,
|
|
164
|
-
promise: Promise
|
|
165
|
-
) {
|
|
166
|
-
postCreativeAnalytic?.trackVideoPlayback(
|
|
167
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, totalPlaybackTime
|
|
168
|
-
)
|
|
169
|
-
promise.resolve("Video playback event sent")
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
fun trackVideoQuartile(
|
|
173
|
-
campaignId: String,
|
|
174
|
-
adSpaceId: String,
|
|
175
|
-
publisherId: String,
|
|
176
|
-
apiKey: String,
|
|
177
|
-
bidId: String,
|
|
178
|
-
isTestEnvironment: Boolean,
|
|
179
|
-
quartile: String,
|
|
180
|
-
promise: Promise
|
|
181
|
-
) {
|
|
182
|
-
postCreativeAnalytic?.trackVideoQuartile(
|
|
183
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, quartile
|
|
184
|
-
)
|
|
185
|
-
promise.resolve("Video quartile event sent")
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
companion object {
|
|
189
|
-
const val NAME = "Adgeist"
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
fun ReadableMap.getStringSafe(key: String): String? =
|
|
194
|
-
if (this.hasKey(key) && !this.isNull(key)) this.getString(key) else null
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
// Extension function to convert CreativeDataModel to WritableMap
|
|
198
|
-
fun CreativeDataModel.toWritableMap(): WritableMap {
|
|
199
|
-
val map = Arguments.createMap()
|
|
200
|
-
|
|
201
|
-
map.putBoolean("success", this.success)
|
|
202
|
-
map.putString("message", this.message)
|
|
203
|
-
|
|
204
|
-
// Handle null data - store in local variable for smart casting
|
|
205
|
-
val dataValue = this.data
|
|
206
|
-
if (dataValue != null) {
|
|
207
|
-
val dataMap = Arguments.createMap()
|
|
208
|
-
dataMap.putString("id", dataValue.id)
|
|
209
|
-
dataMap.putString("bidId", dataValue.bidId)
|
|
210
|
-
dataMap.putString("cur", dataValue.cur)
|
|
211
|
-
|
|
212
|
-
// Handle null seatBid list - store in local variable
|
|
213
|
-
val seatBidArray = Arguments.createArray()
|
|
214
|
-
val seatBidList = dataValue.seatBid
|
|
215
|
-
if (seatBidList != null) {
|
|
216
|
-
for (seatBid in seatBidList) {
|
|
217
|
-
val seatBidMap = Arguments.createMap()
|
|
218
|
-
seatBidMap.putString("bidId", seatBid.bidId)
|
|
219
|
-
|
|
220
|
-
// Handle null bid list - store in local variable
|
|
221
|
-
val bidArray = Arguments.createArray()
|
|
222
|
-
val bidList = seatBid.bid
|
|
223
|
-
if (bidList != null) {
|
|
224
|
-
for (bid in bidList) {
|
|
225
|
-
val bidMap = Arguments.createMap()
|
|
226
|
-
bidMap.putString("id", bid.id)
|
|
227
|
-
bidMap.putString("impId", bid.impId)
|
|
228
|
-
bidMap.putDouble("price", bid.price)
|
|
229
|
-
|
|
230
|
-
// Handle extension
|
|
231
|
-
val extMap = Arguments.createMap()
|
|
232
|
-
extMap.putString("creativeUrl", bid.ext.creativeUrl)
|
|
233
|
-
extMap.putString("ctaUrl", bid.ext.ctaUrl)
|
|
234
|
-
extMap.putString("creativeTitle", bid.ext.creativeTitle)
|
|
235
|
-
extMap.putString("creativeDescription", bid.ext.creativeDescription)
|
|
236
|
-
|
|
237
|
-
bidMap.putMap("ext", extMap)
|
|
238
|
-
bidArray.pushMap(bidMap)
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
seatBidMap.putArray("bid", bidArray)
|
|
242
|
-
seatBidArray.pushMap(seatBidMap)
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
dataMap.putArray("seatBid", seatBidArray)
|
|
246
|
-
map.putMap("data", dataMap)
|
|
247
|
-
} else {
|
|
248
|
-
map.putNull("data")
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
return map
|
|
252
|
-
}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
package com.adgeist
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.Promise
|
|
4
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
|
-
import com.adgeist.implementation.AdgeistModuleImpl
|
|
6
|
-
import com.adgeistkit.UserDetails
|
|
7
|
-
import com.adgeistkit.Event
|
|
8
|
-
import com.facebook.react.bridge.ReadableMap
|
|
9
|
-
|
|
10
|
-
class AdgeistModule internal constructor(reactContext: ReactApplicationContext) :
|
|
11
|
-
NativeAdgeistSpec(reactContext) {
|
|
12
|
-
|
|
13
|
-
private var implementation: AdgeistModuleImpl = AdgeistModuleImpl(reactContext)
|
|
14
|
-
|
|
15
|
-
override fun getName(): String = AdgeistModuleImpl.NAME
|
|
16
|
-
|
|
17
|
-
override fun initializeSdk(customDomain: String, promise: Promise) {
|
|
18
|
-
implementation.initializeSdk(customDomain, promise)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
override fun fetchCreative(apiKey: String, origin: String, adSpaceId: String, publisherId: String, isTestEnvironment: Boolean, promise: Promise) {
|
|
22
|
-
implementation.fetchCreative(apiKey, origin, adSpaceId, publisherId, isTestEnvironment, promise)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
override fun trackImpression(
|
|
26
|
-
campaignId: String,
|
|
27
|
-
adSpaceId: String,
|
|
28
|
-
publisherId: String,
|
|
29
|
-
apiKey: String,
|
|
30
|
-
bidId: String,
|
|
31
|
-
isTestEnvironment: Boolean,
|
|
32
|
-
renderTime: Double,
|
|
33
|
-
promise: Promise
|
|
34
|
-
) {
|
|
35
|
-
implementation.trackImpression(
|
|
36
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, renderTime.toFloat(), promise
|
|
37
|
-
)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
override fun trackView(
|
|
41
|
-
campaignId: String,
|
|
42
|
-
adSpaceId: String,
|
|
43
|
-
publisherId: String,
|
|
44
|
-
apiKey: String,
|
|
45
|
-
bidId: String,
|
|
46
|
-
isTestEnvironment: Boolean,
|
|
47
|
-
viewTime: Double,
|
|
48
|
-
visibilityRatio: Double,
|
|
49
|
-
scrollDepth: Double,
|
|
50
|
-
timeToVisible: Double,
|
|
51
|
-
promise: Promise
|
|
52
|
-
) {
|
|
53
|
-
implementation.trackView(
|
|
54
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment,
|
|
55
|
-
viewTime.toFloat(), visibilityRatio.toFloat(), scrollDepth.toFloat(), timeToVisible.toFloat(), promise
|
|
56
|
-
)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
override fun trackTotalView(
|
|
60
|
-
campaignId: String,
|
|
61
|
-
adSpaceId: String,
|
|
62
|
-
publisherId: String,
|
|
63
|
-
apiKey: String,
|
|
64
|
-
bidId: String,
|
|
65
|
-
isTestEnvironment: Boolean,
|
|
66
|
-
totalViewTime: Double,
|
|
67
|
-
visibilityRatio: Double,
|
|
68
|
-
promise: Promise
|
|
69
|
-
) {
|
|
70
|
-
implementation.trackTotalView(
|
|
71
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment,
|
|
72
|
-
totalViewTime.toFloat(), visibilityRatio.toFloat(), promise
|
|
73
|
-
)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
override fun trackClick(
|
|
77
|
-
campaignId: String,
|
|
78
|
-
adSpaceId: String,
|
|
79
|
-
publisherId: String,
|
|
80
|
-
apiKey: String,
|
|
81
|
-
bidId: String,
|
|
82
|
-
isTestEnvironment: Boolean,
|
|
83
|
-
promise: Promise
|
|
84
|
-
) {
|
|
85
|
-
implementation.trackClick(
|
|
86
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, promise
|
|
87
|
-
)
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
override fun trackVideoPlayback(
|
|
91
|
-
campaignId: String,
|
|
92
|
-
adSpaceId: String,
|
|
93
|
-
publisherId: String,
|
|
94
|
-
apiKey: String,
|
|
95
|
-
bidId: String,
|
|
96
|
-
isTestEnvironment: Boolean,
|
|
97
|
-
totalPlaybackTime: Double,
|
|
98
|
-
promise: Promise
|
|
99
|
-
) {
|
|
100
|
-
implementation.trackVideoPlayback(
|
|
101
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, totalPlaybackTime.toFloat(), promise
|
|
102
|
-
)
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
override fun trackVideoQuartile(
|
|
106
|
-
campaignId: String,
|
|
107
|
-
adSpaceId: String,
|
|
108
|
-
publisherId: String,
|
|
109
|
-
apiKey: String,
|
|
110
|
-
bidId: String,
|
|
111
|
-
isTestEnvironment: Boolean,
|
|
112
|
-
quartile: String,
|
|
113
|
-
promise: Promise
|
|
114
|
-
) {
|
|
115
|
-
implementation.trackVideoQuartile(
|
|
116
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, quartile, promise
|
|
117
|
-
)
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
override fun setUserDetails(userDetails: ReadableMap) {
|
|
121
|
-
implementation.setUserDetails(userDetails)
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
override fun logEvent(event: ReadableMap) {
|
|
125
|
-
implementation.logEvent(event)
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
override fun getConsentStatus(promise: Promise) {
|
|
129
|
-
implementation.getConsentStatus(promise)
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
override fun updateConsentStatus(consent: Boolean) {
|
|
133
|
-
implementation.updateConsentStatus(consent)
|
|
134
|
-
}
|
|
135
|
-
}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
package com.adgeist
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.bridge.Promise
|
|
4
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
|
-
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
6
|
-
import com.facebook.react.bridge.ReactMethod
|
|
7
|
-
import com.adgeist.implementation.AdgeistModuleImpl
|
|
8
|
-
import com.facebook.react.bridge.ReadableMap
|
|
9
|
-
|
|
10
|
-
class AdgeistModule internal constructor(reactContext: ReactApplicationContext) :
|
|
11
|
-
ReactContextBaseJavaModule(reactContext) {
|
|
12
|
-
|
|
13
|
-
private var implementation: AdgeistModuleImpl = AdgeistModuleImpl(reactContext)
|
|
14
|
-
|
|
15
|
-
override fun getName(): String = AdgeistModuleImpl.NAME
|
|
16
|
-
|
|
17
|
-
@ReactMethod
|
|
18
|
-
fun initializeSdk(customDomain: String, promise: Promise) {
|
|
19
|
-
implementation.initializeSdk(customDomain, promise)
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
@ReactMethod
|
|
23
|
-
fun fetchCreative(apiKey: String, origin: String, adSpaceId: String, publisherId: String, isTestEnvironment: Boolean, promise: Promise) {
|
|
24
|
-
implementation.fetchCreative(apiKey, origin, adSpaceId, publisherId, isTestEnvironment, promise)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
@ReactMethod
|
|
29
|
-
fun setUserDetails(userDetails: ReadableMap) {
|
|
30
|
-
implementation.setUserDetails(userDetails)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@ReactMethod
|
|
34
|
-
fun logEvent(event: ReadableMap) {
|
|
35
|
-
implementation.logEvent(event)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
@ReactMethod
|
|
39
|
-
fun getConsentStatus(promise: Promise) {
|
|
40
|
-
implementation.getConsentStatus(promise)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
@ReactMethod
|
|
44
|
-
fun updateConsentStatus(consent: Boolean) {
|
|
45
|
-
implementation.updateConsentStatus(consent)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
@ReactMethod
|
|
49
|
-
fun trackImpression(
|
|
50
|
-
campaignId: String,
|
|
51
|
-
adSpaceId: String,
|
|
52
|
-
publisherId: String,
|
|
53
|
-
apiKey: String,
|
|
54
|
-
bidId: String,
|
|
55
|
-
isTestEnvironment: Boolean,
|
|
56
|
-
renderTime: Double,
|
|
57
|
-
promise: Promise
|
|
58
|
-
) {
|
|
59
|
-
implementation.trackImpression(
|
|
60
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, renderTime.toFloat(), promise
|
|
61
|
-
)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
@ReactMethod
|
|
65
|
-
fun trackView(
|
|
66
|
-
campaignId: String,
|
|
67
|
-
adSpaceId: String,
|
|
68
|
-
publisherId: String,
|
|
69
|
-
apiKey: String,
|
|
70
|
-
bidId: String,
|
|
71
|
-
isTestEnvironment: Boolean,
|
|
72
|
-
viewTime: Double,
|
|
73
|
-
visibilityRatio: Double,
|
|
74
|
-
scrollDepth: Double,
|
|
75
|
-
timeToVisible: Double,
|
|
76
|
-
promise: Promise
|
|
77
|
-
) {
|
|
78
|
-
implementation.trackView(
|
|
79
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment,
|
|
80
|
-
viewTime.toFloat(), visibilityRatio.toFloat(), scrollDepth.toFloat(), timeToVisible.toFloat(), promise
|
|
81
|
-
)
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
@ReactMethod
|
|
85
|
-
fun trackTotalView(
|
|
86
|
-
campaignId: String,
|
|
87
|
-
adSpaceId: String,
|
|
88
|
-
publisherId: String,
|
|
89
|
-
apiKey: String,
|
|
90
|
-
bidId: String,
|
|
91
|
-
isTestEnvironment: Boolean,
|
|
92
|
-
totalViewTime: Double,
|
|
93
|
-
visibilityRatio: Double,
|
|
94
|
-
promise: Promise
|
|
95
|
-
) {
|
|
96
|
-
implementation.trackTotalView(
|
|
97
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment,
|
|
98
|
-
totalViewTime.toFloat(), visibilityRatio.toFloat(), promise
|
|
99
|
-
)
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
@ReactMethod
|
|
103
|
-
fun trackClick(
|
|
104
|
-
campaignId: String,
|
|
105
|
-
adSpaceId: String,
|
|
106
|
-
publisherId: String,
|
|
107
|
-
apiKey: String,
|
|
108
|
-
bidId: String,
|
|
109
|
-
isTestEnvironment: Boolean,
|
|
110
|
-
promise: Promise
|
|
111
|
-
) {
|
|
112
|
-
implementation.trackClick(
|
|
113
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, promise
|
|
114
|
-
)
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
@ReactMethod
|
|
118
|
-
fun trackVideoPlayback(
|
|
119
|
-
campaignId: String,
|
|
120
|
-
adSpaceId: String,
|
|
121
|
-
publisherId: String,
|
|
122
|
-
apiKey: String,
|
|
123
|
-
bidId: String,
|
|
124
|
-
isTestEnvironment: Boolean,
|
|
125
|
-
totalPlaybackTime: Double,
|
|
126
|
-
promise: Promise
|
|
127
|
-
) {
|
|
128
|
-
implementation.trackVideoPlayback(
|
|
129
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, totalPlaybackTime.toFloat(), promise
|
|
130
|
-
)
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
@ReactMethod
|
|
134
|
-
fun trackVideoQuartile(
|
|
135
|
-
campaignId: String,
|
|
136
|
-
adSpaceId: String,
|
|
137
|
-
publisherId: String,
|
|
138
|
-
apiKey: String,
|
|
139
|
-
bidId: String,
|
|
140
|
-
isTestEnvironment: Boolean,
|
|
141
|
-
quartile: String,
|
|
142
|
-
promise: Promise
|
|
143
|
-
) {
|
|
144
|
-
implementation.trackVideoQuartile(
|
|
145
|
-
campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, quartile, promise
|
|
146
|
-
)
|
|
147
|
-
}
|
|
148
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
#import "React/RCTBridgeModule.h"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAdgeist.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAgGlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useContext","useEffect","useState","useCallback","Adgeist","ConsentModal","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","AdgeistContext","publisherId","apiKey","domain","isTestEnvironment","isInitialized","setAdgeistConsentModal","AdgeistProvider","children","customAdgeistApiOrigin","onInitializationError","onInitializationSuccess","setIsInitialized","initializationError","setInitializationError","adgeistConsentModal","initializeAdgeist","undefined","initializeSdk","error","err","Error","Provider","value","useAdgeistContext","context"],"sourceRoot":"../../../src","sources":["components/AdgeistProvider.tsx"],"mappings":"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","ignoreList":[]}
|