@thealteroffice/react-native-adgeist 0.0.19 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/Adgeist.podspec +1 -1
  2. package/README.md +70 -521
  3. package/android/build.gradle +6 -3
  4. package/android/generated/java/com/adgeist/NativeAdgeistSpec.java +11 -11
  5. package/android/generated/java/com/facebook/react/viewmanagers/HTML5AdNativeComponentManagerDelegate.java +55 -0
  6. package/android/generated/java/com/facebook/react/viewmanagers/HTML5AdNativeComponentManagerInterface.java +24 -0
  7. package/android/generated/jni/RNAdgeistSpec-generated.cpp +12 -12
  8. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/ComponentDescriptors.cpp +22 -0
  9. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/ComponentDescriptors.h +24 -0
  10. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/EventEmitters.cpp +60 -0
  11. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/EventEmitters.h +49 -0
  12. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/Props.cpp +28 -0
  13. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/Props.h +52 -0
  14. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/RNAdgeistSpecJSI-generated.cpp +14 -22
  15. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/RNAdgeistSpecJSI.h +36 -36
  16. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/ShadowNodes.cpp +17 -0
  17. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/ShadowNodes.h +32 -0
  18. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/States.cpp +16 -0
  19. package/android/generated/jni/react/renderer/components/RNAdgeistSpec/States.h +29 -0
  20. package/android/src/main/java/com/adgeist/AdgeistPackage.kt +8 -7
  21. package/android/src/main/java/com/adgeist/components/HTML5AdViewManagerImpl.kt +125 -0
  22. package/android/src/main/java/com/adgeist/modules/AdgeistImpl.kt +114 -0
  23. package/android/src/main/java/com/adgeist/utils/CreativeExtensions.kt +151 -0
  24. package/android/src/newarch/java/com/Adgeist.kt +119 -0
  25. package/android/src/newarch/java/com/HTML5AdViewManager.kt +77 -0
  26. package/android/src/oldarch/java/com/Adgeist.kt +132 -0
  27. package/android/src/oldarch/java/com/HTML5AdViewManager.kt +63 -0
  28. package/ios/Adgeist-Bridging-Header.h +3 -0
  29. package/ios/Adgeist.h +1 -1
  30. package/ios/Adgeist.mm +154 -38
  31. package/ios/AdgeistImpl.swift +188 -53
  32. package/ios/NativeHTML5AdManager.h +9 -0
  33. package/ios/NativeHTML5AdManager.mm +178 -0
  34. package/ios/NativeHTML5AdView.swift +136 -0
  35. package/ios/generated/RNAdgeistSpec/ComponentDescriptors.cpp +22 -0
  36. package/ios/generated/RNAdgeistSpec/ComponentDescriptors.h +24 -0
  37. package/ios/generated/RNAdgeistSpec/EventEmitters.cpp +60 -0
  38. package/ios/generated/RNAdgeistSpec/EventEmitters.h +49 -0
  39. package/ios/generated/RNAdgeistSpec/Props.cpp +28 -0
  40. package/ios/generated/RNAdgeistSpec/Props.h +52 -0
  41. package/ios/generated/RNAdgeistSpec/RCTComponentViewHelpers.h +65 -0
  42. package/ios/generated/RNAdgeistSpec/RNAdgeistSpec-generated.mm +17 -17
  43. package/ios/generated/RNAdgeistSpec/RNAdgeistSpec.h +17 -25
  44. package/ios/generated/RNAdgeistSpec/ShadowNodes.cpp +17 -0
  45. package/ios/generated/RNAdgeistSpec/ShadowNodes.h +32 -0
  46. package/ios/generated/RNAdgeistSpec/States.cpp +16 -0
  47. package/ios/generated/RNAdgeistSpec/States.h +29 -0
  48. package/ios/generated/RNAdgeistSpecJSI-generated.cpp +14 -22
  49. package/ios/generated/RNAdgeistSpecJSI.h +36 -36
  50. package/lib/module/cdpclient/index.js +1 -25
  51. package/lib/module/cdpclient/index.js.map +1 -1
  52. package/lib/module/components/HTML5AdView.js +128 -0
  53. package/lib/module/components/HTML5AdView.js.map +1 -0
  54. package/lib/module/components/{BannerAd.js → deprecated/BannerAdView.js} +50 -79
  55. package/lib/module/components/deprecated/BannerAdView.js.map +1 -0
  56. package/lib/module/components/{ConsentModal.js → deprecated/ConsentModal.js} +2 -2
  57. package/lib/module/components/deprecated/ConsentModal.js.map +1 -0
  58. package/lib/module/constants.js +14 -0
  59. package/lib/module/constants.js.map +1 -0
  60. package/lib/module/index.js +3 -2
  61. package/lib/module/index.js.map +1 -1
  62. package/lib/module/{components → providers}/AdgeistProvider.js +10 -35
  63. package/lib/module/providers/AdgeistProvider.js.map +1 -0
  64. package/lib/module/specs/HTML5AdNativeComponent.ts +46 -0
  65. package/lib/module/specs/NativeAdgeist.js.map +1 -0
  66. package/lib/module/types/AdSize.js +2 -0
  67. package/lib/module/types/AdSize.js.map +1 -0
  68. package/lib/module/types/CPMAdResponse.js +2 -0
  69. package/lib/module/types/CPMAdResponse.js.map +1 -0
  70. package/lib/module/types/FixedAdResponse.js +2 -0
  71. package/lib/module/types/FixedAdResponse.js.map +1 -0
  72. package/lib/module/types/HTML5AdNativeComponentProps.js +4 -0
  73. package/lib/module/types/HTML5AdNativeComponentProps.js.map +1 -0
  74. package/lib/module/types/Provider.js +2 -0
  75. package/lib/module/types/Provider.js.map +1 -0
  76. package/lib/typescript/src/cdpclient/index.d.ts +1 -21
  77. package/lib/typescript/src/cdpclient/index.d.ts.map +1 -1
  78. package/lib/typescript/src/components/HTML5AdView.d.ts +3 -0
  79. package/lib/typescript/src/components/HTML5AdView.d.ts.map +1 -0
  80. package/lib/typescript/src/components/deprecated/BannerAdView.d.ts +17 -0
  81. package/lib/typescript/src/components/deprecated/BannerAdView.d.ts.map +1 -0
  82. package/lib/typescript/src/components/deprecated/ConsentModal.d.ts.map +1 -0
  83. package/lib/typescript/src/constants.d.ts +10 -0
  84. package/lib/typescript/src/constants.d.ts.map +1 -0
  85. package/lib/typescript/src/index.d.ts +3 -2
  86. package/lib/typescript/src/index.d.ts.map +1 -1
  87. package/lib/typescript/src/providers/AdgeistProvider.d.ts +9 -0
  88. package/lib/typescript/src/providers/AdgeistProvider.d.ts.map +1 -0
  89. package/lib/typescript/src/specs/HTML5AdNativeComponent.d.ts +29 -0
  90. package/lib/typescript/src/specs/HTML5AdNativeComponent.d.ts.map +1 -0
  91. package/lib/typescript/src/specs/NativeAdgeist.d.ts +28 -0
  92. package/lib/typescript/src/specs/NativeAdgeist.d.ts.map +1 -0
  93. package/lib/typescript/src/types/AdSize.d.ts +5 -0
  94. package/lib/typescript/src/types/AdSize.d.ts.map +1 -0
  95. package/lib/typescript/src/types/CPMAdResponse.d.ts +25 -0
  96. package/lib/typescript/src/types/CPMAdResponse.d.ts.map +1 -0
  97. package/lib/typescript/src/types/FixedAdResponse.d.ts +50 -0
  98. package/lib/typescript/src/types/FixedAdResponse.d.ts.map +1 -0
  99. package/lib/typescript/src/types/HTML5AdNativeComponentProps.d.ts +24 -0
  100. package/lib/typescript/src/types/HTML5AdNativeComponentProps.d.ts.map +1 -0
  101. package/lib/typescript/src/types/Provider.d.ts +16 -0
  102. package/lib/typescript/src/types/Provider.d.ts.map +1 -0
  103. package/package.json +8 -3
  104. package/plugin/build/android/withRNAdgeistMainApplication.d.ts +3 -0
  105. package/plugin/build/android/withRNAdgeistMainApplication.js +65 -0
  106. package/plugin/build/index.d.ts +3 -0
  107. package/plugin/build/index.js +25 -0
  108. package/plugin/build/ios/withRNAdgeistAppDelegate.d.ts +4 -0
  109. package/plugin/build/ios/withRNAdgeistAppDelegate.js +66 -0
  110. package/react-native.config.js +1 -1
  111. package/src/cdpclient/index.ts +1 -21
  112. package/src/components/HTML5AdView.tsx +161 -0
  113. package/src/components/{BannerAd.tsx → deprecated/BannerAdView.tsx} +80 -115
  114. package/src/components/{ConsentModal.tsx → deprecated/ConsentModal.tsx} +2 -2
  115. package/src/constants.ts +8 -0
  116. package/src/index.tsx +4 -2
  117. package/src/{components → providers}/AdgeistProvider.tsx +26 -60
  118. package/src/specs/HTML5AdNativeComponent.ts +46 -0
  119. package/src/{NativeAdgeist.ts → specs/NativeAdgeist.ts} +26 -25
  120. package/src/types/AdSize.ts +4 -0
  121. package/src/types/CPMAdResponse.ts +26 -0
  122. package/src/types/FixedAdResponse.ts +51 -0
  123. package/src/types/HTML5AdNativeComponentProps.ts +28 -0
  124. package/src/types/Provider.ts +16 -0
  125. package/android/src/main/AndroidManifestNew.xml +0 -2
  126. package/android/src/main/java/com/adgeist/implementation/AdgeistModuleImpl.kt +0 -252
  127. package/android/src/newarch/java/com/AdgeistModule.kt +0 -135
  128. package/android/src/oldarch/java/com/AdgeistModule.kt +0 -148
  129. package/ios/adgeist-Bridging-Header.h +0 -1
  130. package/lib/module/NativeAdgeist.js.map +0 -1
  131. package/lib/module/components/AdgeistProvider.js.map +0 -1
  132. package/lib/module/components/BannerAd.js.map +0 -1
  133. package/lib/module/components/ConsentModal.js.map +0 -1
  134. package/lib/typescript/src/NativeAdgeist.d.ts +0 -28
  135. package/lib/typescript/src/NativeAdgeist.d.ts.map +0 -1
  136. package/lib/typescript/src/components/AdgeistProvider.d.ts +0 -50
  137. package/lib/typescript/src/components/AdgeistProvider.d.ts.map +0 -1
  138. package/lib/typescript/src/components/BannerAd.d.ts +0 -64
  139. package/lib/typescript/src/components/BannerAd.d.ts.map +0 -1
  140. package/lib/typescript/src/components/ConsentModal.d.ts.map +0 -1
  141. /package/lib/module/{NativeAdgeist.js → specs/NativeAdgeist.js} +0 -0
  142. /package/lib/typescript/src/components/{ConsentModal.d.ts → deprecated/ConsentModal.d.ts} +0 -0
@@ -0,0 +1,119 @@
1
+ package com.adgeist
2
+
3
+ import com.facebook.react.bridge.Promise
4
+ import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.adgeist.modules.AdgeistImpl
6
+ import com.adgeistkit.ads.network.AnalyticsRequestDEPRECATED
7
+
8
+ import com.facebook.react.bridge.ReadableMap
9
+
10
+ class Adgeist internal constructor(reactContext: ReactApplicationContext) :
11
+ NativeAdgeistSpec(reactContext) {
12
+
13
+ private var implementation: AdgeistImpl = AdgeistImpl(reactContext)
14
+
15
+ override fun getName(): String = AdgeistImpl.NAME
16
+
17
+ override fun initializeSdk(customBidRequestBackendDomain: String, customPackageOrBundleID: String, customAdgeistAppID: String, promise: Promise) {
18
+ implementation.initializeSdk(customBidRequestBackendDomain, customPackageOrBundleID, customAdgeistAppID, promise)
19
+ }
20
+
21
+ override fun destroySdk(promise: Promise) {
22
+ implementation.destroySdk(promise)
23
+ }
24
+
25
+ override fun fetchCreative(adSpaceId: String, buyType: String, isTestEnvironment: Boolean, promise: Promise) {
26
+ implementation.fetchCreative(adSpaceId, buyType, isTestEnvironment, promise)
27
+ }
28
+
29
+ override fun trackImpression(campaignId: String, adSpaceId: String, bidId: String, bidMeta: String, buyType: String, isTestEnvironment: Boolean, renderTime: Double, promise: Promise) {
30
+ var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adSpaceId, isTestEnvironment)
31
+
32
+ builder = when (buyType.uppercase()) {
33
+ "CPM" -> builder.buildCPMRequest(campaignId, bidId)
34
+ "FIXED" -> builder.buildFIXEDRequest(bidMeta)
35
+ else -> builder
36
+ }
37
+
38
+ implementation.sendCreativeAnalytics(builder.trackImpression(renderTime.toFloat()).build(), promise)
39
+ }
40
+
41
+ override fun trackView(campaignId: String, adSpaceId: String, bidId: String, bidMeta: String, buyType: String, isTestEnvironment: Boolean, viewTime: Double, visibilityRatio: Double, scrollDepth: Double, timeToVisible: Double, promise: Promise) {
42
+ var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adSpaceId, isTestEnvironment)
43
+
44
+ builder = when (buyType.uppercase()) {
45
+ "CPM" -> builder.buildCPMRequest(campaignId, bidId)
46
+ "FIXED" -> builder.buildFIXEDRequest(bidMeta)
47
+ else -> builder
48
+ }
49
+
50
+ implementation.sendCreativeAnalytics(
51
+ builder.trackViewableImpression(timeToVisible.toFloat(),
52
+ scrollDepth.toFloat(),
53
+ visibilityRatio.toFloat(),
54
+ viewTime.toFloat()).build(),
55
+ promise
56
+ )
57
+ }
58
+
59
+ override fun trackTotalView(campaignId: String, adSpaceId: String, bidId: String, bidMeta: String, buyType: String, isTestEnvironment: Boolean, totalViewTime: Double, promise: Promise) {
60
+ var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adSpaceId, isTestEnvironment)
61
+
62
+ builder = when (buyType.uppercase()) {
63
+ "CPM" -> builder.buildCPMRequest(campaignId, bidId)
64
+ "FIXED" -> builder.buildFIXEDRequest(bidMeta)
65
+ else -> builder
66
+ }
67
+
68
+ implementation.sendCreativeAnalytics(
69
+ builder.trackTotalViewTime(totalViewTime.toFloat()).build(),
70
+ promise
71
+ )
72
+ }
73
+
74
+ override fun trackClick(campaignId: String, adSpaceId: String, bidId: String, bidMeta: String, buyType: String, isTestEnvironment: Boolean, promise: Promise) {
75
+ var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adSpaceId, isTestEnvironment)
76
+
77
+ builder = when (buyType.uppercase()) {
78
+ "CPM" -> builder.buildCPMRequest(campaignId, bidId)
79
+ "FIXED" -> builder.buildFIXEDRequest(bidMeta)
80
+ else -> builder
81
+ }
82
+
83
+ implementation.sendCreativeAnalytics(
84
+ builder.trackClick().build(),
85
+ promise
86
+ )
87
+ }
88
+
89
+ override fun trackVideoPlayback(campaignId: String, adSpaceId: String, bidId: String, bidMeta: String, buyType: String, isTestEnvironment: Boolean, totalPlaybackTime: Double, promise: Promise) {
90
+ var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adSpaceId, isTestEnvironment)
91
+
92
+ builder = when (buyType.uppercase()) {
93
+ "CPM" -> builder.buildCPMRequest(campaignId, bidId)
94
+ "FIXED" -> builder.buildFIXEDRequest(bidMeta)
95
+ else -> builder
96
+ }
97
+
98
+ implementation.sendCreativeAnalytics(
99
+ builder.trackTotalPlaybackTime(totalPlaybackTime.toFloat()).build(),
100
+ promise
101
+ )
102
+ }
103
+
104
+ override fun setUserDetails(userDetails: ReadableMap) {
105
+ implementation.setUserDetails(userDetails)
106
+ }
107
+
108
+ override fun logEvent(event: ReadableMap) {
109
+ implementation.logEvent(event)
110
+ }
111
+
112
+ override fun getConsentStatus(promise: Promise) {
113
+ implementation.getConsentStatus(promise)
114
+ }
115
+
116
+ override fun updateConsentStatus(consent: Boolean) {
117
+ implementation.updateConsentStatus(consent)
118
+ }
119
+ }
@@ -0,0 +1,77 @@
1
+ package com.adgeist.components
2
+
3
+ import android.content.res.Resources
4
+ import android.util.Log
5
+ import android.view.ViewGroup
6
+ import androidx.annotation.RequiresPermission
7
+ import com.adgeistkit.ads.AdView
8
+ import com.facebook.react.bridge.ReadableArray
9
+ import com.facebook.react.bridge.ReadableMap
10
+ import com.facebook.react.common.MapBuilder
11
+ import com.facebook.react.module.annotations.ReactModule
12
+ import com.facebook.react.uimanager.SimpleViewManager
13
+ import com.facebook.react.uimanager.ThemedReactContext
14
+ import com.facebook.react.uimanager.annotations.ReactProp
15
+ import com.facebook.react.uimanager.ViewManagerDelegate
16
+ import com.facebook.react.viewmanagers.HTML5AdNativeComponentManagerDelegate
17
+ import com.facebook.react.viewmanagers.HTML5AdNativeComponentManagerInterface
18
+
19
+ @ReactModule(name = HTML5AdViewManagerImpl.NAME)
20
+ class HTML5AdViewManager : SimpleViewManager<AdView>(), HTML5AdNativeComponentManagerInterface<AdView> {
21
+
22
+ private val mDelegate: ViewManagerDelegate<AdView> = HTML5AdNativeComponentManagerDelegate(this)
23
+
24
+ override fun getDelegate(): ViewManagerDelegate<AdView> {
25
+ return mDelegate
26
+ }
27
+
28
+ override fun getName(): String = HTML5AdViewManagerImpl.NAME
29
+
30
+ override fun createViewInstance(reactContext: ThemedReactContext): AdView {
31
+ return HTML5AdViewManagerImpl.createViewInstance(reactContext)
32
+ }
33
+
34
+ @ReactProp(name = "adUnitID")
35
+ override fun setAdUnitID(view: AdView, adUnitID: String?) {
36
+ HTML5AdViewManagerImpl.setAdUnitID(view, adUnitID)
37
+ }
38
+
39
+ @ReactProp(name = "adIsResponsive", defaultBoolean = false)
40
+ override fun setAdIsResponsive(view: AdView, adIsResponsive: Boolean) {
41
+ HTML5AdViewManagerImpl.setAdIsResponsive(view, adIsResponsive)
42
+ }
43
+
44
+ @ReactProp(name = "adSize")
45
+ override fun setAdSize(view: AdView, adSizeMap: ReadableMap?) {
46
+ HTML5AdViewManagerImpl.setAdSize(view, adSizeMap)
47
+ }
48
+
49
+ @ReactProp(name = "adType")
50
+ override fun setAdType(view: AdView, adType: String?) {
51
+ HTML5AdViewManagerImpl.setAdType(view, adType)
52
+ }
53
+
54
+ override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any>? {
55
+ return MapBuilder.of(
56
+ HTML5AdViewManagerImpl.EVENT_AD_LOADED, MapBuilder.of("registrationName", HTML5AdViewManagerImpl.EVENT_AD_LOADED),
57
+ HTML5AdViewManagerImpl.EVENT_AD_FAILED_TO_LOAD, MapBuilder.of("registrationName", HTML5AdViewManagerImpl.EVENT_AD_FAILED_TO_LOAD),
58
+ HTML5AdViewManagerImpl.EVENT_AD_OPENED, MapBuilder.of("registrationName", HTML5AdViewManagerImpl.EVENT_AD_OPENED),
59
+ HTML5AdViewManagerImpl.EVENT_AD_CLOSED, MapBuilder.of("registrationName", HTML5AdViewManagerImpl.EVENT_AD_CLOSED),
60
+ HTML5AdViewManagerImpl.EVENT_AD_CLICKED, MapBuilder.of("registrationName", HTML5AdViewManagerImpl.EVENT_AD_CLICKED)
61
+ )
62
+ }
63
+
64
+ @RequiresPermission("android.permission.INTERNET")
65
+ override fun loadAd(view: AdView, isTestMode: Boolean) {
66
+ HTML5AdViewManagerImpl.loadAd(view, isTestMode)
67
+ }
68
+
69
+ override fun destroy(view: AdView) {
70
+ HTML5AdViewManagerImpl.destroyAd(view)
71
+ }
72
+
73
+ override fun onDropViewInstance(view: AdView) {
74
+ super.onDropViewInstance(view)
75
+ HTML5AdViewManagerImpl.destroyAd(view)
76
+ }
77
+ }
@@ -0,0 +1,132 @@
1
+ package com.adgeist
2
+
3
+ import com.facebook.react.bridge.Promise
4
+ import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
6
+ import com.facebook.react.bridge.ReactMethod
7
+ import com.adgeist.modules.AdgeistImpl
8
+ import com.adgeistkit.ads.network.AnalyticsRequestDEPRECATED
9
+ import com.facebook.react.bridge.ReadableMap
10
+
11
+ class Adgeist internal constructor(reactContext: ReactApplicationContext) :
12
+ ReactContextBaseJavaModule(reactContext) {
13
+
14
+ private var implementation: AdgeistImpl = AdgeistImpl(reactContext)
15
+
16
+ override fun getName(): String = AdgeistImpl.NAME
17
+
18
+ @ReactMethod
19
+ fun initializeSdk(customBidRequestBackendDomain: String, customPackageOrBundleID: String, customAdgeistAppID: String, promise: Promise) {
20
+ implementation.initializeSdk(customBidRequestBackendDomain, customPackageOrBundleID, customAdgeistAppID, promise)
21
+ }
22
+
23
+ @ReactMethod
24
+ fun destroySdk(promise: Promise) {
25
+ implementation.destroySdk(promise)
26
+ }
27
+
28
+ @ReactMethod
29
+ fun fetchCreative(adSpaceId: String, buyType: String, isTestEnvironment: Boolean, promise: Promise) {
30
+ implementation.fetchCreative(adSpaceId, buyType, isTestEnvironment, promise)
31
+ }
32
+
33
+ @ReactMethod
34
+ fun trackImpression(campaignId: String, adSpaceId: String, bidId: String, bidMeta: String, buyType: String, isTestEnvironment: Boolean, renderTime: Double, promise: Promise) {
35
+ var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adSpaceId, isTestEnvironment)
36
+
37
+ builder = when (buyType.uppercase()) {
38
+ "CPM" -> builder.buildCPMRequest(campaignId, bidId)
39
+ "FIXED" -> builder.buildFIXEDRequest(bidMeta)
40
+ else -> builder
41
+ }
42
+
43
+ implementation.sendCreativeAnalytics(builder.trackImpression(renderTime.toFloat()).build(), promise)
44
+ }
45
+
46
+ @ReactMethod
47
+ fun trackView(campaignId: String, adSpaceId: String, bidId: String, bidMeta: String, buyType: String, isTestEnvironment: Boolean, viewTime: Double, visibilityRatio: Double, scrollDepth: Double, timeToVisible: Double, promise: Promise) {
48
+ var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adSpaceId, isTestEnvironment)
49
+
50
+ builder = when (buyType.uppercase()) {
51
+ "CPM" -> builder.buildCPMRequest(campaignId, bidId)
52
+ "FIXED" -> builder.buildFIXEDRequest(bidMeta)
53
+ else -> builder
54
+ }
55
+
56
+ implementation.sendCreativeAnalytics(
57
+ builder.trackViewableImpression(timeToVisible.toFloat(),
58
+ scrollDepth.toFloat(),
59
+ visibilityRatio.toFloat(),
60
+ viewTime.toFloat()).build(),
61
+ promise
62
+ )
63
+ }
64
+
65
+ @ReactMethod
66
+ fun trackTotalView(campaignId: String, adSpaceId: String, bidId: String, bidMeta: String, buyType: String, isTestEnvironment: Boolean, totalViewTime: Double, visibilityRatio: Double, promise: Promise) {
67
+ var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adSpaceId, isTestEnvironment)
68
+
69
+ builder = when (buyType.uppercase()) {
70
+ "CPM" -> builder.buildCPMRequest(campaignId, bidId)
71
+ "FIXED" -> builder.buildFIXEDRequest(bidMeta)
72
+ else -> builder
73
+ }
74
+
75
+ implementation.sendCreativeAnalytics(
76
+ builder.trackTotalViewTime(totalViewTime.toFloat()).build(),
77
+ promise
78
+ )
79
+ }
80
+
81
+ @ReactMethod
82
+ fun trackClick(campaignId: String, adSpaceId: String, bidId: String, bidMeta: String, buyType: String, isTestEnvironment: Boolean, promise: Promise) {
83
+ var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adSpaceId, isTestEnvironment)
84
+
85
+ builder = when (buyType.uppercase()) {
86
+ "CPM" -> builder.buildCPMRequest(campaignId, bidId)
87
+ "FIXED" -> builder.buildFIXEDRequest(bidMeta)
88
+ else -> builder
89
+ }
90
+
91
+ implementation.sendCreativeAnalytics(
92
+ builder.trackClick().build(),
93
+ promise
94
+ )
95
+ }
96
+
97
+ @ReactMethod
98
+ fun trackVideoPlayback(campaignId: String, adSpaceId: String, bidId: String, bidMeta: String, buyType: String, isTestEnvironment: Boolean, totalPlaybackTime: Double, promise: Promise) {
99
+ var builder = AnalyticsRequestDEPRECATED.AnalyticsRequestBuilderDEPRECATED(adSpaceId, isTestEnvironment)
100
+
101
+ builder = when (buyType.uppercase()) {
102
+ "CPM" -> builder.buildCPMRequest(campaignId, bidId)
103
+ "FIXED" -> builder.buildFIXEDRequest(bidMeta)
104
+ else -> builder
105
+ }
106
+
107
+ implementation.sendCreativeAnalytics(
108
+ builder.trackTotalPlaybackTime(totalPlaybackTime.toFloat()).build(),
109
+ promise
110
+ )
111
+ }
112
+
113
+ @ReactMethod
114
+ fun setUserDetails(userDetails: ReadableMap) {
115
+ implementation.setUserDetails(userDetails)
116
+ }
117
+
118
+ @ReactMethod
119
+ fun logEvent(event: ReadableMap) {
120
+ implementation.logEvent(event)
121
+ }
122
+
123
+ @ReactMethod
124
+ fun getConsentStatus(promise: Promise) {
125
+ implementation.getConsentStatus(promise)
126
+ }
127
+
128
+ @ReactMethod
129
+ fun updateConsentStatus(consent: Boolean) {
130
+ implementation.updateConsentStatus(consent)
131
+ }
132
+ }
@@ -0,0 +1,63 @@
1
+ package com.adgeist.components
2
+
3
+ import com.adgeistkit.ads.AdView
4
+ import com.facebook.react.bridge.ReadableMap
5
+ import com.facebook.react.common.MapBuilder
6
+ import com.facebook.react.module.annotations.ReactModule
7
+ import com.facebook.react.uimanager.SimpleViewManager
8
+ import com.facebook.react.uimanager.ThemedReactContext
9
+ import com.facebook.react.uimanager.annotations.ReactProp
10
+
11
+ class HTML5AdViewManager : SimpleViewManager<AdView>() {
12
+
13
+ override fun getName(): String = HTML5AdViewManagerImpl.NAME
14
+
15
+ override fun createViewInstance(reactContext: ThemedReactContext): AdView {
16
+ return HTML5AdViewManagerImpl.createViewInstance(reactContext)
17
+ }
18
+
19
+ @ReactProp(name = "adUnitID")
20
+ fun setAdUnitID(view: AdView, adUnitID: String?) {
21
+ HTML5AdViewManagerImpl.setAdUnitID(view, adUnitID)
22
+ }
23
+
24
+ @ReactProp(name = "adIsResponsive", defaultBoolean = false)
25
+ fun setAdIsResponsive(view: AdView, adIsResponsive: Boolean) {
26
+ HTML5AdViewManagerImpl.setAdIsResponsive(view, adIsResponsive)
27
+ }
28
+
29
+ @ReactProp(name = "adSize")
30
+ fun setAdSize(view: AdView, adSizeMap: ReadableMap?) {
31
+ HTML5AdViewManagerImpl.setAdSize(view, adSizeMap)
32
+ }
33
+
34
+ @ReactProp(name = "adType")
35
+ fun setAdType(view: AdView, adType: String?) {
36
+ HTML5AdViewManagerImpl.setAdType(view, adType)
37
+ }
38
+
39
+ override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any>? {
40
+ return MapBuilder.of(
41
+ HTML5AdViewManagerImpl.EVENT_AD_LOADED, MapBuilder.of("registrationName", HTML5AdViewManagerImpl.EVENT_AD_LOADED),
42
+ HTML5AdViewManagerImpl.EVENT_AD_FAILED_TO_LOAD, MapBuilder.of("registrationName", HTML5AdViewManagerImpl.EVENT_AD_FAILED_TO_LOAD),
43
+ HTML5AdViewManagerImpl.EVENT_AD_OPENED, MapBuilder.of("registrationName", HTML5AdViewManagerImpl.EVENT_AD_OPENED),
44
+ HTML5AdViewManagerImpl.EVENT_AD_CLOSED, MapBuilder.of("registrationName", HTML5AdViewManagerImpl.EVENT_AD_CLOSED),
45
+ HTML5AdViewManagerImpl.EVENT_AD_CLICKED, MapBuilder.of("registrationName", HTML5AdViewManagerImpl.EVENT_AD_CLICKED)
46
+ )
47
+ }
48
+
49
+ @RequiresPermission("android.permission.INTERNET")
50
+ fun loadAd(view: AdView, args: ReadableArray?) {
51
+ val isTestMode = if (args != null && args.size() > 0) args.getBoolean(0) else false
52
+ HTML5AdViewManagerImpl.loadAd(view, isTestMode)
53
+ }
54
+
55
+ override fun destroy(view: AdView) {
56
+ HTML5AdViewManagerImpl.destroyAd(view)
57
+ }
58
+
59
+ override fun onDropViewInstance(view: AdView) {
60
+ super.onDropViewInstance(view)
61
+ HTML5AdViewManagerImpl.destroyAd(view)
62
+ }
63
+ }
@@ -0,0 +1,3 @@
1
+ #import "React/RCTBridgeModule.h"
2
+ #import "React/RCTEventEmitter.h"
3
+ #import "React-RCTAppDelegate/RCTDefaultReactNativeFactoryDelegate.h"
package/ios/Adgeist.h CHANGED
@@ -1,5 +1,5 @@
1
1
  #ifdef RCT_NEW_ARCH_ENABLED
2
- #import "RNAdgeistSpec/RNAdgeistSpec.h"
2
+ #import "generated/RNAdgeistSpec/RNAdgeistSpec.h"
3
3
 
4
4
  NS_ASSUME_NONNULL_BEGIN
5
5
 
package/ios/Adgeist.mm CHANGED
@@ -20,56 +20,40 @@ RCT_EXPORT_MODULE(Adgeist)
20
20
  return self;
21
21
  }
22
22
 
23
- RCT_EXPORT_METHOD(initializeSdk:(NSString *)customDomain
23
+ RCT_EXPORT_METHOD(initializeSdk:(NSString *)customBidRequestBackendDomain
24
+ customPackageOrBundleID:(NSString *)customPackageOrBundleID
25
+ customAdgeistAppID:(NSString *)customAdgeistAppID
24
26
  resolve:(RCTPromiseResolveBlock)resolve
25
27
  reject:(RCTPromiseRejectBlock)reject)
26
28
  {
27
- [adgeist initializeSdkWithCustomDomain:customDomain
28
- resolver:resolve
29
- rejecter:reject];
29
+ [adgeist initializeSdkWithCustomBidRequestBackendDomain:customBidRequestBackendDomain
30
+ customPackageOrBundleID:customPackageOrBundleID
31
+ customAdgeistAppID:customAdgeistAppID
32
+ resolver:resolve
33
+ rejecter:reject];
30
34
  }
31
35
 
32
- // Exported methods for JS
33
- RCT_EXPORT_METHOD(fetchCreative:(NSString *)apiKey
34
- origin:(NSString *)origin
35
- adSpaceId:(NSString *)adSpaceId
36
- publisherId:(NSString *)publisherId
37
- isTestEnvironment:(BOOL)isTestEnvironment
38
- resolve:(RCTPromiseResolveBlock)resolve
39
- reject:(RCTPromiseRejectBlock)reject)
40
- {
41
- [adgeist fetchCreativeWithApiKey:apiKey
42
- origin:origin
43
- adSpaceId:adSpaceId
44
- publisherId:publisherId
45
- isTestEnvironment:isTestEnvironment
46
- resolver:resolve
47
- rejecter:reject];
36
+ RCT_EXPORT_METHOD(destroySdk:(RCTPromiseResolveBlock)resolve
37
+ reject:(RCTPromiseRejectBlock)reject) {
38
+ [adgeist destroySdkWithResolver:resolve
39
+ rejecter:reject];
48
40
  }
49
41
 
50
- RCT_EXPORT_METHOD(sendCreativeAnalytic:(NSString *)campaignId
51
- adSpaceId:(NSString *)adSpaceId
52
- publisherId:(NSString *)publisherId
53
- eventType:(NSString *)eventType
54
- origin:(NSString *)origin
55
- apiKey:(NSString *)apiKey
56
- bidId:(NSString *)bidId
42
+
43
+ RCT_EXPORT_METHOD(fetchCreative:(NSString *)adSpaceId
44
+ buyType:(NSString *)buyType
57
45
  isTestEnvironment:(BOOL)isTestEnvironment
58
46
  resolve:(RCTPromiseResolveBlock)resolve
59
47
  reject:(RCTPromiseRejectBlock)reject)
60
48
  {
61
- [adgeist sendCreativeAnalyticWithCampaignId:campaignId
62
- adSpaceId:adSpaceId
63
- publisherId:publisherId
64
- eventType:eventType
65
- origin:origin
66
- apiKey:apiKey
67
- bidId:bidId
68
- isTestEnvironment:isTestEnvironment
69
- resolver:resolve
70
- rejecter:reject];
49
+ [adgeist fetchCreativeWithAdSpaceId:adSpaceId
50
+ buyType:buyType
51
+ isTestEnvironment:isTestEnvironment
52
+ resolver:resolve
53
+ rejecter:reject];
71
54
  }
72
55
 
56
+
73
57
  RCT_EXPORT_METHOD(setUserDetails:(NSObject *)userDetails) {
74
58
  [adgeist setUserDetails:userDetails];
75
59
  }
@@ -77,7 +61,7 @@ RCT_EXPORT_METHOD(setUserDetails:(NSObject *)userDetails) {
77
61
  RCT_EXPORT_METHOD(getConsentStatus:(RCTPromiseResolveBlock)resolve
78
62
  reject:(RCTPromiseRejectBlock)reject) {
79
63
  [adgeist getConsentStatusWithResolver:resolve
80
- rejecter:reject];
64
+ rejecter:reject];
81
65
  }
82
66
 
83
67
  RCT_EXPORT_METHOD(updateConsentStatus:(BOOL)consent) {
@@ -88,6 +72,138 @@ RCT_EXPORT_METHOD(logEvent:(NSDictionary *)eventDict) {
88
72
  [adgeist logEventWithEventDict:eventDict];
89
73
  }
90
74
 
75
+ RCT_EXPORT_METHOD(trackImpression:(NSString *)campaignId
76
+ adSpaceId:(NSString *)adSpaceId
77
+ bidId:(NSString *)bidId
78
+ bidMeta:(NSString *)bidMeta
79
+ buyType:(NSString *)buyType
80
+ isTestEnvironment:(BOOL)isTestEnvironment
81
+ renderTime:(double)renderTime
82
+ resolve:(RCTPromiseResolveBlock)resolve
83
+ reject:(RCTPromiseRejectBlock)reject)
84
+ {
85
+ [adgeist trackImpressionWithCampaignId:campaignId
86
+ adSpaceId:adSpaceId
87
+ bidId:bidId
88
+ bidMeta:bidMeta
89
+ buyType:buyType
90
+ isTestEnvironment:isTestEnvironment
91
+ renderTime:(float)renderTime
92
+ resolver:resolve
93
+ rejecter:reject];
94
+ }
95
+
96
+ RCT_EXPORT_METHOD(trackView:(NSString *)campaignId
97
+ adSpaceId:(NSString *)adSpaceId
98
+ bidId:(NSString *)bidId
99
+ bidMeta:(NSString *)bidMeta
100
+ buyType:(NSString *)buyType
101
+ isTestEnvironment:(BOOL)isTestEnvironment
102
+ viewTime:(double)viewTime
103
+ visibilityRatio:(double)visibilityRatio
104
+ scrollDepth:(double)scrollDepth
105
+ timeToVisible:(double)timeToVisible
106
+ resolve:(RCTPromiseResolveBlock)resolve
107
+ reject:(RCTPromiseRejectBlock)reject)
108
+ {
109
+ [adgeist trackViewWithCampaignId:campaignId
110
+ adSpaceId:adSpaceId
111
+ bidId:bidId
112
+ bidMeta:bidMeta
113
+ buyType:buyType
114
+ isTestEnvironment:isTestEnvironment
115
+ viewTime:(float)viewTime
116
+ visibilityRatio:(float)visibilityRatio
117
+ scrollDepth:(float)scrollDepth
118
+ timeToVisible:(float)timeToVisible
119
+ resolver:resolve
120
+ rejecter:reject];
121
+ }
122
+
123
+ RCT_EXPORT_METHOD(trackTotalView:(NSString *)campaignId
124
+ adSpaceId:(NSString *)adSpaceId
125
+ bidId:(NSString *)bidId
126
+ bidMeta:(NSString *)bidMeta
127
+ buyType:(NSString *)buyType
128
+ isTestEnvironment:(BOOL)isTestEnvironment
129
+ totalViewTime:(double)totalViewTime
130
+ visibilityRatio:(double)visibilityRatio
131
+ resolve:(RCTPromiseResolveBlock)resolve
132
+ reject:(RCTPromiseRejectBlock)reject)
133
+ {
134
+ [adgeist trackTotalViewWithCampaignId:campaignId
135
+ adSpaceId:adSpaceId
136
+ bidId:bidId
137
+ bidMeta:bidMeta
138
+ buyType:buyType
139
+ isTestEnvironment:isTestEnvironment
140
+ totalViewTime:(float)totalViewTime
141
+ visibilityRatio:(float)visibilityRatio
142
+ resolver:resolve
143
+ rejecter:reject];
144
+ }
145
+
146
+ RCT_EXPORT_METHOD(trackClick:(NSString *)campaignId
147
+ adSpaceId:(NSString *)adSpaceId
148
+ bidId:(NSString *)bidId
149
+ bidMeta:(NSString *)bidMeta
150
+ buyType:(NSString *)buyType
151
+ isTestEnvironment:(BOOL)isTestEnvironment
152
+ resolve:(RCTPromiseResolveBlock)resolve
153
+ reject:(RCTPromiseRejectBlock)reject)
154
+ {
155
+ [adgeist trackClickWithCampaignId:campaignId
156
+ adSpaceId:adSpaceId
157
+ bidId:bidId
158
+ bidMeta:bidMeta
159
+ buyType:buyType
160
+ isTestEnvironment:isTestEnvironment
161
+ resolver:resolve
162
+ rejecter:reject];
163
+ }
164
+
165
+ RCT_EXPORT_METHOD(trackVideoPlayback:(NSString *)campaignId
166
+ adSpaceId:(NSString *)adSpaceId
167
+ bidId:(NSString *)bidId
168
+ bidMeta:(NSString *)bidMeta
169
+ buyType:(NSString *)buyType
170
+ isTestEnvironment:(BOOL)isTestEnvironment
171
+ totalPlaybackTime:(double)totalPlaybackTime
172
+ resolve:(RCTPromiseResolveBlock)resolve
173
+ reject:(RCTPromiseRejectBlock)reject)
174
+ {
175
+ [adgeist trackVideoPlaybackWithCampaignId:campaignId
176
+ adSpaceId:adSpaceId
177
+ bidId:bidId
178
+ bidMeta:bidMeta
179
+ buyType:buyType
180
+ isTestEnvironment:isTestEnvironment
181
+ totalPlaybackTime:(float)totalPlaybackTime
182
+ resolver:resolve
183
+ rejecter:reject];
184
+ }
185
+
186
+ // RCT_EXPORT_METHOD(trackVideoQuartile:(NSString *)campaignId
187
+ // adSpaceId:(NSString *)adSpaceId
188
+ // bidId:(NSString *)bidId
189
+ // bidMeta:(NSString *)bidMeta
190
+ // buyType:(NSString *)buyType
191
+ // isTestEnvironment:(BOOL)isTestEnvironment
192
+ // quartile:(NSString *)quartile
193
+ // resolve:(RCTPromiseResolveBlock)resolve
194
+ // reject:(RCTPromiseRejectBlock)reject)
195
+ // {
196
+ // [adgeist trackVideoQuartileWithCampaignId:campaignId
197
+ // adSpaceId:adSpaceId
198
+ // bidId:bidId
199
+ // bidMeta:bidMeta
200
+ // buyType:buyType
201
+ // isTestEnvironment:isTestEnvironment
202
+ // quartile:quartile
203
+ // resolver:resolve
204
+ // rejecter:reject];
205
+ // }
206
+
91
207
  // TurboModule support for the new architecture
92
208
  #ifdef RCT_NEW_ARCH_ENABLED
93
209
  - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule: