cloudx-react-native 2.2.3 → 3.1.2
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/README.md +62 -17
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/cloudxreactnative/CloudXModuleImpl.kt +37 -13
- package/android/src/newarch/com/cloudxreactnative/CloudXModule.kt +3 -0
- package/android/src/oldarch/com/cloudxreactnative/CloudXModule.kt +3 -0
- package/cloudx-react-native.podspec +1 -1
- package/ios/CloudX.mm +50 -12
- package/lib/commonjs/CloudX.js +11 -3
- package/lib/commonjs/CloudX.js.map +1 -1
- package/lib/commonjs/CloudXErrorCode.js +4 -0
- package/lib/commonjs/CloudXErrorCode.js.map +1 -1
- package/lib/commonjs/specs/NativeCloudX.js.map +1 -1
- package/lib/commonjs/version.js +10 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/CloudX.js +11 -3
- package/lib/module/CloudX.js.map +1 -1
- package/lib/module/CloudXErrorCode.js +4 -0
- package/lib/module/CloudXErrorCode.js.map +1 -1
- package/lib/module/specs/NativeCloudX.js.map +1 -1
- package/lib/module/version.js +4 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/src/CloudX.d.ts.map +1 -1
- package/lib/typescript/src/CloudXErrorCode.d.ts +5 -1
- package/lib/typescript/src/CloudXErrorCode.d.ts.map +1 -1
- package/lib/typescript/src/specs/NativeCloudX.d.ts +2 -0
- package/lib/typescript/src/specs/NativeCloudX.d.ts.map +1 -1
- package/lib/typescript/src/types/CloudX.d.ts +16 -0
- package/lib/typescript/src/types/CloudX.d.ts.map +1 -1
- package/lib/typescript/src/version.d.ts +2 -0
- package/lib/typescript/src/version.d.ts.map +1 -0
- package/package.json +1 -7
- package/src/CloudX.ts +12 -3
- package/src/CloudXErrorCode.ts +6 -0
- package/src/specs/NativeCloudX.ts +7 -0
- package/src/types/CloudX.ts +18 -0
- package/src/version.ts +3 -0
package/README.md
CHANGED
|
@@ -11,10 +11,17 @@ The CloudX React Native SDK enables monetization of your React Native apps with
|
|
|
11
11
|
- **All Ad Formats**: Banner, MREC, Interstitial, and Rewarded ads
|
|
12
12
|
- **Programmatic Ad APIs**: Overlay APIs for banner and MREC, plus fullscreen formats
|
|
13
13
|
- **React Hooks**: Declarative hooks for fullscreen and banner ad lifecycles
|
|
14
|
-
- **Privacy Compliance**: IAB privacy handled automatically via CMP shared storage
|
|
14
|
+
- **Privacy Compliance**: IAB privacy handled automatically via CMP shared storage, plus manual `setHasUserConsent` / `setDoNotSell` overrides
|
|
15
15
|
- **App Tracking Transparency**: Built-in ATT support for iOS 14+
|
|
16
16
|
- **Type Safety**: Full TypeScript definitions with CloudX-prefixed namespace
|
|
17
17
|
|
|
18
|
+
### Native SDK Versions
|
|
19
|
+
|
|
20
|
+
| Plugin | iOS (`CloudXCore`) | Android (`io.cloudx:sdk`) |
|
|
21
|
+
|--------|-------------------|---------------------------|
|
|
22
|
+
| 3.1.2 | 3.1.0 | 3.1.0 |
|
|
23
|
+
| 2.2.3 | 2.2.3 | 2.2.3 |
|
|
24
|
+
|
|
18
25
|
## Installation
|
|
19
26
|
|
|
20
27
|
Requires React Native 0.70+, React 18.0+, iOS 13.0+, and Android API 23+.
|
|
@@ -32,10 +39,12 @@ target 'YourApp' do
|
|
|
32
39
|
# ... existing config ...
|
|
33
40
|
|
|
34
41
|
# CloudX ad network adapters (add as needed)
|
|
35
|
-
pod 'CloudXMetaAdapter', '~>
|
|
36
|
-
pod 'CloudXVungleAdapter', '~>
|
|
37
|
-
pod 'CloudXInMobiAdapter', '~>
|
|
38
|
-
pod '
|
|
42
|
+
pod 'CloudXMetaAdapter', '~> 3.1.0'
|
|
43
|
+
pod 'CloudXVungleAdapter', '~> 3.1.0'
|
|
44
|
+
pod 'CloudXInMobiAdapter', '~> 3.1.0'
|
|
45
|
+
pod 'CloudXMintegralAdapter', '~> 3.1.0'
|
|
46
|
+
pod 'CloudXUnityAdsAdapter', '~> 3.1.0'
|
|
47
|
+
pod 'CloudXRenderer', '~> 3.1.0'
|
|
39
48
|
end
|
|
40
49
|
```
|
|
41
50
|
|
|
@@ -66,18 +75,32 @@ Add CloudX SDK and adapter dependencies to your `android/app/build.gradle`:
|
|
|
66
75
|
```kotlin
|
|
67
76
|
dependencies {
|
|
68
77
|
// CloudX Android SDK
|
|
69
|
-
implementation "io.cloudx:sdk:
|
|
78
|
+
implementation "io.cloudx:sdk:3.1.0"
|
|
70
79
|
|
|
71
80
|
// Adapters for ad networks (add as needed)
|
|
72
|
-
implementation "io.cloudx:adapter-
|
|
73
|
-
implementation "io.cloudx:adapter-
|
|
74
|
-
implementation "io.cloudx:adapter-
|
|
75
|
-
implementation "io.cloudx:adapter-
|
|
81
|
+
implementation "io.cloudx:adapter-meta:3.1.0"
|
|
82
|
+
implementation "io.cloudx:adapter-vungle:3.1.0"
|
|
83
|
+
implementation "io.cloudx:adapter-inmobi:3.1.0"
|
|
84
|
+
implementation "io.cloudx:adapter-mintegral:3.1.0"
|
|
85
|
+
implementation "io.cloudx:adapter-unityads:3.1.0"
|
|
86
|
+
|
|
87
|
+
// Required by the native SDK 3.1.0 when using the Meta adapter.
|
|
88
|
+
implementation "com.facebook.android:audience-network-sdk:6.21.0"
|
|
76
89
|
}
|
|
77
90
|
```
|
|
78
91
|
|
|
79
92
|
> **Note:** At least one adapter is required for the SDK to serve ads.
|
|
80
93
|
|
|
94
|
+
If you integrate the Mintegral adapter, also declare its Maven repository in `android/build.gradle` (Mintegral is not on Maven Central):
|
|
95
|
+
|
|
96
|
+
```kotlin
|
|
97
|
+
allprojects {
|
|
98
|
+
repositories {
|
|
99
|
+
maven { url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" }
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
81
104
|
## Initialization
|
|
82
105
|
|
|
83
106
|
Initialize the SDK before loading any ads:
|
|
@@ -535,6 +558,26 @@ CloudX.setAppKeyValue('app_version', '1.0.0');
|
|
|
535
558
|
CloudX.clearAllKeyValues();
|
|
536
559
|
```
|
|
537
560
|
|
|
561
|
+
### Manual Privacy Overrides
|
|
562
|
+
|
|
563
|
+
In most cases, IAB privacy signals (TCF, US Privacy String) are read automatically from shared `NSUserDefaults` / `SharedPreferences` written by your CMP. Use the manual APIs only when you need to override a CMP-provided value or when you don't use a CMP:
|
|
564
|
+
|
|
565
|
+
```typescript
|
|
566
|
+
import { CloudX } from 'cloudx-react-native';
|
|
567
|
+
|
|
568
|
+
// GDPR: user has granted consent
|
|
569
|
+
CloudX.setHasUserConsent(true);
|
|
570
|
+
|
|
571
|
+
// CCPA / US Privacy: user opted out of sale
|
|
572
|
+
CloudX.setDoNotSell(true);
|
|
573
|
+
|
|
574
|
+
// Clear a previously set override (fall back to CMP signal)
|
|
575
|
+
CloudX.setHasUserConsent(null);
|
|
576
|
+
CloudX.setDoNotSell(null);
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
Call these before `CloudX.initialize()` so the value is available before the first auction.
|
|
580
|
+
|
|
538
581
|
### App Tracking Transparency (iOS)
|
|
539
582
|
|
|
540
583
|
```typescript
|
|
@@ -594,12 +637,12 @@ CloudX.setVisualDebuggingEnabled(true);
|
|
|
594
637
|
- Xcode 14.0+ / CocoaPods (iOS)
|
|
595
638
|
- Gradle 8.0+ / Kotlin 1.8+ (Android)
|
|
596
639
|
|
|
597
|
-
### Native SDK Versions (
|
|
640
|
+
### Native SDK Versions (3.1.0)
|
|
598
641
|
|
|
599
642
|
| Platform | Dependency | Version |
|
|
600
643
|
|----------|-----------|---------|
|
|
601
|
-
| iOS | CloudXCore | ~>
|
|
602
|
-
| Android | io.cloudx:sdk |
|
|
644
|
+
| iOS | CloudXCore | ~> 3.1.0 |
|
|
645
|
+
| Android | io.cloudx:sdk | 3.1.0 |
|
|
603
646
|
|
|
604
647
|
## Troubleshooting
|
|
605
648
|
|
|
@@ -611,7 +654,12 @@ React Native 0.84.0 has a known issue where `TurboModuleRegistry.getEnforcing(..
|
|
|
611
654
|
|
|
612
655
|
This is a React Native framework bug, not a CloudX SDK issue. It manifests as a red screen crash on app launch:
|
|
613
656
|
|
|
614
|
-
|
|
657
|
+
```
|
|
658
|
+
TurboModuleRegistry.getEnforcing(...):
|
|
659
|
+
'PlatformConstants' could not be found. Verify
|
|
660
|
+
that a module by this name is registered in
|
|
661
|
+
the native binary.
|
|
662
|
+
```
|
|
615
663
|
|
|
616
664
|
**Workaround:** Use React Native 0.83.x or wait for the fix in a later 0.84.x patch release. The CloudX SDK is fully compatible with RN 0.70 through 0.83.
|
|
617
665
|
|
|
@@ -624,9 +672,6 @@ This is a React Native framework bug, not a CloudX SDK issue. It manifests as a
|
|
|
624
672
|
|
|
625
673
|
For support, contact mobile@cloudx.io
|
|
626
674
|
|
|
627
|
-
- Email: mobile@cloudx.io
|
|
628
|
-
- Issues: [GitHub Issues](https://github.com/cloudx-io/cloudx-react-native/issues)
|
|
629
|
-
|
|
630
675
|
## License
|
|
631
676
|
|
|
632
677
|
This project is licensed under the Elastic License 2.0 — see the [LICENSE](LICENSE) file for details.
|
package/android/build.gradle
CHANGED
|
@@ -83,7 +83,7 @@ class CloudXModuleImpl(private val reactApplicationContext: ReactApplicationCont
|
|
|
83
83
|
.setPluginVersion(pluginVersion)
|
|
84
84
|
.build()
|
|
85
85
|
|
|
86
|
-
CloudX.initialize(config, object : CloudXInitializationListener {
|
|
86
|
+
CloudX.initialize(reactApplicationContext, config, object : CloudXInitializationListener {
|
|
87
87
|
override fun onInitialized(configuration: CloudXSdkConfiguration) {
|
|
88
88
|
setupOrientationListener()
|
|
89
89
|
val result = Arguments.createMap()
|
|
@@ -149,6 +149,18 @@ class CloudXModuleImpl(private val reactApplicationContext: ReactApplicationCont
|
|
|
149
149
|
CloudX.clearAllKeyValues()
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
+
// =========================================================================
|
|
153
|
+
// Manual Privacy
|
|
154
|
+
// =========================================================================
|
|
155
|
+
|
|
156
|
+
fun setHasUserConsent(hasUserConsent: Boolean?) {
|
|
157
|
+
CloudX.setHasUserConsent(hasUserConsent)
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
fun setDoNotSell(isDoNotSell: Boolean?) {
|
|
161
|
+
CloudX.setDoNotSell(isDoNotSell)
|
|
162
|
+
}
|
|
163
|
+
|
|
152
164
|
// =========================================================================
|
|
153
165
|
// Banner (Programmatic)
|
|
154
166
|
// =========================================================================
|
|
@@ -260,7 +272,10 @@ class CloudXModuleImpl(private val reactApplicationContext: ReactApplicationCont
|
|
|
260
272
|
positionAdView(adUnitId, adFormat)
|
|
261
273
|
|
|
262
274
|
val adView = retrieveAdView(adUnitId, adFormat)
|
|
263
|
-
|
|
275
|
+
// Stop auto-refresh on load if the publisher has not yet
|
|
276
|
+
// called showBanner/showMREC. "Not yet shown" means either
|
|
277
|
+
// the view is hidden or it was loaded detached (new default).
|
|
278
|
+
if (adView != null && (adView.visibility != View.VISIBLE || adView.parent == null)) {
|
|
264
279
|
adView.stopAutoRefresh()
|
|
265
280
|
}
|
|
266
281
|
|
|
@@ -357,16 +372,17 @@ class CloudXModuleImpl(private val reactApplicationContext: ReactApplicationCont
|
|
|
357
372
|
private fun createAdView(adUnitId: String, adFormat: CloudXAdFormat, position: String, xOffset: Double, yOffset: Double) {
|
|
358
373
|
// Run on main thread to ensure there are no concurrency issues with other ad view methods
|
|
359
374
|
reactApplicationContext.runOnUiQueueThread {
|
|
375
|
+
// Intentionally load the ad view while detached from any window.
|
|
376
|
+
// Attaching-then-hiding-then-loading causes the underlying banner
|
|
377
|
+
// to take a prefetch code path whose hidden->visible transition
|
|
378
|
+
// does not reliably insert the adapter subview into the container
|
|
379
|
+
// — the ad is only inserted on the next auto-refresh cycle
|
|
380
|
+
// (~30s). Detached loads use the "display when added to a window"
|
|
381
|
+
// path, so showAdView attaches and displays immediately.
|
|
360
382
|
val adView = retrieveAdView(adUnitId, adFormat, position, Pair(xOffset.toFloat(), yOffset.toFloat()))
|
|
361
383
|
?: return@runOnUiQueueThread
|
|
362
384
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
if (adView.parent == null) {
|
|
366
|
-
maybeAttachToCurrentActivity(adView)
|
|
367
|
-
adViewAdFormats[adUnitId] = adFormat
|
|
368
|
-
positionAdView(adUnitId, adFormat)
|
|
369
|
-
}
|
|
385
|
+
adViewAdFormats[adUnitId] = adFormat
|
|
370
386
|
|
|
371
387
|
adView.load()
|
|
372
388
|
|
|
@@ -409,7 +425,15 @@ class CloudXModuleImpl(private val reactApplicationContext: ReactApplicationCont
|
|
|
409
425
|
return@runOnUiQueueThread
|
|
410
426
|
}
|
|
411
427
|
|
|
412
|
-
|
|
428
|
+
// Lazily attach and position on first show. Attaching here — not
|
|
429
|
+
// on creation — lets the underlying banner's ready-to-display
|
|
430
|
+
// path insert the adapter view on window attachment, avoiding the
|
|
431
|
+
// hidden->visible prefetch-but-not-inserted regression.
|
|
432
|
+
if (adView.parent == null) {
|
|
433
|
+
maybeAttachToCurrentActivity(adView)
|
|
434
|
+
positionAdView(adUnitId, adFormat)
|
|
435
|
+
}
|
|
436
|
+
|
|
413
437
|
adView.visibility = View.VISIBLE
|
|
414
438
|
adView.startAutoRefresh()
|
|
415
439
|
}
|
|
@@ -493,7 +517,7 @@ class CloudXModuleImpl(private val reactApplicationContext: ReactApplicationCont
|
|
|
493
517
|
private fun retrieveInterstitial(adUnitId: String): CloudXInterstitialAd {
|
|
494
518
|
var interstitial = interstitials[adUnitId]
|
|
495
519
|
if (interstitial == null) {
|
|
496
|
-
interstitial = CloudX.createInterstitial(adUnitId)
|
|
520
|
+
interstitial = CloudX.createInterstitial(reactApplicationContext, adUnitId)
|
|
497
521
|
interstitial.listener = createInterstitialListener(adUnitId)
|
|
498
522
|
interstitial.revenueListener = createFullscreenRevenueListener(adUnitId, CloudXAdEvents.ON_INTERSTITIAL_AD_REVENUE_PAID)
|
|
499
523
|
interstitials[adUnitId] = interstitial
|
|
@@ -504,7 +528,7 @@ class CloudXModuleImpl(private val reactApplicationContext: ReactApplicationCont
|
|
|
504
528
|
private fun retrieveRewarded(adUnitId: String): CloudXRewardedAd {
|
|
505
529
|
var rewarded = rewardedAds[adUnitId]
|
|
506
530
|
if (rewarded == null) {
|
|
507
|
-
rewarded = CloudX.createRewarded(adUnitId)
|
|
531
|
+
rewarded = CloudX.createRewarded(reactApplicationContext, adUnitId)
|
|
508
532
|
rewarded.listener = createRewardedListener(adUnitId)
|
|
509
533
|
rewarded.revenueListener = createFullscreenRevenueListener(adUnitId, CloudXAdEvents.ON_REWARDED_AD_REVENUE_PAID)
|
|
510
534
|
rewardedAds[adUnitId] = rewarded
|
|
@@ -519,7 +543,7 @@ class CloudXModuleImpl(private val reactApplicationContext: ReactApplicationCont
|
|
|
519
543
|
private fun retrieveAdView(adUnitId: String, adFormat: CloudXAdFormat, position: String?, offsetsDp: Pair<Float, Float>): SdkAdView? {
|
|
520
544
|
var adView = adViews[adUnitId]
|
|
521
545
|
if (adView == null && position != null) {
|
|
522
|
-
adView = if (adFormat == CloudXAdFormat.MREC) CloudX.createMREC(adUnitId) else CloudX.createBanner(adUnitId)
|
|
546
|
+
adView = if (adFormat == CloudXAdFormat.MREC) CloudX.createMREC(reactApplicationContext, adUnitId) else CloudX.createBanner(reactApplicationContext, adUnitId)
|
|
523
547
|
adView.listener = createAdViewListener(adUnitId, adFormat)
|
|
524
548
|
adView.revenueListener = createAdViewRevenueListener(adUnitId, adFormat)
|
|
525
549
|
adViews[adUnitId] = adView
|
|
@@ -27,6 +27,9 @@ class CloudXModule(reactContext: ReactApplicationContext) :
|
|
|
27
27
|
@ReactMethod override fun setAppKeyValue(key: String, value: String) = impl.setAppKeyValue(key, value)
|
|
28
28
|
@ReactMethod override fun clearAllKeyValues() = impl.clearAllKeyValues()
|
|
29
29
|
|
|
30
|
+
@ReactMethod override fun setHasUserConsent(hasUserConsent: Boolean?) = impl.setHasUserConsent(hasUserConsent)
|
|
31
|
+
@ReactMethod override fun setDoNotSell(isDoNotSell: Boolean?) = impl.setDoNotSell(isDoNotSell)
|
|
32
|
+
|
|
30
33
|
@ReactMethod override fun createBanner(adUnitId: String, position: String) = impl.createBanner(adUnitId, position)
|
|
31
34
|
@ReactMethod override fun createBannerWithOffsets(adUnitId: String, position: String, xOffset: Double, yOffset: Double) = impl.createBannerWithOffsets(adUnitId, position, xOffset, yOffset)
|
|
32
35
|
@ReactMethod override fun setBannerBackgroundColor(adUnitId: String, hexColorString: String) = impl.setBannerBackgroundColor(adUnitId, hexColorString)
|
|
@@ -25,6 +25,9 @@ class CloudXModule(reactContext: ReactApplicationContext) :
|
|
|
25
25
|
@ReactMethod fun setAppKeyValue(key: String, value: String) = impl.setAppKeyValue(key, value)
|
|
26
26
|
@ReactMethod fun clearAllKeyValues() = impl.clearAllKeyValues()
|
|
27
27
|
|
|
28
|
+
@ReactMethod fun setHasUserConsent(hasUserConsent: Boolean?) = impl.setHasUserConsent(hasUserConsent)
|
|
29
|
+
@ReactMethod fun setDoNotSell(isDoNotSell: Boolean?) = impl.setDoNotSell(isDoNotSell)
|
|
30
|
+
|
|
28
31
|
@ReactMethod fun createBanner(adUnitId: String, position: String) = impl.createBanner(adUnitId, position)
|
|
29
32
|
@ReactMethod fun createBannerWithOffsets(adUnitId: String, position: String, xOffset: Double, yOffset: Double) = impl.createBannerWithOffsets(adUnitId, position, xOffset, yOffset)
|
|
30
33
|
@ReactMethod fun setBannerBackgroundColor(adUnitId: String, hexColorString: String) = impl.setBannerBackgroundColor(adUnitId, hexColorString)
|
package/ios/CloudX.mm
CHANGED
|
@@ -214,6 +214,22 @@ RCT_EXPORT_METHOD(clearAllKeyValues)
|
|
|
214
214
|
[[CloudXCore shared] clearAllKeyValues];
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
+
#pragma mark - Manual Privacy
|
|
218
|
+
|
|
219
|
+
// RCT_EXPORT_METHOD applies implicit nonnull to object-pointer arguments via the bridge's
|
|
220
|
+
// NS_ASSUME_NONNULL context, so `nullable` here conflicts with the macro-generated prototype
|
|
221
|
+
// under Release/arm64 archive builds. Bridge semantics already convert JS `null`/`undefined`
|
|
222
|
+
// to Obj-C `nil`, so the clear-value path works regardless of the annotation.
|
|
223
|
+
RCT_EXPORT_METHOD(setHasUserConsent:(NSNumber *)hasUserConsent)
|
|
224
|
+
{
|
|
225
|
+
[CloudXCore setHasUserConsent: hasUserConsent];
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
RCT_EXPORT_METHOD(setDoNotSell:(NSNumber *)isDoNotSell)
|
|
229
|
+
{
|
|
230
|
+
[CloudXCore setDoNotSell: isDoNotSell];
|
|
231
|
+
}
|
|
232
|
+
|
|
217
233
|
#pragma mark - Banners
|
|
218
234
|
|
|
219
235
|
RCT_EXPORT_METHOD(createBanner:(NSString *)adUnitIdentifier position:(NSString *)bannerPosition)
|
|
@@ -709,12 +725,17 @@ RCT_EXPORT_METHOD(destroyRewarded:(NSString *)adUnitIdentifier)
|
|
|
709
725
|
[self executeOnMainQueue:^{
|
|
710
726
|
[self log: @"Creating %ld with ad unit identifier \"%@\", position: \"%@\", and offset: %@", (long)adFormat, adUnitIdentifier, adViewPosition, NSStringFromCGPoint(offset)];
|
|
711
727
|
|
|
728
|
+
// Intentionally load the ad while the view is detached from any window
|
|
729
|
+
// (retrieveAdView no longer auto-attaches on creation). Loading while
|
|
730
|
+
// attached-but-hidden causes the underlying banner to take a prefetch
|
|
731
|
+
// code path whose hidden->visible transition does not reliably insert
|
|
732
|
+
// the adapter subview into the container — the user sees the banner
|
|
733
|
+
// only after the next auto-refresh cycle (~30s). Detached loads use
|
|
734
|
+
// the "display when added to a window" path, which inserts the
|
|
735
|
+
// adapter view as soon as showBanner/showMREC attaches the view.
|
|
712
736
|
CLXBannerAdView *adView = [self retrieveAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat atPosition: adViewPosition withOffset: offset];
|
|
713
|
-
adView.hidden = YES;
|
|
714
|
-
self.safeAreaBackgrounds[adUnitIdentifier].hidden = YES;
|
|
715
737
|
|
|
716
738
|
self.adViewAdFormats[adUnitIdentifier] = @(adFormat);
|
|
717
|
-
[self positionAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat];
|
|
718
739
|
|
|
719
740
|
[adView load];
|
|
720
741
|
|
|
@@ -810,8 +831,30 @@ RCT_EXPORT_METHOD(destroyRewarded:(NSString *)adUnitIdentifier)
|
|
|
810
831
|
{
|
|
811
832
|
[self log: @"%ld does not exist for ad unit identifier %@. Deferring show.", (long)adFormat, adUnitIdentifier];
|
|
812
833
|
[self.adUnitIdentifiersToShowAfterCreate addObject: adUnitIdentifier];
|
|
834
|
+
return;
|
|
813
835
|
}
|
|
814
836
|
|
|
837
|
+
// Lazily attach to the current top view controller and apply layout
|
|
838
|
+
// constraints the first time show is called. Attaching here (rather
|
|
839
|
+
// than on creation) ensures the underlying banner's "ready to display
|
|
840
|
+
// on window attachment" path inserts the adapter view immediately.
|
|
841
|
+
if ( !view.superview )
|
|
842
|
+
{
|
|
843
|
+
UIView *rootView = [self topViewController].view;
|
|
844
|
+
if ( rootView )
|
|
845
|
+
{
|
|
846
|
+
[rootView addSubview: view];
|
|
847
|
+
}
|
|
848
|
+
else
|
|
849
|
+
{
|
|
850
|
+
[self log: @"showAdView: no visible root view for ad unit \"%@\"; deferring.", adUnitIdentifier];
|
|
851
|
+
[self.adUnitIdentifiersToShowAfterCreate addObject: adUnitIdentifier];
|
|
852
|
+
return;
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
[self positionAdViewForAdUnitIdentifier: adUnitIdentifier adFormat: adFormat];
|
|
857
|
+
|
|
815
858
|
self.safeAreaBackgrounds[adUnitIdentifier].hidden = NO;
|
|
816
859
|
view.hidden = NO;
|
|
817
860
|
|
|
@@ -951,15 +994,10 @@ RCT_EXPORT_METHOD(destroyRewarded:(NSString *)adUnitIdentifier)
|
|
|
951
994
|
self.adViewPositions[adUnitIdentifier] = adViewPosition;
|
|
952
995
|
self.adViewOffsets[adUnitIdentifier] = [NSValue valueWithCGPoint: offset];
|
|
953
996
|
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
}
|
|
959
|
-
else
|
|
960
|
-
{
|
|
961
|
-
[self log: @"retrieveAdView: no visible root view for ad unit \"%@\"", adUnitIdentifier];
|
|
962
|
-
}
|
|
997
|
+
// Deliberately do not attach to a window here. showAdView handles
|
|
998
|
+
// attachment so the underlying banner loads while detached and the
|
|
999
|
+
// adapter subview is inserted on window attachment (not on a
|
|
1000
|
+
// hidden->visible transition, which is unreliable).
|
|
963
1001
|
}
|
|
964
1002
|
|
|
965
1003
|
return result;
|
package/lib/commonjs/CloudX.js
CHANGED
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.CloudX = void 0;
|
|
7
7
|
var _NativeCloudX = _interopRequireDefault(require("./specs/NativeCloudX"));
|
|
8
|
+
var _version = require("./version");
|
|
8
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
const VERSION = '2.0.0';
|
|
10
10
|
const isInitialized = () => {
|
|
11
11
|
return _NativeCloudX.default.isInitialized();
|
|
12
12
|
};
|
|
13
13
|
const initialize = appKey => {
|
|
14
|
-
return _NativeCloudX.default.initialize(
|
|
14
|
+
return _NativeCloudX.default.initialize(_version.PLUGIN_VERSION, appKey);
|
|
15
15
|
};
|
|
16
16
|
const isTablet = () => {
|
|
17
17
|
return _NativeCloudX.default.isTablet();
|
|
@@ -37,6 +37,12 @@ const clearAllKeyValues = () => {
|
|
|
37
37
|
const setVisualDebuggingEnabled = enabled => {
|
|
38
38
|
_NativeCloudX.default.setVisualDebuggingEnabled(enabled);
|
|
39
39
|
};
|
|
40
|
+
const setHasUserConsent = hasUserConsent => {
|
|
41
|
+
_NativeCloudX.default.setHasUserConsent(hasUserConsent);
|
|
42
|
+
};
|
|
43
|
+
const setDoNotSell = isDoNotSell => {
|
|
44
|
+
_NativeCloudX.default.setDoNotSell(isDoNotSell);
|
|
45
|
+
};
|
|
40
46
|
const CloudX = exports.CloudX = {
|
|
41
47
|
isInitialized,
|
|
42
48
|
initialize,
|
|
@@ -47,7 +53,9 @@ const CloudX = exports.CloudX = {
|
|
|
47
53
|
setUserKeyValue,
|
|
48
54
|
setAppKeyValue,
|
|
49
55
|
clearAllKeyValues,
|
|
50
|
-
setVisualDebuggingEnabled
|
|
56
|
+
setVisualDebuggingEnabled,
|
|
57
|
+
setHasUserConsent,
|
|
58
|
+
setDoNotSell
|
|
51
59
|
};
|
|
52
60
|
var _default = exports.default = CloudX;
|
|
53
61
|
//# sourceMappingURL=CloudX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_NativeCloudX","_interopRequireDefault","require","e","__esModule","default","
|
|
1
|
+
{"version":3,"names":["_NativeCloudX","_interopRequireDefault","require","_version","e","__esModule","default","isInitialized","NativeCloudX","initialize","appKey","PLUGIN_VERSION","isTablet","getVersion","setMinLogLevel","level","setHashedUserID","hashedUserID","setUserKeyValue","key","value","setAppKeyValue","clearAllKeyValues","setVisualDebuggingEnabled","enabled","setHasUserConsent","hasUserConsent","setDoNotSell","isDoNotSell","CloudX","exports","_default"],"sourceRoot":"../../src","sources":["CloudX.ts"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAA2C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3C,MAAMG,aAAa,GAAGA,CAAA,KAAwB;EAC1C,OAAOC,qBAAY,CAACD,aAAa,CAAC,CAAC;AACvC,CAAC;AAED,MAAME,UAAU,GAAIC,MAAc,IAA0C;EACxE,OAAOF,qBAAY,CAACC,UAAU,CAACE,uBAAc,EAAED,MAAM,CAAC;AAC1D,CAAC;AAED,MAAME,QAAQ,GAAGA,CAAA,KAAwB;EACrC,OAAOJ,qBAAY,CAACI,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,MAAMC,UAAU,GAAGA,CAAA,KAAuB;EACtC,OAAOL,qBAAY,CAACK,UAAU,CAAC,CAAC;AACpC,CAAC;AAED,MAAMC,cAAc,GAAIC,KAA0B,IAAW;EACzDP,qBAAY,CAACM,cAAc,CAACC,KAAK,CAAC;AACtC,CAAC;AAED,MAAMC,eAAe,GAAIC,YAAoB,IAAW;EACpDT,qBAAY,CAACQ,eAAe,CAACC,YAAY,CAAC;AAC9C,CAAC;AAED,MAAMC,eAAe,GAAGA,CAACC,GAAW,EAAEC,KAAa,KAAW;EAC1DZ,qBAAY,CAACU,eAAe,CAACC,GAAG,EAAEC,KAAK,CAAC;AAC5C,CAAC;AAED,MAAMC,cAAc,GAAGA,CAACF,GAAW,EAAEC,KAAa,KAAW;EACzDZ,qBAAY,CAACa,cAAc,CAACF,GAAG,EAAEC,KAAK,CAAC;AAC3C,CAAC;AAED,MAAME,iBAAiB,GAAGA,CAAA,KAAY;EAClCd,qBAAY,CAACc,iBAAiB,CAAC,CAAC;AACpC,CAAC;AAED,MAAMC,yBAAyB,GAAIC,OAAgB,IAAW;EAC1DhB,qBAAY,CAACe,yBAAyB,CAACC,OAAO,CAAC;AACnD,CAAC;AAED,MAAMC,iBAAiB,GAAIC,cAA8B,IAAW;EAChElB,qBAAY,CAACiB,iBAAiB,CAACC,cAAc,CAAC;AAClD,CAAC;AAED,MAAMC,YAAY,GAAIC,WAA2B,IAAW;EACxDpB,qBAAY,CAACmB,YAAY,CAACC,WAAW,CAAC;AAC1C,CAAC;AAEM,MAAMC,MAAkB,GAAAC,OAAA,CAAAD,MAAA,GAAG;EAC9BtB,aAAa;EACbE,UAAU;EACVG,QAAQ;EACRC,UAAU;EACVC,cAAc;EACdE,eAAe;EACfE,eAAe;EACfG,cAAc;EACdC,iBAAiB;EACjBC,yBAAyB;EACzBE,iBAAiB;EACjBE;AACJ,CAAC;AAAC,IAAAI,QAAA,GAAAD,OAAA,CAAAxB,OAAA,GAEauB,MAAM","ignoreList":[]}
|
|
@@ -54,6 +54,8 @@ let CloudXErrorCode = exports.CloudXErrorCode = /*#__PURE__*/function (CloudXErr
|
|
|
54
54
|
CloudXErrorCode[CloudXErrorCode["ADS_DISABLED"] = 301] = "ADS_DISABLED";
|
|
55
55
|
/** No ad available (no fill). */
|
|
56
56
|
CloudXErrorCode[CloudXErrorCode["NO_FILL"] = 302] = "NO_FILL";
|
|
57
|
+
/** `load` was called while a fullscreen ad is currently being displayed. Wait for the hidden callback. */
|
|
58
|
+
CloudXErrorCode[CloudXErrorCode["LOAD_NOT_ALLOWED_WHILE_SHOWING"] = 303] = "LOAD_NOT_ALLOWED_WHILE_SHOWING";
|
|
57
59
|
/** Ad failed to load. */
|
|
58
60
|
CloudXErrorCode[CloudXErrorCode["LOAD_FAILED"] = 304] = "LOAD_FAILED";
|
|
59
61
|
// AD DISPLAY / SHOW (400-499)
|
|
@@ -111,6 +113,8 @@ let CloudXErrorCode = exports.CloudXErrorCode = /*#__PURE__*/function (CloudXErr
|
|
|
111
113
|
CloudXErrorCode[CloudXErrorCode["ADAPTER_MISSING_VIEW_CONTROLLER"] = 620] = "ADAPTER_MISSING_VIEW_CONTROLLER";
|
|
112
114
|
/** Adapter failed to display the ad. */
|
|
113
115
|
CloudXErrorCode[CloudXErrorCode["ADAPTER_DISPLAY_FAILED"] = 621] = "ADAPTER_DISPLAY_FAILED";
|
|
116
|
+
/** Ad network SDK did not complete initialization within the configured per-adapter timeout. */
|
|
117
|
+
CloudXErrorCode[CloudXErrorCode["ADAPTER_INITIALIZATION_TIMEOUT"] = 622] = "ADAPTER_INITIALIZATION_TIMEOUT";
|
|
114
118
|
return CloudXErrorCode;
|
|
115
119
|
}({});
|
|
116
120
|
//# sourceMappingURL=CloudXErrorCode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CloudXErrorCode","exports"],"sourceRoot":"../../src","sources":["CloudXErrorCode.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA,IAaYA,eAAe,GAAAC,OAAA,CAAAD,eAAA,0BAAfA,eAAe;EACvB;EAEA;EAHQA,eAAe,CAAfA,eAAe;EAMvB;EAEA;EARQA,eAAe,CAAfA,eAAe;EAWvB;EAXQA,eAAe,CAAfA,eAAe;EAcvB;EAdQA,eAAe,CAAfA,eAAe;EAiBvB;EAjBQA,eAAe,CAAfA,eAAe;EAoBvB;EApBQA,eAAe,CAAfA,eAAe;EAuBvB;EAvBQA,eAAe,CAAfA,eAAe;EA0BvB;EA1BQA,eAAe,CAAfA,eAAe;EA6BvB;EAEA;EA/BQA,eAAe,CAAfA,eAAe;EAkCvB;EAlCQA,eAAe,CAAfA,eAAe;EAqCvB;EArCQA,eAAe,CAAfA,eAAe;EAwCvB;EAxCQA,eAAe,CAAfA,eAAe;EA2CvB;EA3CQA,eAAe,CAAfA,eAAe;EA8CvB;EAEA;EAhDQA,eAAe,CAAfA,eAAe;EAmDvB;EAnDQA,eAAe,CAAfA,eAAe;EAsDvB;EAtDQA,eAAe,CAAfA,eAAe;EAyDvB;EAzDQA,eAAe,CAAfA,eAAe;EA4DvB;
|
|
1
|
+
{"version":3,"names":["CloudXErrorCode","exports"],"sourceRoot":"../../src","sources":["CloudXErrorCode.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA,IAaYA,eAAe,GAAAC,OAAA,CAAAD,eAAA,0BAAfA,eAAe;EACvB;EAEA;EAHQA,eAAe,CAAfA,eAAe;EAMvB;EAEA;EARQA,eAAe,CAAfA,eAAe;EAWvB;EAXQA,eAAe,CAAfA,eAAe;EAcvB;EAdQA,eAAe,CAAfA,eAAe;EAiBvB;EAjBQA,eAAe,CAAfA,eAAe;EAoBvB;EApBQA,eAAe,CAAfA,eAAe;EAuBvB;EAvBQA,eAAe,CAAfA,eAAe;EA0BvB;EA1BQA,eAAe,CAAfA,eAAe;EA6BvB;EAEA;EA/BQA,eAAe,CAAfA,eAAe;EAkCvB;EAlCQA,eAAe,CAAfA,eAAe;EAqCvB;EArCQA,eAAe,CAAfA,eAAe;EAwCvB;EAxCQA,eAAe,CAAfA,eAAe;EA2CvB;EA3CQA,eAAe,CAAfA,eAAe;EA8CvB;EAEA;EAhDQA,eAAe,CAAfA,eAAe;EAmDvB;EAnDQA,eAAe,CAAfA,eAAe;EAsDvB;EAtDQA,eAAe,CAAfA,eAAe;EAyDvB;EAzDQA,eAAe,CAAfA,eAAe;EA4DvB;EA5DQA,eAAe,CAAfA,eAAe;EA+DvB;EAEA;EAjEQA,eAAe,CAAfA,eAAe;EAoEvB;EApEQA,eAAe,CAAfA,eAAe;EAuEvB;EAvEQA,eAAe,CAAfA,eAAe;EA0EvB;EAEA;EA5EQA,eAAe,CAAfA,eAAe;EA+EvB;EAEA;EAjFQA,eAAe,CAAfA,eAAe;EAoFvB;EApFQA,eAAe,CAAfA,eAAe;EAuFvB;EAvFQA,eAAe,CAAfA,eAAe;EA0FvB;EA1FQA,eAAe,CAAfA,eAAe;EA6FvB;EA7FQA,eAAe,CAAfA,eAAe;EAgGvB;EAhGQA,eAAe,CAAfA,eAAe;EAmGvB;EAnGQA,eAAe,CAAfA,eAAe;EAsGvB;EAtGQA,eAAe,CAAfA,eAAe;EAyGvB;EAzGQA,eAAe,CAAfA,eAAe;EA4GvB;EA5GQA,eAAe,CAAfA,eAAe;EA+GvB;EA/GQA,eAAe,CAAfA,eAAe;EAkHvB;EAlHQA,eAAe,CAAfA,eAAe;EAqHvB;EArHQA,eAAe,CAAfA,eAAe;EAwHvB;EAxHQA,eAAe,CAAfA,eAAe;EA2HvB;EA3HQA,eAAe,CAAfA,eAAe;EA8HvB;EA9HQA,eAAe,CAAfA,eAAe;EAiIvB;EAjIQA,eAAe,CAAfA,eAAe;EAoIvB;EApIQA,eAAe,CAAfA,eAAe;EAuIvB;EAvIQA,eAAe,CAAfA,eAAe;EA0IvB;EA1IQA,eAAe,CAAfA,eAAe;EA6IvB;EA7IQA,eAAe,CAAfA,eAAe;EAgJvB;EAhJQA,eAAe,CAAfA,eAAe;EAmJvB;EAnJQA,eAAe,CAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeCloudX.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeCloudX.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA+IeC,gCAAmB,CAACC,YAAY,CAAO,QAAQ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PLUGIN_VERSION = void 0;
|
|
7
|
+
// Keep PLUGIN_VERSION in sync with the `version` field in package.json.
|
|
8
|
+
// Phase 1 of RELEASE.md bumps both together.
|
|
9
|
+
const PLUGIN_VERSION = exports.PLUGIN_VERSION = '3.1.2';
|
|
10
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PLUGIN_VERSION","exports"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":";;;;;;AAAA;AACA;AACO,MAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,OAAO","ignoreList":[]}
|
package/lib/module/CloudX.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import NativeCloudX from './specs/NativeCloudX';
|
|
2
|
-
|
|
2
|
+
import { PLUGIN_VERSION } from './version';
|
|
3
3
|
const isInitialized = () => {
|
|
4
4
|
return NativeCloudX.isInitialized();
|
|
5
5
|
};
|
|
6
6
|
const initialize = appKey => {
|
|
7
|
-
return NativeCloudX.initialize(
|
|
7
|
+
return NativeCloudX.initialize(PLUGIN_VERSION, appKey);
|
|
8
8
|
};
|
|
9
9
|
const isTablet = () => {
|
|
10
10
|
return NativeCloudX.isTablet();
|
|
@@ -30,6 +30,12 @@ const clearAllKeyValues = () => {
|
|
|
30
30
|
const setVisualDebuggingEnabled = enabled => {
|
|
31
31
|
NativeCloudX.setVisualDebuggingEnabled(enabled);
|
|
32
32
|
};
|
|
33
|
+
const setHasUserConsent = hasUserConsent => {
|
|
34
|
+
NativeCloudX.setHasUserConsent(hasUserConsent);
|
|
35
|
+
};
|
|
36
|
+
const setDoNotSell = isDoNotSell => {
|
|
37
|
+
NativeCloudX.setDoNotSell(isDoNotSell);
|
|
38
|
+
};
|
|
33
39
|
export const CloudX = {
|
|
34
40
|
isInitialized,
|
|
35
41
|
initialize,
|
|
@@ -40,7 +46,9 @@ export const CloudX = {
|
|
|
40
46
|
setUserKeyValue,
|
|
41
47
|
setAppKeyValue,
|
|
42
48
|
clearAllKeyValues,
|
|
43
|
-
setVisualDebuggingEnabled
|
|
49
|
+
setVisualDebuggingEnabled,
|
|
50
|
+
setHasUserConsent,
|
|
51
|
+
setDoNotSell
|
|
44
52
|
};
|
|
45
53
|
export default CloudX;
|
|
46
54
|
//# sourceMappingURL=CloudX.js.map
|
package/lib/module/CloudX.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeCloudX","
|
|
1
|
+
{"version":3,"names":["NativeCloudX","PLUGIN_VERSION","isInitialized","initialize","appKey","isTablet","getVersion","setMinLogLevel","level","setHashedUserID","hashedUserID","setUserKeyValue","key","value","setAppKeyValue","clearAllKeyValues","setVisualDebuggingEnabled","enabled","setHasUserConsent","hasUserConsent","setDoNotSell","isDoNotSell","CloudX"],"sourceRoot":"../../src","sources":["CloudX.ts"],"mappings":"AAEA,OAAOA,YAAY,MAAM,sBAAsB;AAC/C,SAASC,cAAc,QAAQ,WAAW;AAE1C,MAAMC,aAAa,GAAGA,CAAA,KAAwB;EAC1C,OAAOF,YAAY,CAACE,aAAa,CAAC,CAAC;AACvC,CAAC;AAED,MAAMC,UAAU,GAAIC,MAAc,IAA0C;EACxE,OAAOJ,YAAY,CAACG,UAAU,CAACF,cAAc,EAAEG,MAAM,CAAC;AAC1D,CAAC;AAED,MAAMC,QAAQ,GAAGA,CAAA,KAAwB;EACrC,OAAOL,YAAY,CAACK,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,MAAMC,UAAU,GAAGA,CAAA,KAAuB;EACtC,OAAON,YAAY,CAACM,UAAU,CAAC,CAAC;AACpC,CAAC;AAED,MAAMC,cAAc,GAAIC,KAA0B,IAAW;EACzDR,YAAY,CAACO,cAAc,CAACC,KAAK,CAAC;AACtC,CAAC;AAED,MAAMC,eAAe,GAAIC,YAAoB,IAAW;EACpDV,YAAY,CAACS,eAAe,CAACC,YAAY,CAAC;AAC9C,CAAC;AAED,MAAMC,eAAe,GAAGA,CAACC,GAAW,EAAEC,KAAa,KAAW;EAC1Db,YAAY,CAACW,eAAe,CAACC,GAAG,EAAEC,KAAK,CAAC;AAC5C,CAAC;AAED,MAAMC,cAAc,GAAGA,CAACF,GAAW,EAAEC,KAAa,KAAW;EACzDb,YAAY,CAACc,cAAc,CAACF,GAAG,EAAEC,KAAK,CAAC;AAC3C,CAAC;AAED,MAAME,iBAAiB,GAAGA,CAAA,KAAY;EAClCf,YAAY,CAACe,iBAAiB,CAAC,CAAC;AACpC,CAAC;AAED,MAAMC,yBAAyB,GAAIC,OAAgB,IAAW;EAC1DjB,YAAY,CAACgB,yBAAyB,CAACC,OAAO,CAAC;AACnD,CAAC;AAED,MAAMC,iBAAiB,GAAIC,cAA8B,IAAW;EAChEnB,YAAY,CAACkB,iBAAiB,CAACC,cAAc,CAAC;AAClD,CAAC;AAED,MAAMC,YAAY,GAAIC,WAA2B,IAAW;EACxDrB,YAAY,CAACoB,YAAY,CAACC,WAAW,CAAC;AAC1C,CAAC;AAED,OAAO,MAAMC,MAAkB,GAAG;EAC9BpB,aAAa;EACbC,UAAU;EACVE,QAAQ;EACRC,UAAU;EACVC,cAAc;EACdE,eAAe;EACfE,eAAe;EACfG,cAAc;EACdC,iBAAiB;EACjBC,yBAAyB;EACzBE,iBAAiB;EACjBE;AACJ,CAAC;AAED,eAAeE,MAAM","ignoreList":[]}
|
|
@@ -48,6 +48,8 @@ export let CloudXErrorCode = /*#__PURE__*/function (CloudXErrorCode) {
|
|
|
48
48
|
CloudXErrorCode[CloudXErrorCode["ADS_DISABLED"] = 301] = "ADS_DISABLED";
|
|
49
49
|
/** No ad available (no fill). */
|
|
50
50
|
CloudXErrorCode[CloudXErrorCode["NO_FILL"] = 302] = "NO_FILL";
|
|
51
|
+
/** `load` was called while a fullscreen ad is currently being displayed. Wait for the hidden callback. */
|
|
52
|
+
CloudXErrorCode[CloudXErrorCode["LOAD_NOT_ALLOWED_WHILE_SHOWING"] = 303] = "LOAD_NOT_ALLOWED_WHILE_SHOWING";
|
|
51
53
|
/** Ad failed to load. */
|
|
52
54
|
CloudXErrorCode[CloudXErrorCode["LOAD_FAILED"] = 304] = "LOAD_FAILED";
|
|
53
55
|
// AD DISPLAY / SHOW (400-499)
|
|
@@ -105,6 +107,8 @@ export let CloudXErrorCode = /*#__PURE__*/function (CloudXErrorCode) {
|
|
|
105
107
|
CloudXErrorCode[CloudXErrorCode["ADAPTER_MISSING_VIEW_CONTROLLER"] = 620] = "ADAPTER_MISSING_VIEW_CONTROLLER";
|
|
106
108
|
/** Adapter failed to display the ad. */
|
|
107
109
|
CloudXErrorCode[CloudXErrorCode["ADAPTER_DISPLAY_FAILED"] = 621] = "ADAPTER_DISPLAY_FAILED";
|
|
110
|
+
/** Ad network SDK did not complete initialization within the configured per-adapter timeout. */
|
|
111
|
+
CloudXErrorCode[CloudXErrorCode["ADAPTER_INITIALIZATION_TIMEOUT"] = 622] = "ADAPTER_INITIALIZATION_TIMEOUT";
|
|
108
112
|
return CloudXErrorCode;
|
|
109
113
|
}({});
|
|
110
114
|
//# sourceMappingURL=CloudXErrorCode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CloudXErrorCode"],"sourceRoot":"../../src","sources":["CloudXErrorCode.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,eAAe,0BAAfA,eAAe;EACvB;EAEA;EAHQA,eAAe,CAAfA,eAAe;EAMvB;EAEA;EARQA,eAAe,CAAfA,eAAe;EAWvB;EAXQA,eAAe,CAAfA,eAAe;EAcvB;EAdQA,eAAe,CAAfA,eAAe;EAiBvB;EAjBQA,eAAe,CAAfA,eAAe;EAoBvB;EApBQA,eAAe,CAAfA,eAAe;EAuBvB;EAvBQA,eAAe,CAAfA,eAAe;EA0BvB;EA1BQA,eAAe,CAAfA,eAAe;EA6BvB;EAEA;EA/BQA,eAAe,CAAfA,eAAe;EAkCvB;EAlCQA,eAAe,CAAfA,eAAe;EAqCvB;EArCQA,eAAe,CAAfA,eAAe;EAwCvB;EAxCQA,eAAe,CAAfA,eAAe;EA2CvB;EA3CQA,eAAe,CAAfA,eAAe;EA8CvB;EAEA;EAhDQA,eAAe,CAAfA,eAAe;EAmDvB;EAnDQA,eAAe,CAAfA,eAAe;EAsDvB;EAtDQA,eAAe,CAAfA,eAAe;EAyDvB;EAzDQA,eAAe,CAAfA,eAAe;EA4DvB;
|
|
1
|
+
{"version":3,"names":["CloudXErrorCode"],"sourceRoot":"../../src","sources":["CloudXErrorCode.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAYA,eAAe,0BAAfA,eAAe;EACvB;EAEA;EAHQA,eAAe,CAAfA,eAAe;EAMvB;EAEA;EARQA,eAAe,CAAfA,eAAe;EAWvB;EAXQA,eAAe,CAAfA,eAAe;EAcvB;EAdQA,eAAe,CAAfA,eAAe;EAiBvB;EAjBQA,eAAe,CAAfA,eAAe;EAoBvB;EApBQA,eAAe,CAAfA,eAAe;EAuBvB;EAvBQA,eAAe,CAAfA,eAAe;EA0BvB;EA1BQA,eAAe,CAAfA,eAAe;EA6BvB;EAEA;EA/BQA,eAAe,CAAfA,eAAe;EAkCvB;EAlCQA,eAAe,CAAfA,eAAe;EAqCvB;EArCQA,eAAe,CAAfA,eAAe;EAwCvB;EAxCQA,eAAe,CAAfA,eAAe;EA2CvB;EA3CQA,eAAe,CAAfA,eAAe;EA8CvB;EAEA;EAhDQA,eAAe,CAAfA,eAAe;EAmDvB;EAnDQA,eAAe,CAAfA,eAAe;EAsDvB;EAtDQA,eAAe,CAAfA,eAAe;EAyDvB;EAzDQA,eAAe,CAAfA,eAAe;EA4DvB;EA5DQA,eAAe,CAAfA,eAAe;EA+DvB;EAEA;EAjEQA,eAAe,CAAfA,eAAe;EAoEvB;EApEQA,eAAe,CAAfA,eAAe;EAuEvB;EAvEQA,eAAe,CAAfA,eAAe;EA0EvB;EAEA;EA5EQA,eAAe,CAAfA,eAAe;EA+EvB;EAEA;EAjFQA,eAAe,CAAfA,eAAe;EAoFvB;EApFQA,eAAe,CAAfA,eAAe;EAuFvB;EAvFQA,eAAe,CAAfA,eAAe;EA0FvB;EA1FQA,eAAe,CAAfA,eAAe;EA6FvB;EA7FQA,eAAe,CAAfA,eAAe;EAgGvB;EAhGQA,eAAe,CAAfA,eAAe;EAmGvB;EAnGQA,eAAe,CAAfA,eAAe;EAsGvB;EAtGQA,eAAe,CAAfA,eAAe;EAyGvB;EAzGQA,eAAe,CAAfA,eAAe;EA4GvB;EA5GQA,eAAe,CAAfA,eAAe;EA+GvB;EA/GQA,eAAe,CAAfA,eAAe;EAkHvB;EAlHQA,eAAe,CAAfA,eAAe;EAqHvB;EArHQA,eAAe,CAAfA,eAAe;EAwHvB;EAxHQA,eAAe,CAAfA,eAAe;EA2HvB;EA3HQA,eAAe,CAAfA,eAAe;EA8HvB;EA9HQA,eAAe,CAAfA,eAAe;EAiIvB;EAjIQA,eAAe,CAAfA,eAAe;EAoIvB;EApIQA,eAAe,CAAfA,eAAe;EAuIvB;EAvIQA,eAAe,CAAfA,eAAe;EA0IvB;EA1IQA,eAAe,CAAfA,eAAe;EA6IvB;EA7IQA,eAAe,CAAfA,eAAe;EAgJvB;EAhJQA,eAAe,CAAfA,eAAe;EAmJvB;EAnJQA,eAAe,CAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeCloudX.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAGlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["specs/NativeCloudX.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAGlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAuIA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,QAAQ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PLUGIN_VERSION"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":"AAAA;AACA;AACA,OAAO,MAAMA,cAAc,GAAG,OAAO","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudX.d.ts","sourceRoot":"","sources":["../../../src/CloudX.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"CloudX.d.ts","sourceRoot":"","sources":["../../../src/CloudX.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,gBAAgB,CAAC;AAqDtE,eAAO,MAAM,MAAM,EAAE,UAapB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -44,6 +44,8 @@ export declare enum CloudXErrorCode {
|
|
|
44
44
|
ADS_DISABLED = 301,
|
|
45
45
|
/** No ad available (no fill). */
|
|
46
46
|
NO_FILL = 302,
|
|
47
|
+
/** `load` was called while a fullscreen ad is currently being displayed. Wait for the hidden callback. */
|
|
48
|
+
LOAD_NOT_ALLOWED_WHILE_SHOWING = 303,
|
|
47
49
|
/** Ad failed to load. */
|
|
48
50
|
LOAD_FAILED = 304,
|
|
49
51
|
/** Ad is not ready to be shown. */
|
|
@@ -97,6 +99,8 @@ export declare enum CloudXErrorCode {
|
|
|
97
99
|
/** Adapter is missing the required activity (Android) or view controller (iOS). */
|
|
98
100
|
ADAPTER_MISSING_VIEW_CONTROLLER = 620,
|
|
99
101
|
/** Adapter failed to display the ad. */
|
|
100
|
-
ADAPTER_DISPLAY_FAILED = 621
|
|
102
|
+
ADAPTER_DISPLAY_FAILED = 621,
|
|
103
|
+
/** Ad network SDK did not complete initialization within the configured per-adapter timeout. */
|
|
104
|
+
ADAPTER_INITIALIZATION_TIMEOUT = 622
|
|
101
105
|
}
|
|
102
106
|
//# sourceMappingURL=CloudXErrorCode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudXErrorCode.d.ts","sourceRoot":"","sources":["../../../src/CloudXErrorCode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,oBAAY,eAAe;IAGvB,kCAAkC;IAClC,cAAc,IAAI;IAIlB,6BAA6B;IAC7B,aAAa,MAAM;IAEnB,iCAAiC;IACjC,eAAe,MAAM;IAErB,0BAA0B;IAC1B,YAAY,MAAM;IAElB,0BAA0B;IAC1B,YAAY,MAAM;IAElB,0BAA0B;IAC1B,iBAAiB,MAAM;IAEvB,8CAA8C;IAC9C,gBAAgB,MAAM;IAEtB,+BAA+B;IAC/B,aAAa,MAAM;IAInB,8DAA8D;IAC9D,eAAe,MAAM;IAErB,qCAAqC;IACrC,iBAAiB,MAAM;IAEvB,8CAA8C;IAC9C,sBAAsB,MAAM;IAE5B,gCAAgC;IAChC,eAAe,MAAM;IAErB,4CAA4C;IAC5C,YAAY,MAAM;IAIlB,0BAA0B;IAC1B,eAAe,MAAM;IAErB,qCAAqC;IACrC,YAAY,MAAM;IAElB,iCAAiC;IACjC,OAAO,MAAM;IAEb,yBAAyB;IACzB,WAAW,MAAM;IAIjB,mCAAmC;IACnC,YAAY,MAAM;IAElB,gDAAgD;IAChD,kBAAkB,MAAM;IAExB,yEAAyE;IACzE,4BAA4B,MAAM;IAIlC,qCAAqC;IACrC,mBAAmB,MAAM;IAIzB,+CAA+C;IAC/C,sBAAsB,MAAM;IAE5B,gCAAgC;IAChC,eAAe,MAAM;IAErB,8CAA8C;IAC9C,0BAA0B,MAAM;IAEhC,4CAA4C;IAC5C,6BAA6B,MAAM;IAEnC,8CAA8C;IAC9C,6BAA6B,MAAM;IAEnC,uCAAuC;IACvC,mBAAmB,MAAM;IAEzB,kCAAkC;IAClC,uBAAuB,MAAM;IAE7B,oCAAoC;IACpC,4BAA4B,MAAM;IAElC,+BAA+B;IAC/B,oBAAoB,MAAM;IAE1B,8BAA8B;IAC9B,oBAAoB,MAAM;IAE1B,mCAAmC;IACnC,eAAe,MAAM;IAErB,yCAAyC;IACzC,qBAAqB,MAAM;IAE3B,4BAA4B;IAC5B,oBAAoB,MAAM;IAE1B,2CAA2C;IAC3C,yBAAyB,MAAM;IAE/B,2CAA2C;IAC3C,+BAA+B,MAAM;IAErC,2CAA2C;IAC3C,qBAAqB,MAAM;IAE3B,8BAA8B;IAC9B,kBAAkB,MAAM;IAExB,sCAAsC;IACtC,2BAA2B,MAAM;IAEjC,4BAA4B;IAC5B,oBAAoB,MAAM;IAE1B,2CAA2C;IAC3C,gCAAgC,MAAM;IAEtC,mFAAmF;IACnF,+BAA+B,MAAM;IAErC,wCAAwC;IACxC,sBAAsB,MAAM;
|
|
1
|
+
{"version":3,"file":"CloudXErrorCode.d.ts","sourceRoot":"","sources":["../../../src/CloudXErrorCode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,oBAAY,eAAe;IAGvB,kCAAkC;IAClC,cAAc,IAAI;IAIlB,6BAA6B;IAC7B,aAAa,MAAM;IAEnB,iCAAiC;IACjC,eAAe,MAAM;IAErB,0BAA0B;IAC1B,YAAY,MAAM;IAElB,0BAA0B;IAC1B,YAAY,MAAM;IAElB,0BAA0B;IAC1B,iBAAiB,MAAM;IAEvB,8CAA8C;IAC9C,gBAAgB,MAAM;IAEtB,+BAA+B;IAC/B,aAAa,MAAM;IAInB,8DAA8D;IAC9D,eAAe,MAAM;IAErB,qCAAqC;IACrC,iBAAiB,MAAM;IAEvB,8CAA8C;IAC9C,sBAAsB,MAAM;IAE5B,gCAAgC;IAChC,eAAe,MAAM;IAErB,4CAA4C;IAC5C,YAAY,MAAM;IAIlB,0BAA0B;IAC1B,eAAe,MAAM;IAErB,qCAAqC;IACrC,YAAY,MAAM;IAElB,iCAAiC;IACjC,OAAO,MAAM;IAEb,0GAA0G;IAC1G,8BAA8B,MAAM;IAEpC,yBAAyB;IACzB,WAAW,MAAM;IAIjB,mCAAmC;IACnC,YAAY,MAAM;IAElB,gDAAgD;IAChD,kBAAkB,MAAM;IAExB,yEAAyE;IACzE,4BAA4B,MAAM;IAIlC,qCAAqC;IACrC,mBAAmB,MAAM;IAIzB,+CAA+C;IAC/C,sBAAsB,MAAM;IAE5B,gCAAgC;IAChC,eAAe,MAAM;IAErB,8CAA8C;IAC9C,0BAA0B,MAAM;IAEhC,4CAA4C;IAC5C,6BAA6B,MAAM;IAEnC,8CAA8C;IAC9C,6BAA6B,MAAM;IAEnC,uCAAuC;IACvC,mBAAmB,MAAM;IAEzB,kCAAkC;IAClC,uBAAuB,MAAM;IAE7B,oCAAoC;IACpC,4BAA4B,MAAM;IAElC,+BAA+B;IAC/B,oBAAoB,MAAM;IAE1B,8BAA8B;IAC9B,oBAAoB,MAAM;IAE1B,mCAAmC;IACnC,eAAe,MAAM;IAErB,yCAAyC;IACzC,qBAAqB,MAAM;IAE3B,4BAA4B;IAC5B,oBAAoB,MAAM;IAE1B,2CAA2C;IAC3C,yBAAyB,MAAM;IAE/B,2CAA2C;IAC3C,+BAA+B,MAAM;IAErC,2CAA2C;IAC3C,qBAAqB,MAAM;IAE3B,8BAA8B;IAC9B,kBAAkB,MAAM;IAExB,sCAAsC;IACtC,2BAA2B,MAAM;IAEjC,4BAA4B;IAC5B,oBAAoB,MAAM;IAE1B,2CAA2C;IAC3C,gCAAgC,MAAM;IAEtC,mFAAmF;IACnF,+BAA+B,MAAM;IAErC,wCAAwC;IACxC,sBAAsB,MAAM;IAE5B,gGAAgG;IAChG,8BAA8B,MAAM;CACvC"}
|
|
@@ -49,6 +49,8 @@ export interface Spec extends TurboModule {
|
|
|
49
49
|
setUserKeyValue(key: string, value: string): void;
|
|
50
50
|
setAppKeyValue(key: string, value: string): void;
|
|
51
51
|
clearAllKeyValues(): void;
|
|
52
|
+
setHasUserConsent(hasUserConsent: boolean | null): void;
|
|
53
|
+
setDoNotSell(isDoNotSell: boolean | null): void;
|
|
52
54
|
createBanner(adUnitId: string, position: string): void;
|
|
53
55
|
createBannerWithOffsets(adUnitId: string, position: string, xOffset: number, yOffset: number): void;
|
|
54
56
|
setBannerBackgroundColor(adUnitId: string, hexColorString: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeCloudX.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeCloudX.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NativeCloudX.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeCloudX.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,5 +24,21 @@ export type CloudXType = {
|
|
|
24
24
|
clearAllKeyValues(): void;
|
|
25
25
|
/** Enables or disables visual debugging overlay (iOS only; no-op on Android). */
|
|
26
26
|
setVisualDebuggingEnabled(enabled: boolean): void;
|
|
27
|
+
/**
|
|
28
|
+
* Sets the GDPR user-consent flag for publishers not using a CMP.
|
|
29
|
+
*
|
|
30
|
+
* Pass `true` if the user has granted consent, `false` if denied, or `null`
|
|
31
|
+
* to clear a previously-set value. If IAB consent strings (GPP/TCF) are
|
|
32
|
+
* present in platform shared preferences, they take priority over this flag.
|
|
33
|
+
*/
|
|
34
|
+
setHasUserConsent(hasUserConsent: boolean | null): void;
|
|
35
|
+
/**
|
|
36
|
+
* Sets the CCPA "do not sell" flag for publishers not using a CMP.
|
|
37
|
+
*
|
|
38
|
+
* Pass `true` if the user opted out of sale, `false` if not, or `null` to
|
|
39
|
+
* clear a previously-set value. IAB consent strings (GPP/US Privacy) take
|
|
40
|
+
* priority when present.
|
|
41
|
+
*/
|
|
42
|
+
setDoNotSell(isDoNotSell: boolean | null): void;
|
|
27
43
|
};
|
|
28
44
|
//# sourceMappingURL=CloudX.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CloudX.d.ts","sourceRoot":"","sources":["../../../../src/types/CloudX.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACrB,oDAAoD;IACpD,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC,yDAAyD;IACzD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEhE,qDAAqD;IACrD,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7B,6CAA6C;IAC7C,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,yDAAyD;IACzD,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEjD,2CAA2C;IAC3C,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C,sDAAsD;IACtD,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAElD,sDAAsD;IACtD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjD,uCAAuC;IACvC,iBAAiB,IAAI,IAAI,CAAC;IAE1B,iFAAiF;IACjF,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"CloudX.d.ts","sourceRoot":"","sources":["../../../../src/types/CloudX.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3F;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACrB,oDAAoD;IACpD,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC,yDAAyD;IACzD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEhE,qDAAqD;IACrD,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7B,6CAA6C;IAC7C,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,yDAAyD;IACzD,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEjD,2CAA2C;IAC3C,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C,sDAAsD;IACtD,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAElD,sDAAsD;IACtD,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjD,uCAAuC;IACvC,iBAAiB,IAAI,IAAI,CAAC;IAE1B,iFAAiF;IACjF,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAElD;;;;;;OAMG;IACH,iBAAiB,CAAC,cAAc,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;IAExD;;;;;;OAMG;IACH,YAAY,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;CACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloudx-react-native",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.2",
|
|
4
4
|
"description": "React Native wrapper for CloudX SDK (iOS & Android)",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -22,10 +22,6 @@
|
|
|
22
22
|
"!android/.cxx",
|
|
23
23
|
"!ios/build"
|
|
24
24
|
],
|
|
25
|
-
"repository": {
|
|
26
|
-
"type": "git",
|
|
27
|
-
"url": "https://github.com/cloudx-io/cloudx-react-native.git"
|
|
28
|
-
},
|
|
29
25
|
"scripts": {
|
|
30
26
|
"prepare": "bob build",
|
|
31
27
|
"typescript": "tsc --noEmit",
|
|
@@ -49,8 +45,6 @@
|
|
|
49
45
|
},
|
|
50
46
|
"devDependencies": {
|
|
51
47
|
"@types/react": "^18.0.0",
|
|
52
|
-
"react": "^18.0.0",
|
|
53
|
-
"react-native": "^0.76.0",
|
|
54
48
|
"react-native-builder-bob": "^0.20.4",
|
|
55
49
|
"typescript": "^5.2.2"
|
|
56
50
|
},
|
package/src/CloudX.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import type { CloudXType, CloudXLogLevelValue } from './types/CloudX';
|
|
2
2
|
import type { CloudXInitializationResult } from './types/Configuration';
|
|
3
3
|
import NativeCloudX from './specs/NativeCloudX';
|
|
4
|
-
|
|
5
|
-
const VERSION = '2.0.0';
|
|
4
|
+
import { PLUGIN_VERSION } from './version';
|
|
6
5
|
|
|
7
6
|
const isInitialized = (): Promise<boolean> => {
|
|
8
7
|
return NativeCloudX.isInitialized();
|
|
9
8
|
};
|
|
10
9
|
|
|
11
10
|
const initialize = (appKey: string): Promise<CloudXInitializationResult> => {
|
|
12
|
-
return NativeCloudX.initialize(
|
|
11
|
+
return NativeCloudX.initialize(PLUGIN_VERSION, appKey);
|
|
13
12
|
};
|
|
14
13
|
|
|
15
14
|
const isTablet = (): Promise<boolean> => {
|
|
@@ -44,6 +43,14 @@ const setVisualDebuggingEnabled = (enabled: boolean): void => {
|
|
|
44
43
|
NativeCloudX.setVisualDebuggingEnabled(enabled);
|
|
45
44
|
};
|
|
46
45
|
|
|
46
|
+
const setHasUserConsent = (hasUserConsent: boolean | null): void => {
|
|
47
|
+
NativeCloudX.setHasUserConsent(hasUserConsent);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const setDoNotSell = (isDoNotSell: boolean | null): void => {
|
|
51
|
+
NativeCloudX.setDoNotSell(isDoNotSell);
|
|
52
|
+
};
|
|
53
|
+
|
|
47
54
|
export const CloudX: CloudXType = {
|
|
48
55
|
isInitialized,
|
|
49
56
|
initialize,
|
|
@@ -55,6 +62,8 @@ export const CloudX: CloudXType = {
|
|
|
55
62
|
setAppKeyValue,
|
|
56
63
|
clearAllKeyValues,
|
|
57
64
|
setVisualDebuggingEnabled,
|
|
65
|
+
setHasUserConsent,
|
|
66
|
+
setDoNotSell,
|
|
58
67
|
};
|
|
59
68
|
|
|
60
69
|
export default CloudX;
|
package/src/CloudXErrorCode.ts
CHANGED
|
@@ -68,6 +68,9 @@ export enum CloudXErrorCode {
|
|
|
68
68
|
/** No ad available (no fill). */
|
|
69
69
|
NO_FILL = 302,
|
|
70
70
|
|
|
71
|
+
/** `load` was called while a fullscreen ad is currently being displayed. Wait for the hidden callback. */
|
|
72
|
+
LOAD_NOT_ALLOWED_WHILE_SHOWING = 303,
|
|
73
|
+
|
|
71
74
|
/** Ad failed to load. */
|
|
72
75
|
LOAD_FAILED = 304,
|
|
73
76
|
|
|
@@ -154,4 +157,7 @@ export enum CloudXErrorCode {
|
|
|
154
157
|
|
|
155
158
|
/** Adapter failed to display the ad. */
|
|
156
159
|
ADAPTER_DISPLAY_FAILED = 621,
|
|
160
|
+
|
|
161
|
+
/** Ad network SDK did not complete initialization within the configured per-adapter timeout. */
|
|
162
|
+
ADAPTER_INITIALIZATION_TIMEOUT = 622,
|
|
157
163
|
}
|
|
@@ -78,6 +78,13 @@ export interface Spec extends TurboModule {
|
|
|
78
78
|
setAppKeyValue(key: string, value: string): void;
|
|
79
79
|
clearAllKeyValues(): void;
|
|
80
80
|
|
|
81
|
+
// =========================================================================
|
|
82
|
+
// Privacy (manual, CMP-less fallback)
|
|
83
|
+
// =========================================================================
|
|
84
|
+
|
|
85
|
+
setHasUserConsent(hasUserConsent: boolean | null): void;
|
|
86
|
+
setDoNotSell(isDoNotSell: boolean | null): void;
|
|
87
|
+
|
|
81
88
|
// =========================================================================
|
|
82
89
|
// Banner (Programmatic)
|
|
83
90
|
// =========================================================================
|
package/src/types/CloudX.ts
CHANGED
|
@@ -35,4 +35,22 @@ export type CloudXType = {
|
|
|
35
35
|
|
|
36
36
|
/** Enables or disables visual debugging overlay (iOS only; no-op on Android). */
|
|
37
37
|
setVisualDebuggingEnabled(enabled: boolean): void;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Sets the GDPR user-consent flag for publishers not using a CMP.
|
|
41
|
+
*
|
|
42
|
+
* Pass `true` if the user has granted consent, `false` if denied, or `null`
|
|
43
|
+
* to clear a previously-set value. If IAB consent strings (GPP/TCF) are
|
|
44
|
+
* present in platform shared preferences, they take priority over this flag.
|
|
45
|
+
*/
|
|
46
|
+
setHasUserConsent(hasUserConsent: boolean | null): void;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Sets the CCPA "do not sell" flag for publishers not using a CMP.
|
|
50
|
+
*
|
|
51
|
+
* Pass `true` if the user opted out of sale, `false` if not, or `null` to
|
|
52
|
+
* clear a previously-set value. IAB consent strings (GPP/US Privacy) take
|
|
53
|
+
* priority when present.
|
|
54
|
+
*/
|
|
55
|
+
setDoNotSell(isDoNotSell: boolean | null): void;
|
|
38
56
|
};
|
package/src/version.ts
ADDED