@thealteroffice/react-native-adgeist 0.0.13 → 0.0.15

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.
Files changed (25) hide show
  1. package/README.md +378 -127
  2. package/ios/generated/RNAdgeistSpec/RNAdgeistSpec-generated.mm +81 -0
  3. package/ios/generated/RNAdgeistSpec/RNAdgeistSpec.h +86 -0
  4. package/{android/app/build/generated/source/codegen/jni/react/renderer/components/RNAdgeistSpec → ios/generated}/RNAdgeistSpecJSI.h +1 -118
  5. package/lib/module/cdpclient/index.js +60 -4
  6. package/lib/module/cdpclient/index.js.map +1 -1
  7. package/lib/module/components/AdgeistProvider.js +57 -17
  8. package/lib/module/components/AdgeistProvider.js.map +1 -1
  9. package/lib/module/components/BannerAd.js +131 -58
  10. package/lib/module/components/BannerAd.js.map +1 -1
  11. package/lib/typescript/src/cdpclient/index.d.ts +20 -0
  12. package/lib/typescript/src/cdpclient/index.d.ts.map +1 -1
  13. package/lib/typescript/src/components/AdgeistProvider.d.ts +32 -3
  14. package/lib/typescript/src/components/AdgeistProvider.d.ts.map +1 -1
  15. package/lib/typescript/src/components/BannerAd.d.ts +56 -4
  16. package/lib/typescript/src/components/BannerAd.d.ts.map +1 -1
  17. package/package.json +1 -1
  18. package/src/cdpclient/index.ts +71 -8
  19. package/src/components/AdgeistProvider.tsx +77 -23
  20. package/src/components/BannerAd.tsx +176 -81
  21. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeAdgeistSpec.java +0 -63
  22. package/android/app/build/generated/source/codegen/jni/CMakeLists.txt +0 -36
  23. package/android/app/build/generated/source/codegen/jni/RNAdgeistSpec-generated.cpp +0 -68
  24. package/android/app/build/generated/source/codegen/jni/RNAdgeistSpec.h +0 -31
  25. /package/{android/app/build/generated/source/codegen/jni/react/renderer/components/RNAdgeistSpec → ios/generated}/RNAdgeistSpecJSI-generated.cpp +0 -0
@@ -1,20 +1,49 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect, useState } from 'react';
3
+ /**
4
+ * @module BannerAd
5
+ * @description A React Native component for displaying banner and video ads with robust error handling and analytics.
6
+ */
7
+
8
+ import React, { useCallback, useEffect, useState } from 'react';
4
9
  import { Image, Linking, StyleSheet, Text, View, TouchableWithoutFeedback, ActivityIndicator } from 'react-native';
10
+ import Video from 'react-native-video';
5
11
  import Adgeist from "../NativeAdgeist.js";
6
12
  import { useAdgeistContext } from "./AdgeistProvider.js";
7
- import Video from 'react-native-video';
13
+
14
+ /**
15
+ * Interface for ad data structure
16
+ */
17
+
18
+ /**
19
+ * Interface for seat bid data
20
+ */
21
+
22
+ /**
23
+ * Interface for individual bid
24
+ */
25
+
26
+ /**
27
+ * Interface for bid extension data
28
+ */
29
+
30
+ /**
31
+ * Props for the BannerAd component
32
+ */
8
33
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
34
  export const BannerAd = ({
10
35
  dataAdSlot,
11
36
  dataSlotType = 'banner',
12
37
  width = 0,
13
38
  height = 0,
14
- isResponsive = false
39
+ isResponsive = false,
15
40
  // responsiveType = 'SQUARE',
41
+ onAdLoadError,
42
+ onAdLoadSuccess
16
43
  }) => {
17
44
  const [adData, setAdData] = useState(null);
45
+ const [isMuted, setIsMuted] = useState(false);
46
+ const [error, setError] = useState(null);
18
47
  const [isLoading, setIsLoading] = useState(false);
19
48
  const {
20
49
  isInitialized,
@@ -24,30 +53,50 @@ export const BannerAd = ({
24
53
  isTestEnvironment
25
54
  } = useAdgeistContext();
26
55
  const creativeData = adData?.seatBid?.[0]?.bid?.[0]?.ext;
27
- useEffect(() => {
28
- (async () => {
56
+
57
+ /**
58
+ * Fetches ad creative and sends impression analytics
59
+ */
60
+ const fetchAd = useCallback(async () => {
61
+ if (!isInitialized) return;
62
+ try {
63
+ setIsLoading(true);
64
+ setError(null);
65
+ const response = await Adgeist.fetchCreative(apiKey, domain, dataAdSlot, publisherId, isTestEnvironment);
66
+ const creative = response;
67
+ setAdData(creative.data);
68
+ onAdLoadSuccess?.(creative.data);
69
+ if (creative.data.seatBid.length > 0) {
70
+ await Adgeist.sendCreativeAnalytic(creative.data.seatBid?.[0]?.bid?.[0]?.id || '', dataAdSlot, publisherId, 'IMPRESSION', domain, apiKey, creative.data.id, isTestEnvironment);
71
+ }
72
+ } catch (err) {
73
+ const error = err instanceof Error ? err : new Error('Ad load failed');
74
+ setError(error);
75
+ onAdLoadError?.(error);
76
+ console.error('Ad load failed:', error);
77
+ } finally {
78
+ setIsLoading(false);
79
+ }
80
+ }, [isInitialized, publisherId, dataAdSlot, apiKey, domain, isTestEnvironment, onAdLoadError, onAdLoadSuccess]);
81
+
82
+ /**
83
+ * Handles ad click and sends click analytics
84
+ */
85
+ const handleClick = useCallback(async () => {
86
+ if (adData && adData.seatBid.length > 0) {
87
+ const bidId = adData.seatBid[0]?.bid[0]?.id;
88
+ if (!bidId) return;
29
89
  try {
30
- if (isInitialized) {
31
- setIsLoading(true);
32
- const response = await Adgeist.fetchCreative(apiKey, domain, dataAdSlot, publisherId, isTestEnvironment);
33
- const creative = response;
34
- setAdData(creative.data);
35
- setIsLoading(false);
36
- if (creative.data.seatBid.length > 0) {
37
- await Adgeist.sendCreativeAnalytic(creative.data.seatBid?.[0]?.bid?.[0]?.id || '', dataAdSlot, publisherId, 'IMPRESSION', domain, apiKey, creative.data.id, isTestEnvironment);
38
- }
39
- }
40
- } catch (error) {
41
- console.error('Ad load failed:', error);
90
+ await Adgeist.sendCreativeAnalytic(bidId, dataAdSlot, publisherId, 'CLICK', domain, apiKey, adData.id, isTestEnvironment);
91
+ await Linking.openURL(creativeData.ctaUrl);
92
+ } catch (err) {
93
+ console.error('Failed to handle ad click:', err);
42
94
  }
43
- })();
44
- }, [isInitialized, publisherId, dataAdSlot, apiKey, domain, isTestEnvironment]);
45
- const handleClick = async () => {
46
- if (adData && adData?.seatBid.length > 0) {
47
- await Adgeist.sendCreativeAnalytic(adData?.seatBid?.[0]?.bid?.[0]?.id || '', dataAdSlot, publisherId, 'CLICK', domain, apiKey, adData.id, isTestEnvironment);
48
- Linking.openURL(creativeData.ctaUrl).catch(err => console.error('Failed to open URL:', err));
49
95
  }
50
- };
96
+ }, [adData, dataAdSlot, publisherId, domain, apiKey, isTestEnvironment, creativeData]);
97
+ useEffect(() => {
98
+ fetchAd();
99
+ }, [fetchAd]);
51
100
  if (isLoading) {
52
101
  return /*#__PURE__*/_jsx(View, {
53
102
  style: [styles.loadingOverlayContainer, !isResponsive && {
@@ -60,7 +109,7 @@ export const BannerAd = ({
60
109
  })
61
110
  });
62
111
  }
63
- if (!creativeData?.creativeUrl) return null;
112
+ if (!creativeData?.creativeUrl || error) return null;
64
113
  return /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
65
114
  accessible: true,
66
115
  accessibilityLabel: "Ad Banner",
@@ -74,23 +123,37 @@ export const BannerAd = ({
74
123
  height: height
75
124
  }],
76
125
  children: [dataSlotType === 'banner' ? /*#__PURE__*/_jsx(Image, {
77
- style: [styles.creative, {
78
- width: '100%',
79
- height: '70%'
80
- }],
81
- source: {
82
- uri: creativeData.creativeUrl
83
- }
84
- }) : /*#__PURE__*/_jsx(Video, {
126
+ style: styles.creative,
85
127
  source: {
86
128
  uri: creativeData.creativeUrl
87
129
  },
130
+ accessibilityLabel: "Ad Creative",
88
131
  resizeMode: "contain",
89
- style: {
90
- width: '100%',
91
- height: '70%'
92
- },
93
- repeat: true
132
+ onError: e => console.error('Image load error:', e.nativeEvent.error)
133
+ }) : /*#__PURE__*/_jsxs(View, {
134
+ style: styles.videoCreative,
135
+ children: [/*#__PURE__*/_jsx(Video, {
136
+ source: {
137
+ uri: creativeData.creativeUrl
138
+ },
139
+ resizeMode: "contain",
140
+ style: {
141
+ width: '100%',
142
+ height: '100%'
143
+ },
144
+ repeat: true,
145
+ muted: isMuted,
146
+ onError: e => console.error('Video load error:', e)
147
+ }), /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
148
+ onPress: () => setIsMuted(!isMuted),
149
+ children: /*#__PURE__*/_jsx(Image, {
150
+ style: styles.soundIcon,
151
+ source: {
152
+ uri: isMuted ? 'https://d2cfeg6k9cklz9.cloudfront.net/ad-icons/Muted.png' : 'https://d2cfeg6k9cklz9.cloudfront.net/ad-icons/Unmuted.png'
153
+ },
154
+ accessibilityLabel: isMuted ? 'Unmute video' : 'Mute video'
155
+ })
156
+ })]
94
157
  }), /*#__PURE__*/_jsxs(View, {
95
158
  style: styles.adContent,
96
159
  children: [/*#__PURE__*/_jsxs(View, {
@@ -112,16 +175,13 @@ export const BannerAd = ({
112
175
  children: creativeData?.creativeBrandName || 'Brand Name'
113
176
  })]
114
177
  }), /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
115
- onPress: () => {
116
- handleClick();
117
- },
118
- accessible: true,
119
- accessibilityLabel: "Visit Site Button",
178
+ onPress: handleClick,
120
179
  children: /*#__PURE__*/_jsx(Image, {
121
- style: [styles.linkButton],
180
+ style: styles.linkButton,
122
181
  source: {
123
182
  uri: 'https://d2cfeg6k9cklz9.cloudfront.net/onboarding-icons/Button.png'
124
- }
183
+ },
184
+ accessibilityLabel: "Visit Advertiser Site"
125
185
  })
126
186
  })]
127
187
  })]
@@ -130,7 +190,7 @@ export const BannerAd = ({
130
190
  };
131
191
  const styles = StyleSheet.create({
132
192
  adContainer: {
133
- backgroundColor: 'white',
193
+ backgroundColor: '#FFFFFF',
134
194
  borderRadius: 5
135
195
  },
136
196
  loadingOverlayContainer: {
@@ -140,13 +200,27 @@ const styles = StyleSheet.create({
140
200
  creative: {
141
201
  resizeMode: 'contain',
142
202
  borderTopLeftRadius: 5,
143
- backgroundColor: 'white',
144
- borderTopRightRadius: 5
203
+ backgroundColor: '#FFFFFF',
204
+ borderTopRightRadius: 5,
205
+ width: '100%',
206
+ height: '70%'
207
+ },
208
+ videoCreative: {
209
+ position: 'relative',
210
+ width: '100%',
211
+ height: '70%'
212
+ },
213
+ soundIcon: {
214
+ position: 'absolute',
215
+ bottom: 10,
216
+ right: 10,
217
+ width: 30,
218
+ height: 30
145
219
  },
146
220
  adContent: {
147
221
  width: '100%',
148
222
  height: '30%',
149
- backgroundColor: 'white',
223
+ backgroundColor: '#FFFFFF',
150
224
  flexDirection: 'row',
151
225
  justifyContent: 'space-between',
152
226
  paddingVertical: 10,
@@ -159,20 +233,19 @@ const styles = StyleSheet.create({
159
233
  width: '80%'
160
234
  },
161
235
  title: {
162
- color: 'black',
236
+ color: '#1A1A1A',
163
237
  fontSize: 18,
164
- fontWeight: 'bold'
238
+ fontWeight: '600'
165
239
  },
166
240
  description: {
167
- color: 'black',
168
- fontSize: 16
241
+ color: '#4A4A4A',
242
+ fontSize: 16,
243
+ marginBottom: 4
169
244
  },
170
245
  brandName: {
171
- color: 'black',
172
- fontSize: 16,
173
- opacity: 0.6,
174
- marginTop: 5,
175
- fontWeight: 'semibold'
246
+ color: '#6B7280',
247
+ fontSize: 14,
248
+ textTransform: 'uppercase'
176
249
  },
177
250
  linkButton: {
178
251
  width: 40,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","Image","Linking","StyleSheet","Text","View","TouchableWithoutFeedback","ActivityIndicator","Adgeist","useAdgeistContext","Video","jsx","_jsx","jsxs","_jsxs","BannerAd","dataAdSlot","dataSlotType","width","height","isResponsive","adData","setAdData","isLoading","setIsLoading","isInitialized","publisherId","apiKey","domain","isTestEnvironment","creativeData","seatBid","bid","ext","response","fetchCreative","creative","data","length","sendCreativeAnalytic","id","error","console","handleClick","openURL","ctaUrl","catch","err","style","styles","loadingOverlayContainer","children","size","color","creativeUrl","accessible","accessibilityLabel","adContainer","source","uri","resizeMode","repeat","adContent","contentContainer","title","numberOfLines","ellipsizeMode","creativeTitle","description","creativeDescription","brandName","creativeBrandName","onPress","linkButton","create","backgroundColor","borderRadius","alignItems","justifyContent","borderTopLeftRadius","borderTopRightRadius","flexDirection","paddingVertical","paddingHorizontal","borderBottomLeftRadius","borderBottomRightRadius","fontSize","fontWeight","opacity","marginTop"],"sourceRoot":"../../../src","sources":["components/BannerAd.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SACEC,KAAK,EACLC,OAAO,EACPC,UAAU,EACVC,IAAI,EACJC,IAAI,EACJC,wBAAwB,EACxBC,iBAAiB,QACZ,cAAc;AACrB,OAAOC,OAAO,MAAM,qBAAkB;AACtC,SAASC,iBAAiB,QAAQ,sBAAmB;AACrD,OAAOC,KAAK,MAAM,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAqCvC,OAAO,MAAMC,QAAiC,GAAGA,CAAC;EAChDC,UAAU;EACVC,YAAY,GAAG,QAAQ;EACvBC,KAAK,GAAG,CAAC;EACTC,MAAM,GAAG,CAAC;EACVC,YAAY,GAAG;EACf;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGtB,QAAQ,CAAgB,IAAI,CAAC;EACzD,MAAM,CAACuB,SAAS,EAAEC,YAAY,CAAC,GAAGxB,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM;IAAEyB,aAAa;IAAEC,WAAW;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAkB,CAAC,GACrEpB,iBAAiB,CAAC,CAAC;EAErB,MAAMqB,YAAY,GAAGT,MAAM,EAAEU,OAAO,GAAG,CAAC,CAAC,EAAEC,GAAG,GAAG,CAAC,CAAC,EAAEC,GAAmB;EAExElC,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAI;QACF,IAAI0B,aAAa,EAAE;UACjBD,YAAY,CAAC,IAAI,CAAC;UAClB,MAAMU,QAAgB,GAAG,MAAM1B,OAAO,CAAC2B,aAAa,CAClDR,MAAM,EACNC,MAAM,EACNZ,UAAU,EACVU,WAAW,EACXG,iBACF,CAAC;UAED,MAAMO,QAA0B,GAAGF,QAA4B;UAC/DZ,SAAS,CAACc,QAAQ,CAACC,IAAI,CAAC;UACxBb,YAAY,CAAC,KAAK,CAAC;UAEnB,IAAIY,QAAQ,CAACC,IAAI,CAACN,OAAO,CAACO,MAAM,GAAG,CAAC,EAAE;YACpC,MAAM9B,OAAO,CAAC+B,oBAAoB,CAChCH,QAAQ,CAACC,IAAI,CAACN,OAAO,GAAG,CAAC,CAAC,EAAEC,GAAG,GAAG,CAAC,CAAC,EAAEQ,EAAE,IAAI,EAAE,EAC9CxB,UAAU,EACVU,WAAW,EACX,YAAY,EACZE,MAAM,EACND,MAAM,EACNS,QAAQ,CAACC,IAAI,CAACG,EAAE,EAChBX,iBACF,CAAC;UACH;QACF;MACF,CAAC,CAAC,OAAOY,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,iBAAiB,EAAEA,KAAK,CAAC;MACzC;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CACDhB,aAAa,EACbC,WAAW,EACXV,UAAU,EACVW,MAAM,EACNC,MAAM,EACNC,iBAAiB,CAClB,CAAC;EAEF,MAAMc,WAAW,GAAG,MAAAA,CAAA,KAAY;IAC9B,IAAItB,MAAM,IAAIA,MAAM,EAAEU,OAAO,CAACO,MAAM,GAAG,CAAC,EAAE;MACxC,MAAM9B,OAAO,CAAC+B,oBAAoB,CAChClB,MAAM,EAAEU,OAAO,GAAG,CAAC,CAAC,EAAEC,GAAG,GAAG,CAAC,CAAC,EAAEQ,EAAE,IAAI,EAAE,EACxCxB,UAAU,EACVU,WAAW,EACX,OAAO,EACPE,MAAM,EACND,MAAM,EACNN,MAAM,CAACmB,EAAE,EACTX,iBACF,CAAC;MACD3B,OAAO,CAAC0C,OAAO,CAACd,YAAY,CAACe,MAAM,CAAC,CAACC,KAAK,CAAEC,GAAG,IAC7CL,OAAO,CAACD,KAAK,CAAC,qBAAqB,EAAEM,GAAG,CAC1C,CAAC;IACH;EACF,CAAC;EAED,IAAIxB,SAAS,EAAE;IACb,oBACEX,IAAA,CAACP,IAAI;MACH2C,KAAK,EAAE,CACLC,MAAM,CAACC,uBAAuB,EAC9B,CAAC9B,YAAY,IAAI;QAAEF,KAAK,EAAEA,KAAK;QAAEC,MAAM,EAAEA;MAAO,CAAC,CACjD;MAAAgC,QAAA,eAEFvC,IAAA,CAACL,iBAAiB;QAAC6C,IAAI,EAAC,OAAO;QAACC,KAAK,EAAC;MAAS,CAAE;IAAC,CAC9C,CAAC;EAEX;EAEA,IAAI,CAACvB,YAAY,EAAEwB,WAAW,EAAE,OAAO,IAAI;EAE3C,oBACE1C,IAAA,CAACN,wBAAwB;IACvBiD,UAAU;IACVC,kBAAkB,EAAC,WAAW;IAC9BR,KAAK,EAAE;MAAE9B,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE;IAAO,CAAE;IAAAgC,QAAA,eAEzCrC,KAAA,CAACT,IAAI;MACH2C,KAAK,EAAE,CACLC,MAAM,CAACQ,WAAW,EAClB,CAACrC,YAAY,IAAI;QAAEF,KAAK,EAAEA,KAAK;QAAEC,MAAM,EAAEA;MAAO,CAAC,CACjD;MAAAgC,QAAA,GAEDlC,YAAY,KAAK,QAAQ,gBACxBL,IAAA,CAACX,KAAK;QACJ+C,KAAK,EAAE,CAACC,MAAM,CAACb,QAAQ,EAAE;UAAElB,KAAK,EAAE,MAAM;UAAEC,MAAM,EAAE;QAAM,CAAC,CAAE;QAC3DuC,MAAM,EAAE;UAAEC,GAAG,EAAE7B,YAAY,CAACwB;QAAY;MAAE,CAC3C,CAAC,gBAEF1C,IAAA,CAACF,KAAK;QACJgD,MAAM,EAAE;UAAEC,GAAG,EAAE7B,YAAY,CAACwB;QAAY,CAAE;QAC1CM,UAAU,EAAC,SAAS;QACpBZ,KAAK,EAAE;UAAE9B,KAAK,EAAE,MAAM;UAAEC,MAAM,EAAE;QAAM,CAAE;QACxC0C,MAAM,EAAE;MAAK,CACd,CACF,eAED/C,KAAA,CAACT,IAAI;QAAC2C,KAAK,EAAEC,MAAM,CAACa,SAAU;QAAAX,QAAA,gBAC5BrC,KAAA,CAACT,IAAI;UAAC2C,KAAK,EAAEC,MAAM,CAACc,gBAAiB;UAAAZ,QAAA,gBACnCvC,IAAA,CAACR,IAAI;YAAC4C,KAAK,EAAEC,MAAM,CAACe,KAAM;YAACC,aAAa,EAAE,CAAE;YAACC,aAAa,EAAC,MAAM;YAAAf,QAAA,EAC9DrB,YAAY,CAACqC;UAAa,CACvB,CAAC,eAEPvD,IAAA,CAACR,IAAI;YACH4C,KAAK,EAAEC,MAAM,CAACmB,WAAY;YAC1BH,aAAa,EAAE,CAAE;YACjBC,aAAa,EAAC,MAAM;YAAAf,QAAA,EAEnBrB,YAAY,CAACuC;UAAmB,CAC7B,CAAC,eAEPzD,IAAA,CAACR,IAAI;YACH4C,KAAK,EAAEC,MAAM,CAACqB,SAAU;YACxBL,aAAa,EAAE,CAAE;YACjBC,aAAa,EAAC,MAAM;YAAAf,QAAA,EAEnBrB,YAAY,EAAEyC,iBAAiB,IAAI;UAAY,CAC5C,CAAC;QAAA,CACH,CAAC,eACP3D,IAAA,CAACN,wBAAwB;UACvBkE,OAAO,EAAEA,CAAA,KAAM;YACb7B,WAAW,CAAC,CAAC;UACf,CAAE;UACFY,UAAU;UACVC,kBAAkB,EAAC,mBAAmB;UAAAL,QAAA,eAEtCvC,IAAA,CAACX,KAAK;YACJ+C,KAAK,EAAE,CAACC,MAAM,CAACwB,UAAU,CAAE;YAC3Bf,MAAM,EAAE;cACNC,GAAG,EAAE;YACP;UAAE,CACH;QAAC,CACsB,CAAC;MAAA,CACvB,CAAC;IAAA,CACH;EAAC,CACiB,CAAC;AAE/B,CAAC;AAED,MAAMV,MAAM,GAAG9C,UAAU,CAACuE,MAAM,CAAC;EAC/BjB,WAAW,EAAE;IACXkB,eAAe,EAAE,OAAO;IACxBC,YAAY,EAAE;EAChB,CAAC;EACD1B,uBAAuB,EAAE;IACvB2B,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACD1C,QAAQ,EAAE;IACRwB,UAAU,EAAE,SAAS;IACrBmB,mBAAmB,EAAE,CAAC;IACtBJ,eAAe,EAAE,OAAO;IACxBK,oBAAoB,EAAE;EACxB,CAAC;EACDlB,SAAS,EAAE;IACT5C,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,KAAK;IACbwD,eAAe,EAAE,OAAO;IACxBM,aAAa,EAAE,KAAK;IACpBH,cAAc,EAAE,eAAe;IAC/BI,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBN,UAAU,EAAE,QAAQ;IACpBO,sBAAsB,EAAE,CAAC;IACzBC,uBAAuB,EAAE;EAC3B,CAAC;EACDtB,gBAAgB,EAAE;IAChB7C,KAAK,EAAE;EACT,CAAC;EACD8C,KAAK,EAAE;IACLX,KAAK,EAAE,OAAO;IACdiC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDnB,WAAW,EAAE;IACXf,KAAK,EAAE,OAAO;IACdiC,QAAQ,EAAE;EACZ,CAAC;EACDhB,SAAS,EAAE;IACTjB,KAAK,EAAE,OAAO;IACdiC,QAAQ,EAAE,EAAE;IACZE,OAAO,EAAE,GAAG;IACZC,SAAS,EAAE,CAAC;IACZF,UAAU,EAAE;EACd,CAAC;EACDd,UAAU,EAAE;IACVvD,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useState","Image","Linking","StyleSheet","Text","View","TouchableWithoutFeedback","ActivityIndicator","Video","Adgeist","useAdgeistContext","jsx","_jsx","jsxs","_jsxs","BannerAd","dataAdSlot","dataSlotType","width","height","isResponsive","onAdLoadError","onAdLoadSuccess","adData","setAdData","isMuted","setIsMuted","error","setError","isLoading","setIsLoading","isInitialized","publisherId","apiKey","domain","isTestEnvironment","creativeData","seatBid","bid","ext","fetchAd","response","fetchCreative","creative","data","length","sendCreativeAnalytic","id","err","Error","console","handleClick","bidId","openURL","ctaUrl","style","styles","loadingOverlayContainer","children","size","color","creativeUrl","accessible","accessibilityLabel","adContainer","source","uri","resizeMode","onError","e","nativeEvent","videoCreative","repeat","muted","onPress","soundIcon","adContent","contentContainer","title","numberOfLines","ellipsizeMode","creativeTitle","description","creativeDescription","brandName","creativeBrandName","linkButton","create","backgroundColor","borderRadius","alignItems","justifyContent","borderTopLeftRadius","borderTopRightRadius","position","bottom","right","flexDirection","paddingVertical","paddingHorizontal","borderBottomLeftRadius","borderBottomRightRadius","fontSize","fontWeight","marginBottom","textTransform"],"sourceRoot":"../../../src","sources":["components/BannerAd.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,26 @@
1
1
  import { type UserDetails, type Event } from '../NativeAdgeist';
2
+ /**
3
+ * Sets user details in the Adgeist SDK
4
+ * @param userDetails - User details object
5
+ * @throws AdgeistError if the operation fails
6
+ */
2
7
  export declare const setUserDetails: (userDetails: UserDetails) => void;
8
+ /**
9
+ * Logs an event in the Adgeist SDK
10
+ * @param event - Event object to log
11
+ * @throws AdgeistError if the event is invalid or logging fails
12
+ */
3
13
  export declare const logEvent: (event: Event) => void;
14
+ /**
15
+ * Retrieves the consent status from the Adgeist SDK
16
+ * @returns Promise resolving to 'ACCEPTED' or 'DENIED'
17
+ * @throws AdgeistError if the operation fails
18
+ */
4
19
  export declare const getConsentStatus: () => Promise<"ACCEPTED" | "DENIED">;
20
+ /**
21
+ * Updates the consent status in the Adgeist SDK
22
+ * @param consent - Boolean indicating user consent
23
+ * @throws AdgeistError if the operation fails
24
+ */
5
25
  export declare const updateConsentStatus: (consent: boolean) => void;
6
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cdpclient/index.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzE,eAAO,MAAM,cAAc,GAAI,aAAa,WAAW,SAEtD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,SAEpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,sCAE5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,SAEnD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cdpclient/index.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAazE;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,aAAa,WAAW,KAAG,IAQzD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,KAAG,IAWvC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,UAAU,GAAG,QAAQ,CAWtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,KAAG,IAUtD,CAAC"}
@@ -1,21 +1,50 @@
1
+ /**
2
+ * @module AdgeistProvider
3
+ * @description Context provider for Adgeist ad-serving configuration and initialization
4
+ */
1
5
  import React from 'react';
6
+ /**
7
+ * Interface for Adgeist context
8
+ */
2
9
  interface AdgeistContextType {
3
10
  publisherId: string;
4
11
  apiKey: string;
5
12
  domain: string;
6
13
  isTestEnvironment: boolean;
7
14
  isInitialized: boolean;
15
+ initializationError?: Error;
8
16
  setAdgeistConsentModal: (value: boolean) => void;
9
17
  }
10
- interface AdgeistProviderPropsType {
18
+ /**
19
+ * Props for AdgeistProvider
20
+ */
21
+ interface AdgeistProviderProps {
11
22
  children: React.ReactNode;
23
+ /** Custom API origin for Adgeist SDK */
12
24
  customAdgeistApiOrigin?: string;
25
+ /** Publisher identifier */
13
26
  publisherId: string;
27
+ /** API key for authentication */
14
28
  apiKey: string;
29
+ /** Domain for ad serving */
15
30
  domain: string;
16
- isTestEnvironment: boolean;
31
+ /** Enable test environment mode */
32
+ isTestEnvironment?: boolean;
33
+ /** Callback for initialization errors */
34
+ onInitializationError?: (error: Error) => void;
35
+ /** Callback for successful initialization */
36
+ onInitializationSuccess?: () => void;
17
37
  }
18
- export declare const AdgeistProvider: React.FC<AdgeistProviderPropsType>;
38
+ /**
39
+ * AdgeistProvider component for managing ad-serving configuration
40
+ * @param props - Component properties
41
+ * @returns JSX.Element
42
+ */
43
+ export declare const AdgeistProvider: React.FC<AdgeistProviderProps>;
44
+ /**
45
+ * Hook to access Adgeist context
46
+ * @returns AdgeistContextType
47
+ */
19
48
  export declare const useAdgeistContext: () => AdgeistContextType;
20
49
  export {};
21
50
  //# sourceMappingURL=AdgeistProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdgeistProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/AdgeistProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAI9E,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAED,UAAU,wBAAwB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAWD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAmD9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,0BAAmC,CAAC"}
1
+ {"version":3,"file":"AdgeistProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/AdgeistProvider.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAMN,MAAM,OAAO,CAAC;AAIf;;GAEG;AACH,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,wCAAwC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yCAAyC;IACzC,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/C,6CAA6C;IAC7C,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AAWD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA+D1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,0BAM7B,CAAC"}
@@ -1,12 +1,64 @@
1
+ /**
2
+ * @module BannerAd
3
+ * @description A React Native component for displaying banner and video ads with robust error handling and analytics.
4
+ */
1
5
  import React from 'react';
2
- interface AdBannerTypes {
6
+ /**
7
+ * Interface for ad data structure
8
+ */
9
+ interface AdData {
10
+ id: string;
11
+ bidId: string;
12
+ cur: string;
13
+ seatBid: SeatBid[];
14
+ }
15
+ /**
16
+ * Interface for seat bid data
17
+ */
18
+ interface SeatBid {
19
+ bidId: string;
20
+ bid: Bid[];
21
+ }
22
+ /**
23
+ * Interface for individual bid
24
+ */
25
+ interface Bid {
26
+ id: string;
27
+ impId: string;
28
+ price: number;
29
+ ext: BidExtension;
30
+ }
31
+ /**
32
+ * Interface for bid extension data
33
+ */
34
+ interface BidExtension {
35
+ creativeUrl: string;
36
+ ctaUrl: string;
37
+ creativeTitle: string;
38
+ creativeDescription: string;
39
+ creativeBrandName?: string;
40
+ }
41
+ /**
42
+ * Props for the BannerAd component
43
+ */
44
+ interface AdBannerProps {
45
+ /** Unique identifier for the ad slot */
3
46
  dataAdSlot: string;
4
- dataSlotType: 'banner' | 'video';
47
+ /** Type of ad to display */
48
+ dataSlotType?: 'banner' | 'video';
49
+ /** Width of the ad container */
5
50
  width?: number;
51
+ /** Height of the ad container */
6
52
  height?: number;
7
- isResponsive: boolean;
53
+ /** Enable responsive layout */
54
+ isResponsive?: boolean;
55
+ /** Responsive layout type */
8
56
  responsiveType?: 'SQUARE' | 'VERTICAL' | 'WIDE';
57
+ /** Callback for ad load errors */
58
+ onAdLoadError?: (error: Error) => void;
59
+ /** Callback for ad load success */
60
+ onAdLoadSuccess?: (adData: AdData) => void;
9
61
  }
10
- export declare const BannerAd: React.FC<AdBannerTypes>;
62
+ export declare const BannerAd: React.FC<AdBannerProps>;
11
63
  export {};
12
64
  //# sourceMappingURL=BannerAd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerAd.d.ts","sourceRoot":"","sources":["../../../../src/components/BannerAd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAwCnD,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,QAAQ,GAAG,OAAO,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;CACjD;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA6J5C,CAAC"}
1
+ {"version":3,"file":"BannerAd.d.ts","sourceRoot":"","sources":["../../../../src/components/BannerAd.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAchE;;GAEG;AACH,UAAU,MAAM;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,GAAG,EAAE,CAAC;CACZ;AAED;;GAEG;AACH,UAAU,GAAG;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAClC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6BAA6B;IAC7B,cAAc,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAChD,kCAAkC;IAClC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,mCAAmC;IACnC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAgN5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thealteroffice/react-native-adgeist",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "description": "Publishers can integrate our SDK to connect their ad spaces to the AdGeist marketplace.",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
@@ -1,17 +1,80 @@
1
1
  import Adgeist, { type UserDetails, type Event } from '../NativeAdgeist';
2
2
 
3
- export const setUserDetails = (userDetails: UserDetails) => {
4
- Adgeist.setUserDetails(userDetails);
3
+ class AdgeistError extends Error {
4
+ code?: string;
5
+
6
+ constructor(message: string, code?: string) {
7
+ super(message);
8
+ this.name = 'AdgeistError';
9
+ this.code = code;
10
+ Object.setPrototypeOf(this, AdgeistError.prototype);
11
+ }
12
+ }
13
+
14
+ /**
15
+ * Sets user details in the Adgeist SDK
16
+ * @param userDetails - User details object
17
+ * @throws AdgeistError if the operation fails
18
+ */
19
+ export const setUserDetails = (userDetails: UserDetails): void => {
20
+ try {
21
+ Adgeist.setUserDetails(userDetails);
22
+ } catch (error: unknown) {
23
+ const err =
24
+ error instanceof Error ? error : new Error('Failed to set user details');
25
+ throw new AdgeistError(err.message);
26
+ }
5
27
  };
6
28
 
7
- export const logEvent = (event: Event) => {
8
- Adgeist.logEvent(event);
29
+ /**
30
+ * Logs an event in the Adgeist SDK
31
+ * @param event - Event object to log
32
+ * @throws AdgeistError if the event is invalid or logging fails
33
+ */
34
+ export const logEvent = (event: Event): void => {
35
+ if (!event || typeof event !== 'object') {
36
+ throw new AdgeistError('Event must be a valid object');
37
+ }
38
+ try {
39
+ Adgeist.logEvent(event);
40
+ } catch (error: unknown) {
41
+ const err =
42
+ error instanceof Error ? error : new Error('Failed to log event');
43
+ throw new AdgeistError(err.message);
44
+ }
9
45
  };
10
46
 
11
- export const getConsentStatus = async () => {
12
- return (await Adgeist.getConsentStatus()) === true ? 'ACCEPTED' : 'DENIED';
47
+ /**
48
+ * Retrieves the consent status from the Adgeist SDK
49
+ * @returns Promise resolving to 'ACCEPTED' or 'DENIED'
50
+ * @throws AdgeistError if the operation fails
51
+ */
52
+ export const getConsentStatus = async (): Promise<'ACCEPTED' | 'DENIED'> => {
53
+ try {
54
+ const status = await Adgeist.getConsentStatus();
55
+ return status === true ? 'ACCEPTED' : 'DENIED';
56
+ } catch (error: unknown) {
57
+ const err =
58
+ error instanceof Error
59
+ ? error
60
+ : new Error('Failed to get consent status');
61
+ throw new AdgeistError(err.message);
62
+ }
13
63
  };
14
64
 
15
- export const updateConsentStatus = (consent: boolean) => {
16
- Adgeist.updateConsentStatus(consent);
65
+ /**
66
+ * Updates the consent status in the Adgeist SDK
67
+ * @param consent - Boolean indicating user consent
68
+ * @throws AdgeistError if the operation fails
69
+ */
70
+ export const updateConsentStatus = (consent: boolean): void => {
71
+ try {
72
+ Adgeist.updateConsentStatus(consent);
73
+ } catch (error: unknown) {
74
+ const err =
75
+ error instanceof Error
76
+ ? error
77
+ : new Error('Failed to update consent status');
78
+ throw new AdgeistError(err.message);
79
+ }
17
80
  };