@thealteroffice/react-native-adgeist 0.0.6 → 0.0.8

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 CHANGED
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
16
16
  s.source_files = "ios/**/*.{h,m,mm,cpp,swift}"
17
17
  s.private_header_files = "ios/**/*.h"
18
18
 
19
- s.dependency "AdgeistKit", '= 0.0.3'
19
+ s.dependency "AdgeistKit", '= 0.0.4'
20
20
 
21
21
  # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
22
22
  # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
@@ -101,7 +101,7 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
101
101
 
102
102
  dependencies {
103
103
  implementation "com.facebook.react:react-android"
104
- implementation "ai.adgeist:adgeistkit:0.0.6"
104
+ implementation "ai.adgeist:adgeistkit:0.0.7"
105
105
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
106
106
  }
107
107
 
@@ -5,6 +5,8 @@ import com.facebook.react.bridge.ReactApplicationContext
5
5
  import com.facebook.react.bridge.Arguments
6
6
  import com.facebook.react.bridge.WritableMap
7
7
  import com.adgeistkit.AdgeistCore
8
+ import com.adgeistkit.FetchCreative
9
+ import com.adgeistkit.CreativeAnalytics
8
10
  import com.adgeistkit.CreativeDataModel
9
11
  import com.adgeistkit.BidResponseData
10
12
  import com.adgeistkit.SeatBid
@@ -14,33 +16,43 @@ import com.adgeistkit.BidExtension
14
16
 
15
17
  class AdgeistModuleImpl internal constructor(private val context: ReactApplicationContext) {
16
18
 
17
- private val adgeistInstanceFromLibrary = AdgeistCore.initialize(context.applicationContext)
18
- private val getAd = adgeistInstanceFromLibrary.getCreative()
19
- private val postCreativeAnalytic = adgeistInstanceFromLibrary.postCreativeAnalytics()
19
+ private var adgeistInstance: AdgeistCore? = null
20
+ private var getAd: FetchCreative? = null
21
+ private var postCreativeAnalytic: CreativeAnalytics? = null
22
+
23
+ fun initializeSdk(customDomain: String?, promise: Promise) {
24
+ try {
25
+ adgeistInstance = AdgeistCore.initialize(context.applicationContext, customDomain)
26
+ getAd = adgeistInstance?.getCreative()
27
+ postCreativeAnalytic = adgeistInstance?.postCreativeAnalytics()
28
+ promise.resolve("SDK initialized with domain: ${customDomain ?: "default"}")
29
+ } catch (e: Exception) {
30
+ promise.reject("INIT_FAILED", "SDK initialization failed", e)
31
+ }
32
+ }
20
33
 
21
34
  fun fetchCreative(apiKey: String, origin: String, adSpaceId: String, publisherId: String, isTestEnvironment: Boolean, promise: Promise) {
22
- getAd.fetchCreative(apiKey, origin, adSpaceId, publisherId, isTestEnvironment) { adData ->
35
+ getAd?.fetchCreative(apiKey, origin, adSpaceId, publisherId, isTestEnvironment) { adData ->
23
36
  if (adData != null) {
24
37
  promise.resolve(adData.toWritableMap())
25
38
  } else {
26
39
  promise.reject("NO_AD", "Ad data not available")
27
40
  }
28
- }
41
+ } ?: promise.reject("NOT_INITIALIZED", "SDK not initialized")
29
42
  }
30
43
 
31
44
  fun sendCreativeAnalytic(campaignId: String, adSpaceId: String, publisherId: String, eventType: String, origin: String, apiKey: String, bidId: String, isTestEnvironment: Boolean = true, promise: Promise) {
32
- postCreativeAnalytic.sendTrackingData(campaignId, adSpaceId, publisherId, eventType, origin, apiKey, bidId, isTestEnvironment) { adData ->
45
+ postCreativeAnalytic?.sendTrackingData(campaignId, adSpaceId, publisherId, eventType, origin, apiKey, bidId, isTestEnvironment) { adData ->
33
46
  if (adData != null) {
34
47
  promise.resolve(adData)
35
48
  } else {
36
49
  promise.reject("NO_AD", "Couldn't find the campaign to update analytics")
37
50
  }
38
- }
51
+ } ?: promise.reject("NOT_INITIALIZED", "SDK not initialized")
39
52
  }
40
53
 
41
54
  companion object {
42
55
  const val NAME = "Adgeist"
43
-
44
56
  }
45
57
  }
46
58
 
@@ -11,6 +11,10 @@ class AdgeistModule internal constructor(reactContext: ReactApplicationContext)
11
11
 
12
12
  override fun getName(): String = AdgeistModuleImpl.NAME
13
13
 
14
+ override fun initializeSdk(customDomain: String, promise: Promise) {
15
+ implementation.initializeSdk(customDomain, promise)
16
+ }
17
+
14
18
  override fun fetchCreative(apiKey: String, origin: String, adSpaceId: String, publisherId: String, isTestEnvironment: Boolean, promise: Promise) {
15
19
  implementation.fetchCreative(apiKey, origin, adSpaceId, publisherId, isTestEnvironment, promise)
16
20
  }
@@ -13,6 +13,11 @@ class AdgeistModule internal constructor(reactContext: ReactApplicationContext)
13
13
 
14
14
  override fun getName(): String = AdgeistModuleImpl.NAME
15
15
 
16
+ @ReactMethod
17
+ fun initializeSdk(customDomain: String, promise: Promise) {
18
+ implementation.initializeSdk(customDomain, promise)
19
+ }
20
+
16
21
  @ReactMethod
17
22
  fun fetchCreative(apiKey: String, origin: String, adSpaceId: String, publisherId: String, isTestEnvironment: Boolean, promise: Promise) {
18
23
  implementation.fetchCreative(apiKey, origin, adSpaceId, publisherId, isTestEnvironment, promise)
package/ios/Adgeist.mm CHANGED
@@ -20,6 +20,14 @@ RCT_EXPORT_MODULE(Adgeist)
20
20
  return self;
21
21
  }
22
22
 
23
+ RCT_EXPORT_METHOD(initializeSdk:(NSString *)customDomain
24
+ resolve:(RCTPromiseResolveBlock)resolve
25
+ reject:(RCTPromiseRejectBlock)reject)
26
+ {
27
+ [adgeist initializeSdkWithCustomDomain:customDomain
28
+ resolver:resolve
29
+ rejecter:reject];
30
+ }
23
31
 
24
32
  // Exported methods for JS
25
33
  RCT_EXPORT_METHOD(fetchCreative:(NSString *)apiKey
@@ -3,7 +3,25 @@ import AdgeistKit
3
3
  import React
4
4
 
5
5
  @objc public class AdgeistImpl: NSObject {
6
- private static let adGeist = AdgeistCore.shared
6
+ private var adgeistInstance: AdgeistCore?
7
+ private var getAd: FetchCreative?
8
+ private var postCreativeAnalytic: CreativeAnalytics?
9
+
10
+ @objc public func initializeSdk(
11
+ customDomain: String?,
12
+ resolver: @escaping RCTPromiseResolveBlock,
13
+ rejecter: @escaping RCTPromiseRejectBlock
14
+ ) {
15
+ do {
16
+ adgeistInstance = AdgeistCore.initialize(customDomain: customDomain ?? "bg-services-api.adgeist.ai")
17
+ getAd = adgeistInstance?.getCreative()
18
+ postCreativeAnalytic = adgeistInstance?.postCreativeAnalytics()
19
+ resolver("SDK initialized with domain: \(customDomain ?? "default")")
20
+ } catch {
21
+ rejecter("INIT_FAILED", "SDK initialization failed", error)
22
+ }
23
+ }
24
+
7
25
  @objc public func fetchCreative(
8
26
  apiKey: String,
9
27
  origin: String,
@@ -13,7 +31,12 @@ import React
13
31
  resolver: @escaping RCTPromiseResolveBlock,
14
32
  rejecter: @escaping RCTPromiseRejectBlock
15
33
  ) {
16
- AdgeistImpl.adGeist.getCreative().fetchCreative(
34
+ guard let getAd = getAd else {
35
+ rejecter("SDK_NOT_INITIALIZED", "SDK not initialized. Call initializeSdk() first.", nil)
36
+ return
37
+ }
38
+
39
+ getAd.fetchCreative(
17
40
  apiKey: apiKey,
18
41
  origin: origin,
19
42
  adSpaceId: adSpaceId,
@@ -50,7 +73,12 @@ import React
50
73
  resolver: @escaping RCTPromiseResolveBlock,
51
74
  rejecter: @escaping RCTPromiseRejectBlock
52
75
  ) {
53
- AdgeistImpl.adGeist.postCreativeAnalytics().sendTrackingData(
76
+ guard let postCreativeAnalytic = postCreativeAnalytic else {
77
+ rejecter("SDK_NOT_INITIALIZED", "SDK not initialized. Call initializeSdk() first.", nil)
78
+ return
79
+ }
80
+
81
+ postCreativeAnalytic.sendTrackingData(
54
82
  campaignId: campaignId,
55
83
  adSpaceId: adSpaceId,
56
84
  publisherId: publisherId,
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAdgeist.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAsBlD,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;AAuBlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
@@ -1,26 +1,43 @@
1
1
  "use strict";
2
2
 
3
- import React, { createContext, useContext } from 'react';
3
+ import React, { createContext, useContext, useEffect, useState } from 'react';
4
+ import Adgeist from "../NativeAdgeist.js";
4
5
  import { jsx as _jsx } from "react/jsx-runtime";
5
6
  const AdgeistContext = /*#__PURE__*/createContext({
6
7
  publisherId: '',
7
8
  apiKey: '',
8
9
  domain: '',
9
- isTestEnvironment: true
10
+ isTestEnvironment: true,
11
+ isInitialized: false
10
12
  });
11
13
  export const AdgeistProvider = ({
12
14
  children,
13
15
  publisherId = '',
14
16
  apiKey = '',
15
17
  domain = '',
18
+ customAdgeistApiOrigin = 'bg-services-qa-api.adgeist.ai',
16
19
  isTestEnvironment = true
17
20
  }) => {
21
+ const [isInitialized, setIsInitialized] = useState(false);
22
+ useEffect(() => {
23
+ const initializeAdgeist = async () => {
24
+ try {
25
+ await Adgeist.initializeSdk(customAdgeistApiOrigin);
26
+ setIsInitialized(true);
27
+ } catch (error) {
28
+ console.error('Error initializing Adgeist SDK:', error);
29
+ setIsInitialized(false);
30
+ }
31
+ };
32
+ initializeAdgeist();
33
+ }, [customAdgeistApiOrigin]);
18
34
  return /*#__PURE__*/_jsx(AdgeistContext.Provider, {
19
35
  value: {
20
36
  publisherId,
21
37
  apiKey,
22
38
  domain,
23
- isTestEnvironment
39
+ isTestEnvironment,
40
+ isInitialized
24
41
  },
25
42
  children: children
26
43
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useContext","jsx","_jsx","AdgeistContext","publisherId","apiKey","domain","isTestEnvironment","AdgeistProvider","children","Provider","value","useAdgeistContext"],"sourceRoot":"../../../src","sources":["components/AdgeistProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAiBzD,MAAMC,cAAc,gBAAGJ,aAAa,CAAqB;EACvDK,WAAW,EAAE,EAAE;EACfC,MAAM,EAAE,EAAE;EACVC,MAAM,EAAE,EAAE;EACVC,iBAAiB,EAAE;AACrB,CAAC,CAAC;AAEF,OAAO,MAAMC,eAAmD,GAAGA,CAAC;EAClEC,QAAQ;EACRL,WAAW,GAAG,EAAE;EAChBC,MAAM,GAAG,EAAE;EACXC,MAAM,GAAG,EAAE;EACXC,iBAAiB,GAAG;AACtB,CAAC,KAAK;EACJ,oBACEL,IAAA,CAACC,cAAc,CAACO,QAAQ;IACtBC,KAAK,EAAE;MAAEP,WAAW;MAAEC,MAAM;MAAEC,MAAM;MAAEC;IAAkB,CAAE;IAAAE,QAAA,EAEzDA;EAAQ,CACc,CAAC;AAE9B,CAAC;AAED,OAAO,MAAMG,iBAAiB,GAAGA,CAAA,KAAMZ,UAAU,CAACG,cAAc,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useContext","useEffect","useState","Adgeist","jsx","_jsx","AdgeistContext","publisherId","apiKey","domain","isTestEnvironment","isInitialized","AdgeistProvider","children","customAdgeistApiOrigin","setIsInitialized","initializeAdgeist","initializeSdk","error","console","Provider","value","useAdgeistContext"],"sourceRoot":"../../../src","sources":["components/AdgeistProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC7E,OAAOC,OAAO,MAAM,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAmBvC,MAAMC,cAAc,gBAAGP,aAAa,CAAqB;EACvDQ,WAAW,EAAE,EAAE;EACfC,MAAM,EAAE,EAAE;EACVC,MAAM,EAAE,EAAE;EACVC,iBAAiB,EAAE,IAAI;EACvBC,aAAa,EAAE;AACjB,CAAC,CAAC;AAEF,OAAO,MAAMC,eAAmD,GAAGA,CAAC;EAClEC,QAAQ;EACRN,WAAW,GAAG,EAAE;EAChBC,MAAM,GAAG,EAAE;EACXC,MAAM,GAAG,EAAE;EACXK,sBAAsB,GAAG,+BAA+B;EACxDJ,iBAAiB,GAAG;AACtB,CAAC,KAAK;EACJ,MAAM,CAACC,aAAa,EAAEI,gBAAgB,CAAC,GAAGb,QAAQ,CAAC,KAAK,CAAC;EAEzDD,SAAS,CAAC,MAAM;IACd,MAAMe,iBAAiB,GAAG,MAAAA,CAAA,KAAY;MACpC,IAAI;QACF,MAAMb,OAAO,CAACc,aAAa,CAACH,sBAAsB,CAAC;QACnDC,gBAAgB,CAAC,IAAI,CAAC;MACxB,CAAC,CAAC,OAAOG,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,iCAAiC,EAAEA,KAAK,CAAC;QACvDH,gBAAgB,CAAC,KAAK,CAAC;MACzB;IACF,CAAC;IAEDC,iBAAiB,CAAC,CAAC;EACrB,CAAC,EAAE,CAACF,sBAAsB,CAAC,CAAC;EAE5B,oBACET,IAAA,CAACC,cAAc,CAACc,QAAQ;IACtBC,KAAK,EAAE;MAAEd,WAAW;MAAEC,MAAM;MAAEC,MAAM;MAAEC,iBAAiB;MAAEC;IAAc,CAAE;IAAAE,QAAA,EAExEA;EAAQ,CACc,CAAC;AAE9B,CAAC;AAED,OAAO,MAAMS,iBAAiB,GAAGA,CAAA,KAAMtB,UAAU,CAACM,cAAc,CAAC","ignoreList":[]}
@@ -4,13 +4,16 @@ import React, { useEffect, useState } from 'react';
4
4
  import { Dimensions, Image, Linking, StyleSheet, Text, View, TouchableWithoutFeedback, ActivityIndicator } from 'react-native';
5
5
  import Adgeist from "../NativeAdgeist.js";
6
6
  import { useAdgeistContext } from "./AdgeistProvider.js";
7
+ import Video from 'react-native-video';
7
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
9
  export const BannerAd = ({
9
- dataAdSlot
10
+ dataAdSlot,
11
+ dataSlotType = 'banner'
10
12
  }) => {
11
13
  const [adData, setAdData] = useState(null);
12
14
  const [isLoading, setIsLoading] = useState(false);
13
15
  const {
16
+ isInitialized,
14
17
  publisherId,
15
18
  apiKey,
16
19
  domain,
@@ -20,19 +23,21 @@ export const BannerAd = ({
20
23
  useEffect(() => {
21
24
  (async () => {
22
25
  try {
23
- setIsLoading(true);
24
- const response = await Adgeist.fetchCreative(apiKey, domain, dataAdSlot, publisherId, isTestEnvironment);
25
- const creative = response;
26
- setAdData(creative.data);
27
- setIsLoading(false);
28
- if (creative.data.seatBid.length > 0) {
29
- await Adgeist.sendCreativeAnalytic(creative.data.seatBid?.[0]?.bid?.[0]?.id || '', dataAdSlot, publisherId, 'IMPRESSION', domain, apiKey, creative.data.id, isTestEnvironment);
26
+ if (isInitialized) {
27
+ setIsLoading(true);
28
+ const response = await Adgeist.fetchCreative(apiKey, domain, dataAdSlot, publisherId, isTestEnvironment);
29
+ const creative = response;
30
+ setAdData(creative.data);
31
+ setIsLoading(false);
32
+ if (creative.data.seatBid.length > 0) {
33
+ await Adgeist.sendCreativeAnalytic(creative.data.seatBid?.[0]?.bid?.[0]?.id || '', dataAdSlot, publisherId, 'IMPRESSION', domain, apiKey, creative.data.id, isTestEnvironment);
34
+ }
30
35
  }
31
36
  } catch (error) {
32
37
  console.error('Ad load failed:', error);
33
38
  }
34
39
  })();
35
- }, [publisherId, dataAdSlot, apiKey, domain, isTestEnvironment]);
40
+ }, [isInitialized, publisherId, dataAdSlot, apiKey, domain, isTestEnvironment]);
36
41
  const handleClick = async () => {
37
42
  if (adData && adData?.seatBid.length > 0) {
38
43
  await Adgeist.sendCreativeAnalytic(adData?.seatBid?.[0]?.bid?.[0]?.id || '', dataAdSlot, publisherId, 'CLICK', domain, apiKey, adData.id, isTestEnvironment);
@@ -54,7 +59,7 @@ export const BannerAd = ({
54
59
  accessibilityLabel: "Ad Banner",
55
60
  children: /*#__PURE__*/_jsxs(View, {
56
61
  style: styles.adContainer,
57
- children: [/*#__PURE__*/_jsx(Image, {
62
+ children: [dataSlotType == 'banner' ? /*#__PURE__*/_jsx(Image, {
58
63
  style: [styles.creative, {
59
64
  width: '100%',
60
65
  height: 300
@@ -62,6 +67,15 @@ export const BannerAd = ({
62
67
  source: {
63
68
  uri: creativeData.creativeUrl
64
69
  }
70
+ }) : /*#__PURE__*/_jsx(Video, {
71
+ source: {
72
+ uri: creativeData.creativeUrl
73
+ },
74
+ style: {
75
+ width: '100%',
76
+ aspectRatio: 16 / 9,
77
+ height: 300
78
+ }
65
79
  }), /*#__PURE__*/_jsxs(View, {
66
80
  style: styles.adContent,
67
81
  children: [/*#__PURE__*/_jsxs(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","Dimensions","Image","Linking","StyleSheet","Text","View","TouchableWithoutFeedback","ActivityIndicator","Adgeist","useAdgeistContext","jsx","_jsx","jsxs","_jsxs","BannerAd","dataAdSlot","adData","setAdData","isLoading","setIsLoading","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","width","height","source","uri","adContent","contentContainer","title","numberOfLines","ellipsizeMode","creativeTitle","description","creativeDescription","brandName","creativeBrandName","onPress","linkButton","create","get","backgroundColor","borderRadius","alignItems","justifyContent","resizeMode","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,UAAU,EACVC,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;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAkCtD,OAAO,MAAMC,QAAiC,GAAGA,CAAC;EAAEC;AAAW,CAAC,KAAK;EACnE,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGlB,QAAQ,CAAgB,IAAI,CAAC;EACzD,MAAM,CAACmB,SAAS,EAAEC,YAAY,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM;IAAEqB,WAAW;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAkB,CAAC,GACtDd,iBAAiB,CAAC,CAAC;EAErB,MAAMe,YAAY,GAAGR,MAAM,EAAES,OAAO,GAAG,CAAC,CAAC,EAAEC,GAAG,GAAG,CAAC,CAAC,EAAEC,GAAmB;EAExE7B,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAI;QACFqB,YAAY,CAAC,IAAI,CAAC;QAClB,MAAMS,QAAgB,GAAG,MAAMpB,OAAO,CAACqB,aAAa,CAClDR,MAAM,EACNC,MAAM,EACNP,UAAU,EACVK,WAAW,EACXG,iBACF,CAAC;QAED,MAAMO,QAA0B,GAAGF,QAA4B;QAC/DX,SAAS,CAACa,QAAQ,CAACC,IAAI,CAAC;QACxBZ,YAAY,CAAC,KAAK,CAAC;QAEnB,IAAIW,QAAQ,CAACC,IAAI,CAACN,OAAO,CAACO,MAAM,GAAG,CAAC,EAAE;UACpC,MAAMxB,OAAO,CAACyB,oBAAoB,CAChCH,QAAQ,CAACC,IAAI,CAACN,OAAO,GAAG,CAAC,CAAC,EAAEC,GAAG,GAAG,CAAC,CAAC,EAAEQ,EAAE,IAAI,EAAE,EAC9CnB,UAAU,EACVK,WAAW,EACX,YAAY,EACZE,MAAM,EACND,MAAM,EACNS,QAAQ,CAACC,IAAI,CAACG,EAAE,EAChBX,iBACF,CAAC;QACH;MACF,CAAC,CAAC,OAAOY,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,iBAAiB,EAAEA,KAAK,CAAC;MACzC;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACf,WAAW,EAAEL,UAAU,EAAEM,MAAM,EAAEC,MAAM,EAAEC,iBAAiB,CAAC,CAAC;EAEhE,MAAMc,WAAW,GAAG,MAAAA,CAAA,KAAY;IAC9B,IAAIrB,MAAM,IAAIA,MAAM,EAAES,OAAO,CAACO,MAAM,GAAG,CAAC,EAAE;MACxC,MAAMxB,OAAO,CAACyB,oBAAoB,CAChCjB,MAAM,EAAES,OAAO,GAAG,CAAC,CAAC,EAAEC,GAAG,GAAG,CAAC,CAAC,EAAEQ,EAAE,IAAI,EAAE,EACxCnB,UAAU,EACVK,WAAW,EACX,OAAO,EACPE,MAAM,EACND,MAAM,EACNL,MAAM,CAACkB,EAAE,EACTX,iBACF,CAAC;MACDrB,OAAO,CAACoC,OAAO,CAACd,YAAY,CAACe,MAAM,CAAC,CAACC,KAAK,CAAEC,GAAG,IAC7CL,OAAO,CAACD,KAAK,CAAC,qBAAqB,EAAEM,GAAG,CAC1C,CAAC;IACH;EACF,CAAC;EAED,IAAIvB,SAAS,EAAE;IACb,oBACEP,IAAA,CAACN,IAAI;MAACqC,KAAK,EAAEC,MAAM,CAACC,uBAAwB;MAAAC,QAAA,eAC1ClC,IAAA,CAACJ,iBAAiB;QAACuC,IAAI,EAAC,OAAO;QAACC,KAAK,EAAC;MAAS,CAAE;IAAC,CAC9C,CAAC;EAEX;EAEA,IAAI,CAACvB,YAAY,EAAEwB,WAAW,EAAE,OAAO,IAAI;EAE3C,oBACErC,IAAA,CAACL,wBAAwB;IAAC2C,UAAU;IAACC,kBAAkB,EAAC,WAAW;IAAAL,QAAA,eACjEhC,KAAA,CAACR,IAAI;MAACqC,KAAK,EAAEC,MAAM,CAACQ,WAAY;MAAAN,QAAA,gBAC9BlC,IAAA,CAACV,KAAK;QACJyC,KAAK,EAAE,CAACC,MAAM,CAACb,QAAQ,EAAE;UAAEsB,KAAK,EAAE,MAAM;UAAEC,MAAM,EAAE;QAAI,CAAC,CAAE;QACzDC,MAAM,EAAE;UAAEC,GAAG,EAAE/B,YAAY,CAACwB;QAAY;MAAE,CAC3C,CAAC,eACFnC,KAAA,CAACR,IAAI;QAACqC,KAAK,EAAEC,MAAM,CAACa,SAAU;QAAAX,QAAA,gBAC5BhC,KAAA,CAACR,IAAI;UAACqC,KAAK,EAAEC,MAAM,CAACc,gBAAiB;UAAAZ,QAAA,gBACnClC,IAAA,CAACP,IAAI;YAACsC,KAAK,EAAEC,MAAM,CAACe,KAAM;YAACC,aAAa,EAAE,CAAE;YAACC,aAAa,EAAC,MAAM;YAAAf,QAAA,EAC9DrB,YAAY,CAACqC;UAAa,CACvB,CAAC,eAEPlD,IAAA,CAACP,IAAI;YACHsC,KAAK,EAAEC,MAAM,CAACmB,WAAY;YAC1BH,aAAa,EAAE,CAAE;YACjBC,aAAa,EAAC,MAAM;YAAAf,QAAA,EAEnBrB,YAAY,CAACuC;UAAmB,CAC7B,CAAC,eAEPpD,IAAA,CAACP,IAAI;YACHsC,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,eACPtD,IAAA,CAACL,wBAAwB;UACvB4D,OAAO,EAAEA,CAAA,KAAM;YACb7B,WAAW,CAAC,CAAC;UACf,CAAE;UACFY,UAAU;UACVC,kBAAkB,EAAC,mBAAmB;UAAAL,QAAA,eAEtClC,IAAA,CAACV,KAAK;YACJyC,KAAK,EAAE,CAACC,MAAM,CAACwB,UAAU,CAAE;YAC3Bb,MAAM,EAAE;cACNC,GAAG,EAAE;YACP;UAAE,CACH;QAAC,CACsB,CAAC;MAAA,CACvB,CAAC;IAAA,CACH;EAAC,CACiB,CAAC;AAE/B,CAAC;AAED,MAAMZ,MAAM,GAAGxC,UAAU,CAACiE,MAAM,CAAC;EAC/BjB,WAAW,EAAE;IACXC,KAAK,EAAEpD,UAAU,CAACqE,GAAG,CAAC,QAAQ,CAAC,CAACjB,KAAK;IACrCkB,eAAe,EAAE,OAAO;IACxBC,YAAY,EAAE;EAChB,CAAC;EACD3B,uBAAuB,EAAE;IACvBQ,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,GAAG;IACXmB,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACD3C,QAAQ,EAAE;IACR4C,UAAU,EAAE,OAAO;IACnBC,mBAAmB,EAAE,CAAC;IACtBC,oBAAoB,EAAE;EACxB,CAAC;EACDpB,SAAS,EAAE;IACTJ,KAAK,EAAE,MAAM;IACbkB,eAAe,EAAE,OAAO;IACxBO,aAAa,EAAE,KAAK;IACpBJ,cAAc,EAAE,eAAe;IAC/BK,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBP,UAAU,EAAE,QAAQ;IACpBQ,sBAAsB,EAAE,CAAC;IACzBC,uBAAuB,EAAE;EAC3B,CAAC;EACDxB,gBAAgB,EAAE;IAChBL,KAAK,EAAEpD,UAAU,CAACqE,GAAG,CAAC,QAAQ,CAAC,CAACjB,KAAK,GAAG;EAC1C,CAAC;EACDM,KAAK,EAAE;IACLX,KAAK,EAAE,OAAO;IACdmC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDrB,WAAW,EAAE;IACXf,KAAK,EAAE,OAAO;IACdmC,QAAQ,EAAE;EACZ,CAAC;EACDlB,SAAS,EAAE;IACTjB,KAAK,EAAE,OAAO;IACdmC,QAAQ,EAAE,EAAE;IACZE,OAAO,EAAE,GAAG;IACZC,SAAS,EAAE,CAAC;IACZF,UAAU,EAAE;EACd,CAAC;EACDhB,UAAU,EAAE;IACVf,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","Dimensions","Image","Linking","StyleSheet","Text","View","TouchableWithoutFeedback","ActivityIndicator","Adgeist","useAdgeistContext","Video","jsx","_jsx","jsxs","_jsxs","BannerAd","dataAdSlot","dataSlotType","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","width","height","source","uri","aspectRatio","adContent","contentContainer","title","numberOfLines","ellipsizeMode","creativeTitle","description","creativeDescription","brandName","creativeBrandName","onPress","linkButton","create","get","backgroundColor","borderRadius","alignItems","justifyContent","resizeMode","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,UAAU,EACVC,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;AAmCvC,OAAO,MAAMC,QAAiC,GAAGA,CAAC;EAChDC,UAAU;EACVC,YAAY,GAAG;AACjB,CAAC,KAAK;EACJ,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGpB,QAAQ,CAAgB,IAAI,CAAC;EACzD,MAAM,CAACqB,SAAS,EAAEC,YAAY,CAAC,GAAGtB,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM;IAAEuB,aAAa;IAAEC,WAAW;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAkB,CAAC,GACrEjB,iBAAiB,CAAC,CAAC;EAErB,MAAMkB,YAAY,GAAGT,MAAM,EAAEU,OAAO,GAAG,CAAC,CAAC,EAAEC,GAAG,GAAG,CAAC,CAAC,EAAEC,GAAmB;EAExEhC,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAI;QACF,IAAIwB,aAAa,EAAE;UACjBD,YAAY,CAAC,IAAI,CAAC;UAClB,MAAMU,QAAgB,GAAG,MAAMvB,OAAO,CAACwB,aAAa,CAClDR,MAAM,EACNC,MAAM,EACNT,UAAU,EACVO,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,MAAM3B,OAAO,CAAC4B,oBAAoB,CAChCH,QAAQ,CAACC,IAAI,CAACN,OAAO,GAAG,CAAC,CAAC,EAAEC,GAAG,GAAG,CAAC,CAAC,EAAEQ,EAAE,IAAI,EAAE,EAC9CrB,UAAU,EACVO,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,EACXP,UAAU,EACVQ,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,MAAM3B,OAAO,CAAC4B,oBAAoB,CAChClB,MAAM,EAAEU,OAAO,GAAG,CAAC,CAAC,EAAEC,GAAG,GAAG,CAAC,CAAC,EAAEQ,EAAE,IAAI,EAAE,EACxCrB,UAAU,EACVO,WAAW,EACX,OAAO,EACPE,MAAM,EACND,MAAM,EACNN,MAAM,CAACmB,EAAE,EACTX,iBACF,CAAC;MACDxB,OAAO,CAACuC,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,oBACER,IAAA,CAACP,IAAI;MAACwC,KAAK,EAAEC,MAAM,CAACC,uBAAwB;MAAAC,QAAA,eAC1CpC,IAAA,CAACL,iBAAiB;QAAC0C,IAAI,EAAC,OAAO;QAACC,KAAK,EAAC;MAAS,CAAE;IAAC,CAC9C,CAAC;EAEX;EAEA,IAAI,CAACvB,YAAY,EAAEwB,WAAW,EAAE,OAAO,IAAI;EAE3C,oBACEvC,IAAA,CAACN,wBAAwB;IAAC8C,UAAU;IAACC,kBAAkB,EAAC,WAAW;IAAAL,QAAA,eACjElC,KAAA,CAACT,IAAI;MAACwC,KAAK,EAAEC,MAAM,CAACQ,WAAY;MAAAN,QAAA,GAC7B/B,YAAY,IAAI,QAAQ,gBACvBL,IAAA,CAACX,KAAK;QACJ4C,KAAK,EAAE,CAACC,MAAM,CAACb,QAAQ,EAAE;UAAEsB,KAAK,EAAE,MAAM;UAAEC,MAAM,EAAE;QAAI,CAAC,CAAE;QACzDC,MAAM,EAAE;UAAEC,GAAG,EAAE/B,YAAY,CAACwB;QAAY;MAAE,CAC3C,CAAC,gBAEFvC,IAAA,CAACF,KAAK;QACJ+C,MAAM,EAAE;UAAEC,GAAG,EAAE/B,YAAY,CAACwB;QAAY,CAAE;QAC1CN,KAAK,EAAE;UAAEU,KAAK,EAAE,MAAM;UAAEI,WAAW,EAAE,EAAE,GAAG,CAAC;UAAEH,MAAM,EAAE;QAAI;MAAE,CAC5D,CACF,eAED1C,KAAA,CAACT,IAAI;QAACwC,KAAK,EAAEC,MAAM,CAACc,SAAU;QAAAZ,QAAA,gBAC5BlC,KAAA,CAACT,IAAI;UAACwC,KAAK,EAAEC,MAAM,CAACe,gBAAiB;UAAAb,QAAA,gBACnCpC,IAAA,CAACR,IAAI;YAACyC,KAAK,EAAEC,MAAM,CAACgB,KAAM;YAACC,aAAa,EAAE,CAAE;YAACC,aAAa,EAAC,MAAM;YAAAhB,QAAA,EAC9DrB,YAAY,CAACsC;UAAa,CACvB,CAAC,eAEPrD,IAAA,CAACR,IAAI;YACHyC,KAAK,EAAEC,MAAM,CAACoB,WAAY;YAC1BH,aAAa,EAAE,CAAE;YACjBC,aAAa,EAAC,MAAM;YAAAhB,QAAA,EAEnBrB,YAAY,CAACwC;UAAmB,CAC7B,CAAC,eAEPvD,IAAA,CAACR,IAAI;YACHyC,KAAK,EAAEC,MAAM,CAACsB,SAAU;YACxBL,aAAa,EAAE,CAAE;YACjBC,aAAa,EAAC,MAAM;YAAAhB,QAAA,EAEnBrB,YAAY,EAAE0C,iBAAiB,IAAI;UAAY,CAC5C,CAAC;QAAA,CACH,CAAC,eACPzD,IAAA,CAACN,wBAAwB;UACvBgE,OAAO,EAAEA,CAAA,KAAM;YACb9B,WAAW,CAAC,CAAC;UACf,CAAE;UACFY,UAAU;UACVC,kBAAkB,EAAC,mBAAmB;UAAAL,QAAA,eAEtCpC,IAAA,CAACX,KAAK;YACJ4C,KAAK,EAAE,CAACC,MAAM,CAACyB,UAAU,CAAE;YAC3Bd,MAAM,EAAE;cACNC,GAAG,EAAE;YACP;UAAE,CACH;QAAC,CACsB,CAAC;MAAA,CACvB,CAAC;IAAA,CACH;EAAC,CACiB,CAAC;AAE/B,CAAC;AAED,MAAMZ,MAAM,GAAG3C,UAAU,CAACqE,MAAM,CAAC;EAC/BlB,WAAW,EAAE;IACXC,KAAK,EAAEvD,UAAU,CAACyE,GAAG,CAAC,QAAQ,CAAC,CAAClB,KAAK;IACrCmB,eAAe,EAAE,OAAO;IACxBC,YAAY,EAAE;EAChB,CAAC;EACD5B,uBAAuB,EAAE;IACvBQ,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,GAAG;IACXoB,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACD5C,QAAQ,EAAE;IACR6C,UAAU,EAAE,OAAO;IACnBC,mBAAmB,EAAE,CAAC;IACtBC,oBAAoB,EAAE;EACxB,CAAC;EACDpB,SAAS,EAAE;IACTL,KAAK,EAAE,MAAM;IACbmB,eAAe,EAAE,OAAO;IACxBO,aAAa,EAAE,KAAK;IACpBJ,cAAc,EAAE,eAAe;IAC/BK,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBP,UAAU,EAAE,QAAQ;IACpBQ,sBAAsB,EAAE,CAAC;IACzBC,uBAAuB,EAAE;EAC3B,CAAC;EACDxB,gBAAgB,EAAE;IAChBN,KAAK,EAAEvD,UAAU,CAACyE,GAAG,CAAC,QAAQ,CAAC,CAAClB,KAAK,GAAG;EAC1C,CAAC;EACDO,KAAK,EAAE;IACLZ,KAAK,EAAE,OAAO;IACdoC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDrB,WAAW,EAAE;IACXhB,KAAK,EAAE,OAAO;IACdoC,QAAQ,EAAE;EACZ,CAAC;EACDlB,SAAS,EAAE;IACTlB,KAAK,EAAE,OAAO;IACdoC,QAAQ,EAAE,EAAE;IACZE,OAAO,EAAE,GAAG;IACZC,SAAS,EAAE,CAAC;IACZF,UAAU,EAAE;EACd,CAAC;EACDhB,UAAU,EAAE;IACVhB,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import type { TurboModule } from 'react-native';
2
2
  export interface Spec extends TurboModule {
3
+ initializeSdk(customDomain: string): Promise<boolean>;
3
4
  fetchCreative(apiKey: string, origin: string, adSpaceId: string, publisherId: string, isTestEnvironment: boolean): Promise<Object>;
4
5
  sendCreativeAnalytic(campaignId: string, adSpaceId: string, publisherId: string, eventType: string, origin: string, apiKey: string, bidId: string, isTestEnvironment: boolean): Promise<Object>;
5
6
  }
@@ -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,IAAK,SAAQ,WAAW;IACvC,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;IACnB,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;CACpB;;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,IAAK,SAAQ,WAAW;IACvC,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,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;IACnB,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;CACpB;;AAED,wBAAiE"}
@@ -4,9 +4,11 @@ interface AdgeistContextType {
4
4
  apiKey: string;
5
5
  domain: string;
6
6
  isTestEnvironment: boolean;
7
+ isInitialized: boolean;
7
8
  }
8
9
  interface AdgeistProviderPropsType {
9
10
  children: React.ReactNode;
11
+ customAdgeistApiOrigin?: string;
10
12
  publisherId: string;
11
13
  apiKey: string;
12
14
  domain: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AdgeistProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/AdgeistProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,UAAU,kBAAkB;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,UAAU,wBAAwB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AASD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAc9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,0BAAmC,CAAC"}
1
+ {"version":3,"file":"AdgeistProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/AdgeistProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAG9E,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;CACxB;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;AAUD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA+B9D,CAAC;AAEF,eAAO,MAAM,iBAAiB,0BAAmC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  interface AdBannerTypes {
3
3
  dataAdSlot: string;
4
+ dataSlotType: 'banner' | 'video';
4
5
  width: number;
5
6
  height: number;
6
7
  }
@@ -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,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqH5C,CAAC"}
1
+ {"version":3,"file":"BannerAd.d.ts","sourceRoot":"","sources":["../../../../src/components/BannerAd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAyCnD,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,QAAQ,GAAG,OAAO,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAyI5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thealteroffice/react-native-adgeist",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
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",
@@ -167,5 +167,8 @@
167
167
  "type": "turbo-module",
168
168
  "languages": "kotlin-objc",
169
169
  "version": "0.49.8"
170
+ },
171
+ "dependencies": {
172
+ "react-native-video": "^6.16.0"
170
173
  }
171
174
  }
@@ -2,6 +2,7 @@ import type { TurboModule } from 'react-native';
2
2
  import { TurboModuleRegistry } from 'react-native';
3
3
 
4
4
  export interface Spec extends TurboModule {
5
+ initializeSdk(customDomain: string): Promise<boolean>;
5
6
  fetchCreative(
6
7
  apiKey: string,
7
8
  origin: string,
@@ -1,14 +1,17 @@
1
- import React, { createContext, useContext } from 'react';
1
+ import React, { createContext, useContext, useEffect, useState } from 'react';
2
+ import Adgeist from '../NativeAdgeist';
2
3
 
3
4
  interface AdgeistContextType {
4
5
  publisherId: string;
5
6
  apiKey: string;
6
7
  domain: string;
7
8
  isTestEnvironment: boolean;
9
+ isInitialized: boolean;
8
10
  }
9
11
 
10
12
  interface AdgeistProviderPropsType {
11
13
  children: React.ReactNode;
14
+ customAdgeistApiOrigin?: string;
12
15
  publisherId: string;
13
16
  apiKey: string;
14
17
  domain: string;
@@ -20,6 +23,7 @@ const AdgeistContext = createContext<AdgeistContextType>({
20
23
  apiKey: '',
21
24
  domain: '',
22
25
  isTestEnvironment: true,
26
+ isInitialized: false,
23
27
  });
24
28
 
25
29
  export const AdgeistProvider: React.FC<AdgeistProviderPropsType> = ({
@@ -27,11 +31,28 @@ export const AdgeistProvider: React.FC<AdgeistProviderPropsType> = ({
27
31
  publisherId = '',
28
32
  apiKey = '',
29
33
  domain = '',
34
+ customAdgeistApiOrigin = 'bg-services-qa-api.adgeist.ai',
30
35
  isTestEnvironment = true,
31
36
  }) => {
37
+ const [isInitialized, setIsInitialized] = useState(false);
38
+
39
+ useEffect(() => {
40
+ const initializeAdgeist = async () => {
41
+ try {
42
+ await Adgeist.initializeSdk(customAdgeistApiOrigin);
43
+ setIsInitialized(true);
44
+ } catch (error) {
45
+ console.error('Error initializing Adgeist SDK:', error);
46
+ setIsInitialized(false);
47
+ }
48
+ };
49
+
50
+ initializeAdgeist();
51
+ }, [customAdgeistApiOrigin]);
52
+
32
53
  return (
33
54
  <AdgeistContext.Provider
34
- value={{ publisherId, apiKey, domain, isTestEnvironment }}
55
+ value={{ publisherId, apiKey, domain, isTestEnvironment, isInitialized }}
35
56
  >
36
57
  {children}
37
58
  </AdgeistContext.Provider>
@@ -11,6 +11,7 @@ import {
11
11
  } from 'react-native';
12
12
  import Adgeist from '../NativeAdgeist';
13
13
  import { useAdgeistContext } from './AdgeistProvider';
14
+ import Video from 'react-native-video';
14
15
 
15
16
  interface AdData {
16
17
  id: string;
@@ -40,14 +41,18 @@ interface BidExtension {
40
41
  }
41
42
  interface AdBannerTypes {
42
43
  dataAdSlot: string;
44
+ dataSlotType: 'banner' | 'video';
43
45
  width: number;
44
46
  height: number;
45
47
  }
46
48
 
47
- export const BannerAd: React.FC<AdBannerTypes> = ({ dataAdSlot }) => {
49
+ export const BannerAd: React.FC<AdBannerTypes> = ({
50
+ dataAdSlot,
51
+ dataSlotType = 'banner',
52
+ }) => {
48
53
  const [adData, setAdData] = useState<AdData | null>(null);
49
54
  const [isLoading, setIsLoading] = useState(false);
50
- const { publisherId, apiKey, domain, isTestEnvironment } =
55
+ const { isInitialized, publisherId, apiKey, domain, isTestEnvironment } =
51
56
  useAdgeistContext();
52
57
 
53
58
  const creativeData = adData?.seatBid?.[0]?.bid?.[0]?.ext as BidExtension;
@@ -55,36 +60,45 @@ export const BannerAd: React.FC<AdBannerTypes> = ({ dataAdSlot }) => {
55
60
  useEffect(() => {
56
61
  (async () => {
57
62
  try {
58
- setIsLoading(true);
59
- const response: Object = await Adgeist.fetchCreative(
60
- apiKey,
61
- domain,
62
- dataAdSlot,
63
- publisherId,
64
- isTestEnvironment
65
- );
66
-
67
- const creative: { data: AdData } = response as { data: AdData };
68
- setAdData(creative.data);
69
- setIsLoading(false);
70
-
71
- if (creative.data.seatBid.length > 0) {
72
- await Adgeist.sendCreativeAnalytic(
73
- creative.data.seatBid?.[0]?.bid?.[0]?.id || '',
63
+ if (isInitialized) {
64
+ setIsLoading(true);
65
+ const response: Object = await Adgeist.fetchCreative(
66
+ apiKey,
67
+ domain,
74
68
  dataAdSlot,
75
69
  publisherId,
76
- 'IMPRESSION',
77
- domain,
78
- apiKey,
79
- creative.data.id,
80
70
  isTestEnvironment
81
71
  );
72
+
73
+ const creative: { data: AdData } = response as { data: AdData };
74
+ setAdData(creative.data);
75
+ setIsLoading(false);
76
+
77
+ if (creative.data.seatBid.length > 0) {
78
+ await Adgeist.sendCreativeAnalytic(
79
+ creative.data.seatBid?.[0]?.bid?.[0]?.id || '',
80
+ dataAdSlot,
81
+ publisherId,
82
+ 'IMPRESSION',
83
+ domain,
84
+ apiKey,
85
+ creative.data.id,
86
+ isTestEnvironment
87
+ );
88
+ }
82
89
  }
83
90
  } catch (error) {
84
91
  console.error('Ad load failed:', error);
85
92
  }
86
93
  })();
87
- }, [publisherId, dataAdSlot, apiKey, domain, isTestEnvironment]);
94
+ }, [
95
+ isInitialized,
96
+ publisherId,
97
+ dataAdSlot,
98
+ apiKey,
99
+ domain,
100
+ isTestEnvironment,
101
+ ]);
88
102
 
89
103
  const handleClick = async () => {
90
104
  if (adData && adData?.seatBid.length > 0) {
@@ -117,10 +131,18 @@ export const BannerAd: React.FC<AdBannerTypes> = ({ dataAdSlot }) => {
117
131
  return (
118
132
  <TouchableWithoutFeedback accessible accessibilityLabel="Ad Banner">
119
133
  <View style={styles.adContainer}>
120
- <Image
121
- style={[styles.creative, { width: '100%', height: 300 }]}
122
- source={{ uri: creativeData.creativeUrl }}
123
- />
134
+ {dataSlotType == 'banner' ? (
135
+ <Image
136
+ style={[styles.creative, { width: '100%', height: 300 }]}
137
+ source={{ uri: creativeData.creativeUrl }}
138
+ />
139
+ ) : (
140
+ <Video
141
+ source={{ uri: creativeData.creativeUrl }}
142
+ style={{ width: '100%', aspectRatio: 16 / 9, height: 300 }}
143
+ />
144
+ )}
145
+
124
146
  <View style={styles.adContent}>
125
147
  <View style={styles.contentContainer}>
126
148
  <Text style={styles.title} numberOfLines={1} ellipsizeMode="tail">