@thealteroffice/react-native-adgeist 0.0.16 → 0.0.18

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 (34) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/generated/java/com/adgeist/NativeAdgeistSpec.java +83 -0
  3. package/android/generated/jni/CMakeLists.txt +36 -0
  4. package/android/generated/jni/RNAdgeistSpec-generated.cpp +98 -0
  5. package/android/generated/jni/RNAdgeistSpec.h +31 -0
  6. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/RNAdgeistSpecJSI-generated.cpp +149 -0
  7. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/RNAdgeistSpecJSI.h +170 -0
  8. package/android/src/main/java/com/adgeist/implementation/AdgeistModuleImpl.kt +101 -9
  9. package/android/src/newarch/java/com/AdgeistModule.kt +93 -2
  10. package/android/src/oldarch/java/com/AdgeistModule.kt +101 -4
  11. package/ios/generated/RNAdgeistSpec/RNAdgeistSpec-generated.mm +42 -7
  12. package/ios/generated/RNAdgeistSpec/RNAdgeistSpec.h +57 -10
  13. package/ios/generated/RNAdgeistSpecJSI-generated.cpp +81 -14
  14. package/ios/generated/RNAdgeistSpecJSI.h +54 -9
  15. package/lib/module/NativeAdgeist.js.map +1 -1
  16. package/lib/module/components/BannerAd.js +201 -63
  17. package/lib/module/components/BannerAd.js.map +1 -1
  18. package/lib/module/utilities.js +16 -0
  19. package/lib/module/utilities.js.map +1 -0
  20. package/lib/typescript/src/NativeAdgeist.d.ts +6 -1
  21. package/lib/typescript/src/NativeAdgeist.d.ts.map +1 -1
  22. package/lib/typescript/src/components/BannerAd.d.ts.map +1 -1
  23. package/lib/typescript/src/utilities.d.ts +5 -0
  24. package/lib/typescript/src/utilities.d.ts.map +1 -0
  25. package/package.json +8 -2
  26. package/src/NativeAdgeist.ts +61 -9
  27. package/src/components/BannerAd.tsx +283 -77
  28. package/src/utilities.ts +13 -0
  29. package/plugin/build/android/withRNAdgeistMainApplication.d.ts +0 -3
  30. package/plugin/build/android/withRNAdgeistMainApplication.js +0 -65
  31. package/plugin/build/index.d.ts +0 -3
  32. package/plugin/build/index.js +0 -25
  33. package/plugin/build/ios/withRNAdgeistAppDelegate.d.ts +0 -4
  34. package/plugin/build/ios/withRNAdgeistAppDelegate.js +0 -66
@@ -22,11 +22,16 @@ protected:
22
22
  public:
23
23
  virtual jsi::Value initializeSdk(jsi::Runtime &rt, jsi::String customDomain) = 0;
24
24
  virtual jsi::Value fetchCreative(jsi::Runtime &rt, jsi::String apiKey, jsi::String origin, jsi::String adSpaceId, jsi::String publisherId, bool isTestEnvironment) = 0;
25
- virtual jsi::Value sendCreativeAnalytic(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String eventType, jsi::String origin, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment) = 0;
26
25
  virtual void setUserDetails(jsi::Runtime &rt, jsi::Object user) = 0;
27
26
  virtual void logEvent(jsi::Runtime &rt, jsi::Object event) = 0;
28
27
  virtual jsi::Value getConsentStatus(jsi::Runtime &rt) = 0;
29
28
  virtual void updateConsentStatus(jsi::Runtime &rt, bool consent) = 0;
29
+ virtual jsi::Value trackImpression(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment, double renderTime) = 0;
30
+ virtual jsi::Value trackView(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment, double viewTime, double visibilityRatio, double scrollDepth, double timeToVisible) = 0;
31
+ virtual jsi::Value trackTotalView(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment, double totalViewTime, double visibilityRatio) = 0;
32
+ virtual jsi::Value trackClick(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment) = 0;
33
+ virtual jsi::Value trackVideoPlayback(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment, double totalPlaybackTime) = 0;
34
+ virtual jsi::Value trackVideoQuartile(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment, jsi::String quartile) = 0;
30
35
 
31
36
  };
32
37
 
@@ -73,14 +78,6 @@ private:
73
78
  return bridging::callFromJs<jsi::Value>(
74
79
  rt, &T::fetchCreative, jsInvoker_, instance_, std::move(apiKey), std::move(origin), std::move(adSpaceId), std::move(publisherId), std::move(isTestEnvironment));
75
80
  }
76
- jsi::Value sendCreativeAnalytic(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String eventType, jsi::String origin, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment) override {
77
- static_assert(
78
- bridging::getParameterCount(&T::sendCreativeAnalytic) == 9,
79
- "Expected sendCreativeAnalytic(...) to have 9 parameters");
80
-
81
- return bridging::callFromJs<jsi::Value>(
82
- rt, &T::sendCreativeAnalytic, jsInvoker_, instance_, std::move(campaignId), std::move(adSpaceId), std::move(publisherId), std::move(eventType), std::move(origin), std::move(apiKey), std::move(bidId), std::move(isTestEnvironment));
83
- }
84
81
  void setUserDetails(jsi::Runtime &rt, jsi::Object user) override {
85
82
  static_assert(
86
83
  bridging::getParameterCount(&T::setUserDetails) == 2,
@@ -113,6 +110,54 @@ private:
113
110
  return bridging::callFromJs<void>(
114
111
  rt, &T::updateConsentStatus, jsInvoker_, instance_, std::move(consent));
115
112
  }
113
+ jsi::Value trackImpression(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment, double renderTime) override {
114
+ static_assert(
115
+ bridging::getParameterCount(&T::trackImpression) == 8,
116
+ "Expected trackImpression(...) to have 8 parameters");
117
+
118
+ return bridging::callFromJs<jsi::Value>(
119
+ rt, &T::trackImpression, jsInvoker_, instance_, std::move(campaignId), std::move(adSpaceId), std::move(publisherId), std::move(apiKey), std::move(bidId), std::move(isTestEnvironment), std::move(renderTime));
120
+ }
121
+ jsi::Value trackView(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment, double viewTime, double visibilityRatio, double scrollDepth, double timeToVisible) override {
122
+ static_assert(
123
+ bridging::getParameterCount(&T::trackView) == 11,
124
+ "Expected trackView(...) to have 11 parameters");
125
+
126
+ return bridging::callFromJs<jsi::Value>(
127
+ rt, &T::trackView, jsInvoker_, instance_, std::move(campaignId), std::move(adSpaceId), std::move(publisherId), std::move(apiKey), std::move(bidId), std::move(isTestEnvironment), std::move(viewTime), std::move(visibilityRatio), std::move(scrollDepth), std::move(timeToVisible));
128
+ }
129
+ jsi::Value trackTotalView(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment, double totalViewTime, double visibilityRatio) override {
130
+ static_assert(
131
+ bridging::getParameterCount(&T::trackTotalView) == 9,
132
+ "Expected trackTotalView(...) to have 9 parameters");
133
+
134
+ return bridging::callFromJs<jsi::Value>(
135
+ rt, &T::trackTotalView, jsInvoker_, instance_, std::move(campaignId), std::move(adSpaceId), std::move(publisherId), std::move(apiKey), std::move(bidId), std::move(isTestEnvironment), std::move(totalViewTime), std::move(visibilityRatio));
136
+ }
137
+ jsi::Value trackClick(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment) override {
138
+ static_assert(
139
+ bridging::getParameterCount(&T::trackClick) == 7,
140
+ "Expected trackClick(...) to have 7 parameters");
141
+
142
+ return bridging::callFromJs<jsi::Value>(
143
+ rt, &T::trackClick, jsInvoker_, instance_, std::move(campaignId), std::move(adSpaceId), std::move(publisherId), std::move(apiKey), std::move(bidId), std::move(isTestEnvironment));
144
+ }
145
+ jsi::Value trackVideoPlayback(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment, double totalPlaybackTime) override {
146
+ static_assert(
147
+ bridging::getParameterCount(&T::trackVideoPlayback) == 8,
148
+ "Expected trackVideoPlayback(...) to have 8 parameters");
149
+
150
+ return bridging::callFromJs<jsi::Value>(
151
+ rt, &T::trackVideoPlayback, jsInvoker_, instance_, std::move(campaignId), std::move(adSpaceId), std::move(publisherId), std::move(apiKey), std::move(bidId), std::move(isTestEnvironment), std::move(totalPlaybackTime));
152
+ }
153
+ jsi::Value trackVideoQuartile(jsi::Runtime &rt, jsi::String campaignId, jsi::String adSpaceId, jsi::String publisherId, jsi::String apiKey, jsi::String bidId, bool isTestEnvironment, jsi::String quartile) override {
154
+ static_assert(
155
+ bridging::getParameterCount(&T::trackVideoQuartile) == 8,
156
+ "Expected trackVideoQuartile(...) to have 8 parameters");
157
+
158
+ return bridging::callFromJs<jsi::Value>(
159
+ rt, &T::trackVideoQuartile, jsInvoker_, instance_, std::move(campaignId), std::move(adSpaceId), std::move(publisherId), std::move(apiKey), std::move(bidId), std::move(isTestEnvironment), std::move(quartile));
160
+ }
116
161
 
117
162
  private:
118
163
  friend class NativeAdgeistCxxSpec;
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAdgeist.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AA4ClD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
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":[]}
@@ -5,11 +5,12 @@
5
5
  * @description A React Native component for displaying banner and video ads with robust error handling and analytics.
6
6
  */
7
7
 
8
- import React, { useCallback, useEffect, useState } from 'react';
9
- import { Image, Linking, StyleSheet, Text, View, TouchableWithoutFeedback, ActivityIndicator } from 'react-native';
8
+ import React, { useCallback, useEffect, useState, useRef } from 'react';
9
+ import { Image, Linking, StyleSheet, Text, View, TouchableWithoutFeedback, ActivityIndicator, Dimensions } from 'react-native';
10
10
  import Video from 'react-native-video';
11
11
  import Adgeist from "../NativeAdgeist.js";
12
12
  import { useAdgeistContext } from "./AdgeistProvider.js";
13
+ import { normalizeUrl } from "../utilities.js";
13
14
 
14
15
  /**
15
16
  * Interface for ad data structure
@@ -37,14 +38,25 @@ export const BannerAd = ({
37
38
  width = 0,
38
39
  height = 0,
39
40
  isResponsive = false,
40
- // responsiveType = 'SQUARE',
41
41
  onAdLoadError,
42
42
  onAdLoadSuccess
43
43
  }) => {
44
44
  const [adData, setAdData] = useState(null);
45
- const [isMuted, setIsMuted] = useState(false);
45
+ const [isMuted, setIsMuted] = useState(true);
46
46
  const [error, setError] = useState(null);
47
47
  const [isLoading, setIsLoading] = useState(false);
48
+ const [hasImpression, setHasImpression] = useState(false);
49
+ const [hasView, setHasView] = useState(false);
50
+ const [isPaused, setIsPaused] = useState(true);
51
+ const [isManuallyControlled, setIsManuallyControlled] = useState(false);
52
+ const renderStartTime = useRef(Date.now());
53
+ const adRef = useRef(null);
54
+ const visibilityStartTime = useRef(null);
55
+ const timeToVisible = useRef(null);
56
+ const viewTime = useRef(0);
57
+ const lastCheckTime = useRef(Date.now());
58
+ const currentVisibilityRatio = useRef(0);
59
+ const videoRef = useRef(null);
48
60
  const {
49
61
  isInitialized,
50
62
  publisherId,
@@ -53,60 +65,146 @@ export const BannerAd = ({
53
65
  isTestEnvironment
54
66
  } = useAdgeistContext();
55
67
  const creativeData = adData?.seatBid?.[0]?.bid?.[0]?.ext;
68
+ const bidId = adData?.id;
69
+ const campaignId = adData?.seatBid?.[0]?.bid?.[0]?.id;
70
+ const adSpaceId = dataAdSlot;
56
71
 
57
72
  /**
58
- * Fetches ad creative and sends impression analytics
73
+ * Fetches ad creative data (without tracking impression here)
59
74
  */
60
75
  const fetchAd = useCallback(async () => {
61
76
  if (!isInitialized) return;
62
77
  try {
63
78
  setIsLoading(true);
64
79
  setError(null);
80
+ setHasImpression(false);
81
+ setHasView(false);
65
82
  const response = await Adgeist.fetchCreative(apiKey, domain, dataAdSlot, publisherId, isTestEnvironment);
66
83
  const creative = response;
67
84
  setAdData(creative.data);
68
85
  onAdLoadSuccess?.(creative.data);
69
-
70
- // if (creative.data.seatBid.length > 0) {
71
- // await Adgeist.sendCreativeAnalytic(
72
- // creative.data.seatBid?.[0]?.bid?.[0]?.id || '',
73
- // dataAdSlot,
74
- // publisherId,
75
- // 'IMPRESSION',
76
- // domain,
77
- // apiKey,
78
- // creative.data.id,
79
- // isTestEnvironment
80
- // );
81
- // }
82
86
  } catch (err) {
83
87
  const error = err instanceof Error ? err : new Error('Ad load failed');
84
88
  setError(error);
89
+ setHasImpression(false);
90
+ setHasView(false);
85
91
  onAdLoadError?.(error);
86
- console.error('Ad load failed:', error);
87
92
  } finally {
88
93
  setIsLoading(false);
89
94
  }
90
95
  }, [isInitialized, publisherId, dataAdSlot, apiKey, domain, isTestEnvironment, onAdLoadError, onAdLoadSuccess]);
91
96
 
97
+ /**
98
+ * Tracks impression when media (image/video) is fully loaded
99
+ */
100
+ const trackImpressionOnMediaLoad = useCallback(async () => {
101
+ if (hasImpression || !bidId || !campaignId) return;
102
+ try {
103
+ const renderTime = Date.now() - renderStartTime.current;
104
+ await Adgeist.trackImpression(campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, renderTime);
105
+ setHasImpression(true);
106
+ } catch (err) {
107
+ console.error('Failed to track impression:', err);
108
+ }
109
+ }, [hasImpression, bidId, campaignId, adSpaceId, publisherId, apiKey, isTestEnvironment]);
110
+
111
+ /**
112
+ * Tracks view event for ads when visible for >=1s (banner) or >=2s (video) and >=50% in viewport
113
+ */
114
+ const trackView = useCallback(async () => {
115
+ if (hasView || !hasImpression || !bidId || !campaignId) return;
116
+ try {
117
+ const currentViewTime = viewTime.current;
118
+ const currentTimeToVisible = timeToVisible.current || 0;
119
+ const visibility = currentVisibilityRatio.current;
120
+ if (currentViewTime >= (dataSlotType === 'video' ? 2000 : 1000) && visibility >= 0.5 && timeToVisible.current !== null) {
121
+ await Adgeist.trackView(campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment, currentViewTime, visibility, 0, currentTimeToVisible);
122
+ setHasView(true);
123
+ }
124
+ } catch (err) {
125
+ console.error('Failed to track view:', err);
126
+ }
127
+ }, [hasView, hasImpression, bidId, campaignId, adSpaceId, publisherId, apiKey, isTestEnvironment, dataSlotType]);
128
+
129
+ /**
130
+ * Toggles play/pause state manually
131
+ */
132
+ const togglePlayPause = useCallback(() => {
133
+ setIsManuallyControlled(true);
134
+ setIsPaused(prev => !prev);
135
+ }, []);
136
+
137
+ /**
138
+ * Calculates visibility ratio, updates view metrics, and controls video playback
139
+ */
140
+ const checkVisibility = useCallback(() => {
141
+ if (!adRef.current || !hasImpression) return;
142
+ adRef.current.measure((_x, _y, _width, height, _pageX, pageY) => {
143
+ const window = Dimensions.get('window');
144
+ const windowHeight = window.height;
145
+ const adTop = pageY;
146
+ const adBottom = pageY + height;
147
+ const windowTop = 0;
148
+ const windowBottom = windowHeight;
149
+ const visibleTop = Math.max(adTop, windowTop);
150
+ const visibleBottom = Math.min(adBottom, windowBottom);
151
+ const visibleHeight = Math.max(0, visibleBottom - visibleTop);
152
+ const visibilityRatio = height > 0 ? visibleHeight / height : 0;
153
+ currentVisibilityRatio.current = visibilityRatio;
154
+ const currentTime = Date.now();
155
+ const deltaTime = currentTime - lastCheckTime.current;
156
+ lastCheckTime.current = currentTime;
157
+ if (visibilityRatio >= 0.5 && timeToVisible.current === null) {
158
+ timeToVisible.current = currentTime - renderStartTime.current;
159
+ }
160
+ if (visibilityRatio >= 0.5) {
161
+ viewTime.current += deltaTime;
162
+ if (!visibilityStartTime.current) {
163
+ visibilityStartTime.current = currentTime;
164
+ }
165
+ if (dataSlotType === 'video' && isPaused && !isManuallyControlled) {
166
+ setIsPaused(false);
167
+ }
168
+ } else {
169
+ visibilityStartTime.current = null;
170
+ if (dataSlotType === 'video' && !isPaused) {
171
+ setIsPaused(true);
172
+ setIsManuallyControlled(false);
173
+ }
174
+ }
175
+
176
+ // Only check for view tracking if view event hasn't been tracked yet
177
+ if (!hasView && viewTime.current >= (dataSlotType === 'video' ? 2000 : 1000) && visibilityRatio >= 0.5) {
178
+ trackView();
179
+ }
180
+ });
181
+ }, [hasImpression, trackView, dataSlotType, isPaused, hasView, isManuallyControlled]);
182
+
92
183
  /**
93
184
  * Handles ad click and sends click analytics
94
185
  */
95
186
  const handleClick = useCallback(async () => {
96
- if (adData && adData.seatBid.length > 0) {
97
- const bidId = adData.seatBid[0]?.bid[0]?.id;
98
- if (!bidId) return;
99
- try {
100
- await Adgeist.sendCreativeAnalytic(bidId, dataAdSlot, publisherId, 'CLICK', domain, apiKey, adData.id, isTestEnvironment);
101
- await Linking.openURL(creativeData.ctaUrl);
102
- } catch (err) {
103
- console.error('Failed to handle ad click:', err);
104
- }
187
+ if (!adData || !adData.seatBid.length || !bidId || !campaignId) return;
188
+ try {
189
+ Adgeist.trackClick(campaignId, adSpaceId, publisherId, apiKey, bidId, isTestEnvironment);
190
+ await Linking.openURL(normalizeUrl(creativeData.ctaUrl));
191
+ } catch (err) {
192
+ console.error('Failed to handle ad click:', err);
105
193
  }
106
- }, [adData, dataAdSlot, publisherId, domain, apiKey, isTestEnvironment, creativeData]);
194
+ }, [adData, bidId, campaignId, adSpaceId, publisherId, apiKey, isTestEnvironment, creativeData]);
107
195
  useEffect(() => {
196
+ renderStartTime.current = Date.now();
197
+ lastCheckTime.current = Date.now();
108
198
  fetchAd();
109
199
  }, [fetchAd]);
200
+ useEffect(() => {
201
+ if (!hasImpression) return;
202
+ if (dataSlotType === 'banner' && hasView) return;
203
+ const intervalId = setInterval(checkVisibility, 200);
204
+ return () => {
205
+ clearInterval(intervalId);
206
+ };
207
+ }, [hasImpression, checkVisibility, dataSlotType, hasView]);
110
208
  if (isLoading) {
111
209
  return /*#__PURE__*/_jsx(View, {
112
210
  style: [styles.loadingOverlayContainer, !isResponsive && {
@@ -128,41 +226,69 @@ export const BannerAd = ({
128
226
  height: '100%'
129
227
  },
130
228
  children: /*#__PURE__*/_jsxs(View, {
229
+ ref: adRef,
131
230
  style: [styles.adContainer, !isResponsive && {
132
231
  width: width,
133
232
  height: height
134
233
  }],
135
- children: [dataSlotType === 'banner' ? /*#__PURE__*/_jsx(Image, {
136
- style: styles.creative,
137
- source: {
138
- uri: creativeData.creativeUrl
139
- },
140
- accessibilityLabel: "Ad Creative",
141
- resizeMode: "contain",
142
- onError: e => console.error('Image load error:', e.nativeEvent.error)
143
- }) : /*#__PURE__*/_jsxs(View, {
144
- style: styles.videoCreative,
145
- children: [/*#__PURE__*/_jsx(Video, {
234
+ children: [dataSlotType === 'banner' ? /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
235
+ onPress: handleClick,
236
+ children: /*#__PURE__*/_jsx(Image, {
237
+ style: styles.creative,
146
238
  source: {
147
239
  uri: creativeData.creativeUrl
148
240
  },
241
+ accessibilityLabel: "Ad Creative",
149
242
  resizeMode: "contain",
150
- style: {
151
- width: '100%',
152
- height: '100%'
153
- },
154
- repeat: true,
155
- muted: isMuted,
156
- onError: e => console.error('Video load error:', e)
157
- }), /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
158
- onPress: () => setIsMuted(!isMuted),
159
- children: /*#__PURE__*/_jsx(Image, {
160
- style: styles.soundIcon,
243
+ onLoad: trackImpressionOnMediaLoad,
244
+ onError: e => {
245
+ console.error('Image load error:', e.nativeEvent.error);
246
+ setError(new Error('Failed to load ad image'));
247
+ }
248
+ })
249
+ }) : /*#__PURE__*/_jsxs(View, {
250
+ style: styles.videoCreative,
251
+ children: [/*#__PURE__*/_jsx(TouchableWithoutFeedback, {
252
+ onPress: handleClick,
253
+ children: /*#__PURE__*/_jsx(Video, {
254
+ ref: videoRef,
161
255
  source: {
162
- uri: isMuted ? 'https://d2cfeg6k9cklz9.cloudfront.net/ad-icons/Muted.png' : 'https://d2cfeg6k9cklz9.cloudfront.net/ad-icons/Unmuted.png'
256
+ uri: creativeData.creativeUrl
257
+ },
258
+ resizeMode: "contain",
259
+ style: {
260
+ width: '100%',
261
+ height: '100%'
163
262
  },
164
- accessibilityLabel: isMuted ? 'Unmute video' : 'Mute video'
263
+ repeat: true,
264
+ muted: isMuted,
265
+ paused: isPaused,
266
+ onLoad: trackImpressionOnMediaLoad,
267
+ onError: () => {
268
+ setError(new Error('Failed to load ad video'));
269
+ }
165
270
  })
271
+ }), /*#__PURE__*/_jsxs(View, {
272
+ style: styles.videoControls,
273
+ children: [/*#__PURE__*/_jsx(TouchableWithoutFeedback, {
274
+ onPress: togglePlayPause,
275
+ children: /*#__PURE__*/_jsx(Image, {
276
+ style: styles.playPauseIcon,
277
+ source: {
278
+ uri: isPaused ? 'https://d2cfeg6k9cklz9.cloudfront.net/ad-icons/Play.png' : 'https://d2cfeg6k9cklz9.cloudfront.net/ad-icons/Pause.png'
279
+ },
280
+ accessibilityLabel: isPaused ? 'Paused video' : 'Playing video'
281
+ })
282
+ }), /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
283
+ onPress: () => setIsMuted(!isMuted),
284
+ children: /*#__PURE__*/_jsx(Image, {
285
+ style: styles.soundIcon,
286
+ source: {
287
+ uri: isMuted ? 'https://d2cfeg6k9cklz9.cloudfront.net/ad-icons/Muted.png' : 'https://d2cfeg6k9cklz9.cloudfront.net/ad-icons/Unmuted.png'
288
+ },
289
+ accessibilityLabel: isMuted ? 'Unmute video' : 'Mute video'
290
+ })
291
+ })]
166
292
  })]
167
293
  }), /*#__PURE__*/_jsxs(View, {
168
294
  style: styles.adContent,
@@ -178,18 +304,18 @@ export const BannerAd = ({
178
304
  numberOfLines: 1,
179
305
  ellipsizeMode: "tail",
180
306
  children: creativeData.creativeDescription
181
- }), /*#__PURE__*/_jsx(Text, {
307
+ }), creativeData?.creativeBrandName && /*#__PURE__*/_jsx(Text, {
182
308
  style: styles.brandName,
183
309
  numberOfLines: 1,
184
310
  ellipsizeMode: "tail",
185
- children: creativeData?.creativeBrandName || 'Brand Name'
311
+ children: creativeData?.creativeBrandName || 'The Brand Name'
186
312
  })]
187
313
  }), /*#__PURE__*/_jsx(TouchableWithoutFeedback, {
188
314
  onPress: handleClick,
189
315
  children: /*#__PURE__*/_jsx(Image, {
190
316
  style: styles.linkButton,
191
317
  source: {
192
- uri: 'https://d2cfeg6k9cklz9.cloudfront.net/onboarding-icons/Button.png'
318
+ uri: 'https://d2cfeg6k9cklz9.cloudfront.net/ad-icons/Button.png'
193
319
  },
194
320
  accessibilityLabel: "Visit Advertiser Site"
195
321
  })
@@ -220,6 +346,14 @@ const styles = StyleSheet.create({
220
346
  width: '100%',
221
347
  height: '70%'
222
348
  },
349
+ videoControls: {},
350
+ playPauseIcon: {
351
+ position: 'absolute',
352
+ bottom: 8,
353
+ left: 10,
354
+ width: 30,
355
+ height: 30
356
+ },
223
357
  soundIcon: {
224
358
  position: 'absolute',
225
359
  bottom: 10,
@@ -234,32 +368,36 @@ const styles = StyleSheet.create({
234
368
  flexDirection: 'row',
235
369
  justifyContent: 'space-between',
236
370
  paddingVertical: 10,
237
- paddingHorizontal: 20,
371
+ paddingRight: 10,
372
+ paddingLeft: 20,
238
373
  alignItems: 'center',
239
374
  borderBottomLeftRadius: 5,
240
375
  borderBottomRightRadius: 5
241
376
  },
242
377
  contentContainer: {
243
- width: '80%'
378
+ flex: 1,
379
+ marginRight: 10
244
380
  },
245
381
  title: {
246
382
  color: '#1A1A1A',
247
- fontSize: 18,
383
+ fontSize: 16,
248
384
  fontWeight: '600'
249
385
  },
250
386
  description: {
251
387
  color: '#4A4A4A',
252
- fontSize: 16,
388
+ fontSize: 15,
253
389
  marginBottom: 4
254
390
  },
255
391
  brandName: {
256
392
  color: '#6B7280',
257
393
  fontSize: 14,
258
- textTransform: 'uppercase'
394
+ textTransform: 'capitalize',
395
+ opacity: 0.8
259
396
  },
260
397
  linkButton: {
261
- width: 40,
262
- height: 40
398
+ width: 80,
399
+ height: 40,
400
+ objectFit: 'contain'
263
401
  }
264
402
  });
265
403
  //# sourceMappingURL=BannerAd.js.map
@@ -1 +1 @@
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","err","Error","console","handleClick","length","bidId","id","sendCreativeAnalytic","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
+ {"version":3,"names":["React","useCallback","useEffect","useState","useRef","Image","Linking","StyleSheet","Text","View","TouchableWithoutFeedback","ActivityIndicator","Dimensions","Video","Adgeist","useAdgeistContext","normalizeUrl","jsx","_jsx","jsxs","_jsxs","BannerAd","dataAdSlot","dataSlotType","width","height","isResponsive","onAdLoadError","onAdLoadSuccess","adData","setAdData","isMuted","setIsMuted","error","setError","isLoading","setIsLoading","hasImpression","setHasImpression","hasView","setHasView","isPaused","setIsPaused","isManuallyControlled","setIsManuallyControlled","renderStartTime","Date","now","adRef","visibilityStartTime","timeToVisible","viewTime","lastCheckTime","currentVisibilityRatio","videoRef","isInitialized","publisherId","apiKey","domain","isTestEnvironment","creativeData","seatBid","bid","ext","bidId","id","campaignId","adSpaceId","fetchAd","response","fetchCreative","creative","data","err","Error","trackImpressionOnMediaLoad","renderTime","current","trackImpression","console","trackView","currentViewTime","currentTimeToVisible","visibility","togglePlayPause","prev","checkVisibility","measure","_x","_y","_width","_pageX","pageY","window","get","windowHeight","adTop","adBottom","windowTop","windowBottom","visibleTop","Math","max","visibleBottom","min","visibleHeight","visibilityRatio","currentTime","deltaTime","handleClick","length","trackClick","openURL","ctaUrl","intervalId","setInterval","clearInterval","style","styles","loadingOverlayContainer","children","size","color","creativeUrl","accessible","accessibilityLabel","ref","adContainer","onPress","source","uri","resizeMode","onLoad","onError","e","nativeEvent","videoCreative","repeat","muted","paused","videoControls","playPauseIcon","soundIcon","adContent","contentContainer","title","numberOfLines","ellipsizeMode","creativeTitle","description","creativeDescription","creativeBrandName","brandName","linkButton","create","backgroundColor","borderRadius","alignItems","justifyContent","borderTopLeftRadius","borderTopRightRadius","position","bottom","left","right","flexDirection","paddingVertical","paddingRight","paddingLeft","borderBottomLeftRadius","borderBottomRightRadius","flex","marginRight","fontSize","fontWeight","marginBottom","textTransform","opacity","objectFit"],"sourceRoot":"../../../src","sources":["components/BannerAd.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Normalizes a URL to ensure it has a valid protocol
5
+ */
6
+ export const normalizeUrl = url => {
7
+ if (!url) return url;
8
+ if (url.startsWith('www.')) {
9
+ return `https://${url}`;
10
+ }
11
+ if (!url.match(/^[a-zA-Z]+:\/\//)) {
12
+ return `https://${url}`;
13
+ }
14
+ return url;
15
+ };
16
+ //# sourceMappingURL=utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["normalizeUrl","url","startsWith","match"],"sourceRoot":"../../src","sources":["utilities.ts"],"mappings":";;AAAA;AACA;AACA;AACA,OAAO,MAAMA,YAAY,GAAIC,GAAW,IAAK;EAC3C,IAAI,CAACA,GAAG,EAAE,OAAOA,GAAG;EACpB,IAAIA,GAAG,CAACC,UAAU,CAAC,MAAM,CAAC,EAAE;IAC1B,OAAO,WAAWD,GAAG,EAAE;EACzB;EACA,IAAI,CAACA,GAAG,CAACE,KAAK,CAAC,iBAAiB,CAAC,EAAE;IACjC,OAAO,WAAWF,GAAG,EAAE;EACzB;EACA,OAAOA,GAAG;AACZ,CAAC","ignoreList":[]}
@@ -12,11 +12,16 @@ export interface Event {
12
12
  export interface Spec extends TurboModule {
13
13
  initializeSdk(customDomain: string): Promise<boolean>;
14
14
  fetchCreative(apiKey: string, origin: string, adSpaceId: string, publisherId: string, isTestEnvironment: boolean): Promise<Object>;
15
- sendCreativeAnalytic(campaignId: string, adSpaceId: string, publisherId: string, eventType: string, origin: string, apiKey: string, bidId: string, isTestEnvironment: boolean): Promise<Object>;
16
15
  setUserDetails(user: Object): void;
17
16
  logEvent(event: Object): void;
18
17
  getConsentStatus(): Promise<boolean>;
19
18
  updateConsentStatus(consent: boolean): void;
19
+ trackImpression(campaignId: string, adSpaceId: string, publisherId: string, apiKey: string, bidId: string, isTestEnvironment: boolean, renderTime: number): Promise<string>;
20
+ trackView(campaignId: string, adSpaceId: string, publisherId: string, apiKey: string, bidId: string, isTestEnvironment: boolean, viewTime: number, visibilityRatio: number, scrollDepth: number, timeToVisible: number): Promise<string>;
21
+ trackTotalView(campaignId: string, adSpaceId: string, publisherId: string, apiKey: string, bidId: string, isTestEnvironment: boolean, totalViewTime: number, visibilityRatio: number): Promise<string>;
22
+ trackClick(campaignId: string, adSpaceId: string, publisherId: string, apiKey: string, bidId: string, isTestEnvironment: boolean): Promise<string>;
23
+ trackVideoPlayback(campaignId: string, adSpaceId: string, publisherId: string, apiKey: string, bidId: string, isTestEnvironment: boolean, totalPlaybackTime: number): Promise<string>;
24
+ trackVideoQuartile(campaignId: string, adSpaceId: string, publisherId: string, apiKey: string, bidId: string, isTestEnvironment: boolean, quartile: string): Promise<string>;
20
25
  }
21
26
  declare const _default: Spec;
22
27
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeAdgeist.d.ts","sourceRoot":"","sources":["../../../src/NativeAdgeist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtD,aAAa,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,OAAO,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,oBAAoB,CAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,OAAO,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7C;;AAED,wBAAiE"}
1
+ {"version":3,"file":"NativeAdgeist.d.ts","sourceRoot":"","sources":["../../../src/NativeAdgeist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtD,aAAa,CACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,OAAO,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAE5C,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,OAAO,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,OAAO,EAC1B,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,cAAc,CACZ,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,OAAO,EAC1B,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,UAAU,CACR,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,OAAO,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,OAAO,EAC1B,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnB,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,OAAO,EAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;;AAED,wBAAiE"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"BannerAd.d.ts","sourceRoot":"","sources":["../../../../src/components/BannerAd.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAgBxE;;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,CAgZ5C,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Normalizes a URL to ensure it has a valid protocol
3
+ */
4
+ export declare const normalizeUrl: (url: string) => string;
5
+ //# sourceMappingURL=utilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../src/utilities.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,WASvC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thealteroffice/react-native-adgeist",
3
- "version": "0.0.16",
3
+ "version": "0.0.18",
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",
@@ -143,6 +143,7 @@
143
143
  "source": "src",
144
144
  "output": "lib",
145
145
  "targets": [
146
+ "codegen",
146
147
  [
147
148
  "module",
148
149
  {
@@ -161,9 +162,14 @@
161
162
  "name": "RNAdgeistSpec",
162
163
  "type": "modules",
163
164
  "jsSrcsDir": "src",
165
+ "outputDir": {
166
+ "ios": "ios/generated",
167
+ "android": "android/generated"
168
+ },
164
169
  "android": {
165
170
  "javaPackageName": "com.adgeist"
166
- }
171
+ },
172
+ "includesGeneratedCode": true
167
173
  },
168
174
  "create-react-native-library": {
169
175
  "type": "turbo-module",