@thealteroffice/react-native-adgeist 0.0.35-beta → 0.0.37-beta

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 (37) hide show
  1. package/Adgeist.podspec +7 -4
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/adgeist/components/HTML5AdViewManagerImpl.kt +43 -42
  4. package/ios/AdgeistImpl.swift +11 -130
  5. package/ios/Frameworks/AdgeistKit.xcframework/Info.plist +44 -0
  6. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/AdgeistKit +0 -0
  7. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Headers/AdgeistKit.h +11 -0
  8. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Info.plist +0 -0
  9. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios.abi.json +2429 -0
  10. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios.private.swiftinterface +66 -0
  11. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  12. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios.swiftinterface +66 -0
  13. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/Modules/module.modulemap +6 -0
  14. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/PrivacyInfo.xcprivacy +46 -0
  15. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/ad_view.html +57 -0
  16. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64/AdgeistKit.framework/adcard-beta.js +556 -0
  17. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/AdgeistKit +0 -0
  18. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Headers/AdgeistKit.h +11 -0
  19. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Info.plist +0 -0
  20. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios-simulator.abi.json +2429 -0
  21. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +66 -0
  22. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  23. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +66 -0
  24. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/x86_64-apple-ios-simulator.abi.json +2429 -0
  25. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +66 -0
  26. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  27. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/AdgeistKit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +66 -0
  28. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/Modules/module.modulemap +6 -0
  29. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/PrivacyInfo.xcprivacy +46 -0
  30. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/ad_view.html +57 -0
  31. package/ios/Frameworks/AdgeistKit.xcframework/ios-arm64_x86_64-simulator/AdgeistKit.framework/adcard-beta.js +556 -0
  32. package/ios/NativeHTML5AdManager.mm +34 -9
  33. package/ios/NativeHTML5AdView.swift +48 -107
  34. package/lib/module/constants.js +1 -1
  35. package/lib/typescript/src/constants.d.ts +1 -1
  36. package/package.json +9 -2
  37. package/src/constants.ts +1 -1
package/Adgeist.podspec CHANGED
@@ -10,13 +10,16 @@ Pod::Spec.new do |s|
10
10
  s.license = package["license"]
11
11
  s.authors = package["author"]
12
12
 
13
- s.platforms = { :ios => min_ios_version_supported }
13
+ s.platforms = { :ios => "15.6" }
14
14
  s.source = { :git => "https://github.com/the-alter-office/react-native-adgeist.git", :tag => "#{s.version}" }
15
15
 
16
- s.source_files = "ios/**/*.{h,m,mm,cpp,swift}"
17
- s.private_header_files = "ios/**/*.h"
16
+ s.source_files = "ios/*.{h,m,mm,cpp,swift}"
17
+ s.private_header_files = "ios/*.h"
18
18
 
19
- s.dependency "AdgeistKit", '= 1.0.16-beta'
19
+ unless File.exist?(File.join(__dir__, "ios/Frameworks/AdgeistKit.xcframework/Info.plist"))
20
+ raise Pod::Informative, "AdgeistKit.xcframework is missing. Run `yarn fetch-adgeistkit` in react-native-adgeist."
21
+ end
22
+ s.vendored_frameworks = "ios/Frameworks/AdgeistKit.xcframework"
20
23
 
21
24
  # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
22
25
  # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
@@ -104,7 +104,7 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
104
104
 
105
105
  dependencies {
106
106
  implementation "com.facebook.react:react-android"
107
- implementation "ai.adgeist:adgeistkit:1.1.34-beta"
107
+ implementation "ai.adgeist:adgeistkit:1.1.35-beta"
108
108
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
109
109
  }
110
110
 
@@ -36,6 +36,7 @@ object HTML5AdViewManagerImpl {
36
36
  // here; RN drives teardown via onDropViewInstance instead
37
37
  adView.watchFragmentLifecycle = false
38
38
  adView.isFrameworkHosted = true
39
+ adView.setAdListener(createAdListener(adView))
39
40
  viewContextMap[System.identityHashCode(adView)] = reactContext
40
41
  Log.d(TAG, "AdView created with hash: ${System.identityHashCode(adView)} and context hash: ${reactContext.hashCode()}")
41
42
  return adView
@@ -76,53 +77,53 @@ object HTML5AdViewManagerImpl {
76
77
  }
77
78
 
78
79
  @OptIn(AdgeistEmbedderApi::class)
80
+ private fun createAdListener(view: AdView): AdListener = object : AdListener() {
81
+ override fun onAdLoaded() {
82
+ view.post {
83
+ sendEvent(view, EVENT_AD_LOADED, Arguments.createMap())
84
+ }
85
+ }
86
+
87
+ override fun onAdFailedToLoad(error: String) {
88
+ val event = Arguments.createMap().apply {
89
+ putString("error", error)
90
+ }
91
+ sendEvent(view, EVENT_AD_FAILED_TO_LOAD, event)
92
+ }
93
+
94
+ override fun onAdOpened() {
95
+ sendEvent(view, EVENT_AD_OPENED, Arguments.createMap())
96
+ }
97
+
98
+ override fun onAdClosed() {
99
+ sendEvent(view, EVENT_AD_CLOSED, Arguments.createMap())
100
+ }
101
+
102
+ override fun onAdClicked() {
103
+ sendEvent(view, EVENT_AD_CLICKED, Arguments.createMap())
104
+ }
105
+
106
+ override fun onAdWarning(warning: String) {
107
+ val event = Arguments.createMap().apply {
108
+ putString("warning", warning)
109
+ }
110
+ sendEvent(view, EVENT_AD_WARNING, event)
111
+ }
112
+
113
+ override fun onAdSizeResolved(adSize: AdSize) {
114
+ val event = Arguments.createMap().apply {
115
+ putDouble("width", adSize.width.toDouble())
116
+ putDouble("height", adSize.height.toDouble())
117
+ }
118
+ sendEvent(view, EVENT_AD_SIZE_CHANGED, event)
119
+ }
120
+ }
121
+
79
122
  @RequiresPermission("android.permission.INTERNET")
80
123
  fun loadAd(view: AdView) {
81
124
  try {
82
125
  val adRequest = AdRequest.Builder().build()
83
126
 
84
- view.setAdListener(object : AdListener() {
85
- override fun onAdLoaded() {
86
- view.post {
87
- sendEvent(view, EVENT_AD_LOADED, Arguments.createMap())
88
- }
89
- }
90
-
91
- override fun onAdFailedToLoad(error: String) {
92
- val event = Arguments.createMap().apply {
93
- putString("error", error)
94
- }
95
- sendEvent(view, EVENT_AD_FAILED_TO_LOAD, event)
96
- }
97
-
98
- override fun onAdOpened() {
99
- sendEvent(view, EVENT_AD_OPENED, Arguments.createMap())
100
- }
101
-
102
- override fun onAdClosed() {
103
- sendEvent(view, EVENT_AD_CLOSED, Arguments.createMap())
104
- }
105
-
106
- override fun onAdClicked() {
107
- sendEvent(view, EVENT_AD_CLICKED, Arguments.createMap())
108
- }
109
-
110
- override fun onAdWarning(warning: String) {
111
- val event = Arguments.createMap().apply {
112
- putString("warning", warning)
113
- }
114
- sendEvent(view, EVENT_AD_WARNING, event)
115
- }
116
-
117
- override fun onAdSizeResolved(adSize: AdSize) {
118
- val event = Arguments.createMap().apply {
119
- putDouble("width", adSize.width.toDouble())
120
- putDouble("height", adSize.height.toDouble())
121
- }
122
- sendEvent(view, EVENT_AD_SIZE_CHANGED, event)
123
- }
124
- })
125
-
126
127
  view.loadAd(adRequest)
127
128
  } catch (e: Exception) {
128
129
  val event = Arguments.createMap().apply {
@@ -1,12 +1,10 @@
1
1
  import Foundation
2
2
  import AdgeistKit
3
+ import AppTrackingTransparency
3
4
  import React
4
5
 
5
6
  @objc public class AdgeistImpl: NSObject {
6
- private var adgeistInstance: AdgeistCore?
7
- private var getAd: FetchCreative?
8
- private var postCreativeAnalytic: CreativeAnalytics?
9
-
7
+
10
8
  @objc public func initializeSdk(
11
9
  customBidRequestBackendDomain: String?,
12
10
  customPackageOrBundleID: String?,
@@ -15,24 +13,14 @@ import React
15
13
  resolver: @escaping RCTPromiseResolveBlock,
16
14
  rejecter: @escaping RCTPromiseRejectBlock
17
15
  ) {
18
- do {
19
- adgeistInstance = AdgeistCore.initialize(customBidRequestBackendDomain: customBidRequestBackendDomain,
20
- customPackageOrBundleID: customPackageOrBundleID,
21
- customAdgeistAppID: customAdgeistAppID,
22
- customVersioning: customVersioning)
23
- getAd = adgeistInstance?.getCreative()
24
- postCreativeAnalytic = adgeistInstance?.postCreativeAnalytics()
25
- resolver("SDK initialized with domain: \(customBidRequestBackendDomain ?? "default")")
26
- } catch {
27
- rejecter("INIT_FAILED", "SDK initialization failed", error)
28
- }
16
+ AdgeistCore.shared.initialize()
17
+ resolver("SDK initialized")
29
18
  }
30
19
 
31
20
  @objc public func destroySdk(
32
21
  resolver: @escaping RCTPromiseResolveBlock,
33
22
  rejecter: @escaping RCTPromiseRejectBlock
34
23
  ) {
35
- AdgeistCore.destroy()
36
24
  resolver("SDK destroyed")
37
25
  }
38
26
 
@@ -42,90 +30,18 @@ import React
42
30
  resolver: @escaping RCTPromiseResolveBlock,
43
31
  rejecter: @escaping RCTPromiseRejectBlock
44
32
  ) {
45
- guard let getAd = getAd else {
46
- rejecter("SDK_NOT_INITIALIZED", "SDK not initialized. Call initializeSdk() first.", nil)
47
- return
48
- }
49
-
50
- getAd.fetchCreative(
51
- adUnitID: adSpaceId,
52
- buyType: buyType
53
- ) { adData in
54
- // Check if the request was successful
55
- if adData.isSuccess, let creativeData = adData.data {
56
- var result: [String: Any] = [:]
57
-
58
- // Use Mirror to reflect the object's properties
59
- let mirror = Mirror(reflecting: creativeData)
60
- for child in mirror.children {
61
- if let label = child.label {
62
- result[label] = child.value
63
- }
64
- }
65
-
66
- resolver(result)
67
- } else {
68
- // Return error from AdData
69
- rejecter("AD_ERROR", adData.errorMessage, nil)
70
- }
71
- }
72
- }
73
-
74
-
75
- @objc public func setUserDetails(_ userDetailsDict: [String: Any]) {
76
- let filtered = userDetailsDict.compactMapValues { value -> Any? in
77
- (value is NSNull) ? nil : value
78
- }
79
-
80
- let userDetails = UserDetails(
81
- userId: userDetailsDict["userId"] as? String,
82
- userName: userDetailsDict["userName"] as? String,
83
- email: userDetailsDict["email"] as? String,
84
- phone: userDetailsDict["phone"] as? String
85
- )
86
- adgeistInstance?.setUserDetails(userDetails)
33
+ rejecter("NOT_SUPPORTED", "fetchCreative is not supported on iOS", nil)
87
34
  }
88
35
 
36
+ @objc public func setUserDetails(_ userDetailsDict: [String: Any]) {}
89
37
 
90
38
  @objc public func getConsentStatus(resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
91
- guard let adgeistInstance = adgeistInstance else {
92
- rejecter("SDK_NOT_INITIALIZED", "SDK not initialized. Call initializeSdk() first.", nil)
93
- return
94
- }
95
- let status = adgeistInstance.getConsentStatus()
96
- resolver(status)
97
- }
98
-
99
- @objc public func updateConsentStatus(_ consent: Bool) {
100
- adgeistInstance?.updateConsentStatus(consent)
39
+ resolver(ATTrackingManager.trackingAuthorizationStatus == .authorized)
101
40
  }
102
41
 
103
- @objc public func logEvent(eventDict: [String: Any]) {
104
- let filtered = eventDict.compactMapValues { value -> Any? in
105
- (value is NSNull) ? nil : value
106
- }
107
-
108
- guard let eventType = filtered["eventType"] as? String, !eventType.isEmpty else {
109
- print("Event must have a non-empty eventType")
110
- return
111
- }
42
+ @objc public func updateConsentStatus(_ consent: Bool) {}
112
43
 
113
- let eventProps = (filtered["eventProperties"] as? [String: Any])?.compactMapValues { value -> Any? in
114
- (value is NSNull) ? nil : value
115
- } ?? [:]
116
-
117
- let event = Event(eventType: eventType, eventProperties: eventProps)
118
- adgeistInstance?.logEvent(event)
119
- }
120
-
121
- public func sendCreativeAnalytics(
122
- analyticsRequest: AnalyticsRequest,
123
- resolver: @escaping RCTPromiseResolveBlock,
124
- rejecter: @escaping RCTPromiseRejectBlock
125
- ) {
126
- postCreativeAnalytic?.sendTrackingDataV2(analyticsRequest: analyticsRequest)
127
- resolver("Event sent successfully")
128
- }
44
+ @objc public func logEvent(eventDict: [String: Any]) {}
129
45
 
130
46
  @objc public func trackImpression(
131
47
  campaignId: String,
@@ -137,7 +53,6 @@ import React
137
53
  resolver: @escaping RCTPromiseResolveBlock,
138
54
  rejecter: @escaping RCTPromiseRejectBlock
139
55
  ) {
140
- // Not supported by AdgeistKit iOS anymore; kept for JS API compatibility
141
56
  resolver("trackImpression is not supported on iOS")
142
57
  }
143
58
 
@@ -154,14 +69,7 @@ import React
154
69
  resolver: @escaping RCTPromiseResolveBlock,
155
70
  rejecter: @escaping RCTPromiseRejectBlock
156
71
  ) {
157
- let request = AnalyticsRequest.AnalyticsRequestBuilder(metaData: bidMeta)
158
- .trackViewableImpression(
159
- timeToVisible: Int64(timeToVisible),
160
- scrollDepth: scrollDepth,
161
- visibilityRatio: visibilityRatio,
162
- viewTime: Int64(viewTime)
163
- ).build()
164
- sendCreativeAnalytics(analyticsRequest: request, resolver: resolver, rejecter: rejecter)
72
+ resolver("trackView is not supported on iOS")
165
73
  }
166
74
 
167
75
  @objc public func trackTotalView(
@@ -175,7 +83,6 @@ import React
175
83
  resolver: @escaping RCTPromiseResolveBlock,
176
84
  rejecter: @escaping RCTPromiseRejectBlock
177
85
  ) {
178
- // Not supported by AdgeistKit iOS anymore; kept for JS API compatibility
179
86
  resolver("trackTotalView is not supported on iOS")
180
87
  }
181
88
 
@@ -188,9 +95,7 @@ import React
188
95
  resolver: @escaping RCTPromiseResolveBlock,
189
96
  rejecter: @escaping RCTPromiseRejectBlock
190
97
  ) {
191
- let request = AnalyticsRequest.AnalyticsRequestBuilder(metaData: bidMeta)
192
- .trackClick().build()
193
- sendCreativeAnalytics(analyticsRequest: request, resolver: resolver, rejecter: rejecter)
98
+ resolver("trackClick is not supported on iOS")
194
99
  }
195
100
 
196
101
  @objc public func trackVideoPlayback(
@@ -203,33 +108,9 @@ import React
203
108
  resolver: @escaping RCTPromiseResolveBlock,
204
109
  rejecter: @escaping RCTPromiseRejectBlock
205
110
  ) {
206
- // Not supported by AdgeistKit iOS anymore; kept for JS API compatibility
207
111
  resolver("trackVideoPlayback is not supported on iOS")
208
112
  }
209
113
 
210
- // @objc public func trackVideoQuartile(
211
- // campaignId: String,
212
- // adSpaceId: String,
213
- // bidId: String,
214
- // bidMeta: String,
215
- // buyType: String,
216
- // quartile: String,
217
- // resolver: @escaping RCTPromiseResolveBlock,
218
- // rejecter: @escaping RCTPromiseRejectBlock
219
- // ) {
220
- // var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adUnitID: adSpaceId)
221
- //
222
- // let upperBuyType = buyType.uppercased()
223
- // if upperBuyType == "CPM" {
224
- // builder = builder.buildCPMRequest(campaignID: campaignId, bidID: bidId)
225
- // } else if upperBuyType == "FIXED" {
226
- // builder = builder.buildFIXEDRequest(metaData: bidMeta)
227
- // }
228
- //
229
- // let request = builder.trackVideoQuartile(quartile: quartile).build()
230
- // sendCreativeAnalytics(analyticsRequest: request, resolver: resolver, rejecter: rejecter)
231
- // }
232
-
233
114
  @objc public static func requiresMainQueueSetup() -> Bool {
234
115
  return true
235
116
  }
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>AvailableLibraries</key>
6
+ <array>
7
+ <dict>
8
+ <key>BinaryPath</key>
9
+ <string>AdgeistKit.framework/AdgeistKit</string>
10
+ <key>LibraryIdentifier</key>
11
+ <string>ios-arm64</string>
12
+ <key>LibraryPath</key>
13
+ <string>AdgeistKit.framework</string>
14
+ <key>SupportedArchitectures</key>
15
+ <array>
16
+ <string>arm64</string>
17
+ </array>
18
+ <key>SupportedPlatform</key>
19
+ <string>ios</string>
20
+ </dict>
21
+ <dict>
22
+ <key>BinaryPath</key>
23
+ <string>AdgeistKit.framework/AdgeistKit</string>
24
+ <key>LibraryIdentifier</key>
25
+ <string>ios-arm64_x86_64-simulator</string>
26
+ <key>LibraryPath</key>
27
+ <string>AdgeistKit.framework</string>
28
+ <key>SupportedArchitectures</key>
29
+ <array>
30
+ <string>arm64</string>
31
+ <string>x86_64</string>
32
+ </array>
33
+ <key>SupportedPlatform</key>
34
+ <string>ios</string>
35
+ <key>SupportedPlatformVariant</key>
36
+ <string>simulator</string>
37
+ </dict>
38
+ </array>
39
+ <key>CFBundlePackageType</key>
40
+ <string>XFWK</string>
41
+ <key>XCFrameworkFormatVersion</key>
42
+ <string>1.0</string>
43
+ </dict>
44
+ </plist>
@@ -0,0 +1,11 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ //! Project version number for AdgeistKit.
4
+ FOUNDATION_EXPORT double AdgeistKitVersionNumber;
5
+
6
+ //! Project version string for AdgeistKit.
7
+ FOUNDATION_EXPORT const unsigned char AdgeistKitVersionString[];
8
+
9
+ // In this header, you should import all the public headers of your framework using statements like #import <AdgeistKit/PublicHeader.h>
10
+
11
+