@ezoic/react-native-sdk 1.11.1 → 1.13.0

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.
@@ -1,4 +1,5 @@
1
1
  import Foundation
2
+ import UIKit
2
3
  import EzoicAdsSDKBinary
3
4
 
4
5
  @objc public class EzoicAdsImpl: NSObject {
@@ -6,6 +7,10 @@ import EzoicAdsSDKBinary
6
7
  /// Set by the Obj-C module to forward rewarded lifecycle events to JS.
7
8
  @objc public var eventEmitter: ((String, [String: Any]) -> Void)?
8
9
 
10
+ /// Set by the Obj-C module to resolve the view controller consent dialogs
11
+ /// are presented from (`RCTPresentedViewController()`). Called on main.
12
+ @objc public var hostViewControllerProvider: (() -> UIViewController?)?
13
+
9
14
  /// Loaded rewarded ads awaiting `show`, keyed by ad unit id.
10
15
  private var rewardedAds: [Int: EzoicRewardedAd] = [:]
11
16
 
@@ -79,7 +84,7 @@ import EzoicAdsSDKBinary
79
84
  @objc public func initialize(_ config: NSDictionary,
80
85
  resolve: @escaping (Any?) -> Void,
81
86
  reject: @escaping (String, String, NSError?) -> Void) {
82
- onMain {
87
+ onMain { [weak self] in
83
88
  guard let domain = config["domain"] as? String, !domain.isEmpty else {
84
89
  reject("EzoicAds", "initialize requires a non-empty `domain`.", nil)
85
90
  return
@@ -90,12 +95,18 @@ import EzoicAdsSDKBinary
90
95
  subjectToCOPPA: (config["subjectToCOPPA"] as? Bool) ?? false,
91
96
  requestATTBeforeAds: (config["requestATTBeforeAds"] as? Bool) ?? true,
92
97
  debugEnabled: (config["debugEnabled"] as? Bool) ?? false,
93
- testMode: (config["testMode"] as? Bool) ?? false
98
+ testMode: (config["testMode"] as? Bool) ?? false,
99
+ autoTrackPageviews: (config["autoTrackPageviews"] as? Bool) ?? true,
100
+ cmpEnabled: (config["cmpEnabled"] as? Bool) ?? true
94
101
  )
102
+ let autoPresentConsent = (config["autoPresentConsent"] as? Bool) ?? true
95
103
  EzoicAds.shared.initialize(with: configuration) { result in
96
104
  switch result {
97
105
  case .success:
98
106
  resolve(nil)
107
+ if autoPresentConsent {
108
+ self?.presentConsentAfterInit(debug: configuration.debugEnabled)
109
+ }
99
110
  case .failure(let error):
100
111
  reject("EzoicAds", error.localizedDescription, error as NSError)
101
112
  }
@@ -121,11 +132,114 @@ import EzoicAdsSDKBinary
121
132
  }
122
133
  }
123
134
 
124
- @objc public func trackPageview(_ resolve: @escaping (Any?) -> Void) {
135
+ @objc public func trackPageview(_ screen: String?, resolve: @escaping (Any?) -> Void) {
125
136
  onMain {
126
- EzoicAds.shared.trackPageview { success in
127
- resolve(NSNumber(value: success))
137
+ let completion: (Bool) -> Void = { success in resolve(NSNumber(value: success)) }
138
+ if let screen = screen, !screen.isEmpty {
139
+ EzoicAds.shared.trackPageview(screen: screen, completion: completion)
140
+ } else {
141
+ EzoicAds.shared.trackPageview(completion: completion)
142
+ }
143
+ }
144
+ }
145
+
146
+ /// `error` as an `NSError` whose `userInfo` also carries the numeric
147
+ /// `EzoicError.code`, which JS reads as `error.userInfo.code` on a rejected load.
148
+ private static func loadError(_ error: EzoicError) -> NSError {
149
+ let bridged = error as NSError
150
+ var userInfo = bridged.userInfo
151
+ userInfo[NSLocalizedDescriptionKey] = error.localizedDescription
152
+ userInfo["code"] = error.code
153
+ return NSError(domain: bridged.domain, code: bridged.code, userInfo: userInfo)
154
+ }
155
+
156
+ // MARK: - Consent
157
+
158
+ /// Presents the consent dialog once after a successful `initialize`. Native
159
+ /// returns `.notRequired` outside GDPR / with `cmpEnabled: false` / with
160
+ /// another CMP or manual consent, so this is a no-op there. The outcome is
161
+ /// only logged; publishers wanting it call `presentConsentIfRequired`.
162
+ private func presentConsentAfterInit(debug: Bool) {
163
+ onMain { [weak self] in
164
+ guard let host = self?.hostViewControllerProvider?() else {
165
+ if debug { NSLog("[EzoicReactNativeSdk] autoPresentConsent skipped: no foreground view controller") }
166
+ return
167
+ }
168
+ EzoicAds.shared.presentConsentIfRequired(from: host) { outcome in
169
+ if debug { NSLog("[EzoicReactNativeSdk] autoPresentConsent outcome: %@", String(describing: outcome)) }
170
+ }
171
+ }
172
+ }
173
+
174
+ @objc public func presentConsentIfRequired(_ resolve: @escaping (Any?) -> Void) {
175
+ presentConsent(resolve) { host, completion in
176
+ EzoicAds.shared.presentConsentIfRequired(from: host, completion: completion)
177
+ }
178
+ }
179
+
180
+ @objc public func presentConsentSettings(_ resolve: @escaping (Any?) -> Void) {
181
+ presentConsent(resolve) { host, completion in
182
+ EzoicAds.shared.presentConsentSettings(from: host, completion: completion)
183
+ }
184
+ }
185
+
186
+ @objc public func isConsentRequired(_ resolve: @escaping (Any?) -> Void) {
187
+ onMain {
188
+ resolve(EzoicAds.shared.isConsentRequired.map { NSNumber(value: $0) })
189
+ }
190
+ }
191
+
192
+ @objc public func resetConsent() {
193
+ onMain {
194
+ EzoicAds.shared.resetConsent()
195
+ }
196
+ }
197
+
198
+ /// Presents from the top-most view controller on main and always resolves
199
+ /// with an outcome dictionary; with no view controller it resolves `failed(-1)`.
200
+ private func presentConsent(
201
+ _ resolve: @escaping (Any?) -> Void,
202
+ _ present: @escaping (UIViewController, @escaping (ConsentOutcome) -> Void) -> Void
203
+ ) {
204
+ onMain { [weak self] in
205
+ guard let host = self?.hostViewControllerProvider?() else {
206
+ resolve(Self.consentFailure(code: Self.noHostCode, message: Self.noHostMessage))
207
+ return
208
+ }
209
+ present(host) { outcome in resolve(Self.consentOutcomeMap(outcome)) }
210
+ }
211
+ }
212
+
213
+ private static let noHostCode = -1
214
+ private static let noHostMessage = "No foreground Activity"
215
+
216
+ private static func consentFailure(code: Int, message: String) -> [String: Any] {
217
+ return ["type": "failed", "code": code, "message": message]
218
+ }
219
+
220
+ private static func consentOutcomeMap(_ outcome: ConsentOutcome) -> [String: Any] {
221
+ switch outcome {
222
+ case .notRequired:
223
+ return ["type": "notRequired"]
224
+ case .alreadyDecided:
225
+ return ["type": "alreadyDecided"]
226
+ case .dismissed:
227
+ return ["type": "dismissed"]
228
+ case .alreadyPresenting:
229
+ return ["type": "alreadyPresenting"]
230
+ case .decided(let decision):
231
+ let name: String
232
+ switch decision {
233
+ case .acceptAll: name = "acceptAll"
234
+ case .rejectAll: name = "rejectAll"
235
+ case .custom: name = "custom"
236
+ @unknown default: return consentFailure(code: -1, message: "Unrecognized outcome")
128
237
  }
238
+ return ["type": "decided", "decision": name]
239
+ case .failed(let error):
240
+ return consentFailure(code: error.code, message: error.localizedDescription)
241
+ @unknown default:
242
+ return consentFailure(code: -1, message: "Unrecognized outcome")
129
243
  }
130
244
  }
131
245
 
@@ -153,7 +267,7 @@ import EzoicAdsSDKBinary
153
267
  self.rewardedAds[id] = ad
154
268
  resolve(nil)
155
269
  case .failure(let error):
156
- reject("EzoicAds", error.localizedDescription, error as NSError)
270
+ reject("EzoicAds", error.localizedDescription, Self.loadError(error))
157
271
  }
158
272
  }
159
273
  }
@@ -214,7 +328,7 @@ import EzoicAdsSDKBinary
214
328
  self.interstitialAds[id] = ad
215
329
  resolve(nil)
216
330
  case .failure(let error):
217
- reject("EzoicAds", error.localizedDescription, error as NSError)
331
+ reject("EzoicAds", error.localizedDescription, Self.loadError(error))
218
332
  }
219
333
  }
220
334
  }
@@ -467,6 +581,6 @@ extension EzoicAdsImpl: EzoicInstreamAdDelegate {
467
581
  guard let pending = pendingInstreamLoads[id], !pending.settled else { return }
468
582
  pending.settled = true
469
583
  pendingInstreamLoads.removeValue(forKey: id)
470
- pending.reject("EzoicAds", error.localizedDescription, error as NSError)
584
+ pending.reject("EzoicAds", error.localizedDescription, Self.loadError(error))
471
585
  }
472
586
  }
@@ -1,5 +1,6 @@
1
1
  #import "EzoicReactNativeSdk.h"
2
2
  #import <EzoicReactNativeSdk/EzoicReactNativeSdk-Swift.h>
3
+ #import <React/RCTUtils.h>
3
4
 
4
5
  static NSString *const kEzoicRewardedEvent = @"EzoicRewardedAdEvent";
5
6
  static NSString *const kEzoicInterstitialEvent = @"EzoicInterstitialAdEvent";
@@ -22,6 +23,9 @@ static NSString *const kEzoicInterstitialEvent = @"EzoicInterstitialAdEvent";
22
23
  [strongSelf sendEventWithName:name body:body];
23
24
  }
24
25
  };
26
+ _impl.hostViewControllerProvider = ^UIViewController *_Nullable {
27
+ return RCTPresentedViewController();
28
+ };
25
29
  }
26
30
  return self;
27
31
  }
@@ -57,6 +61,9 @@ static NSString *const kEzoicInterstitialEvent = @"EzoicInterstitialAdEvent";
57
61
  if (config.requestATTBeforeAds().has_value()) dict[@"requestATTBeforeAds"] = @(config.requestATTBeforeAds().value());
58
62
  if (config.debugEnabled().has_value()) dict[@"debugEnabled"] = @(config.debugEnabled().value());
59
63
  if (config.testMode().has_value()) dict[@"testMode"] = @(config.testMode().value());
64
+ if (config.autoTrackPageviews().has_value()) dict[@"autoTrackPageviews"] = @(config.autoTrackPageviews().value());
65
+ if (config.cmpEnabled().has_value()) dict[@"cmpEnabled"] = @(config.cmpEnabled().value());
66
+ if (config.autoPresentConsent().has_value()) dict[@"autoPresentConsent"] = @(config.autoPresentConsent().value());
60
67
  [_impl initialize:dict
61
68
  resolve:^(id _Nullable v) { resolve(v); }
62
69
  reject:^(NSString *code, NSString *msg, NSError *_Nullable e) { reject(code, msg, e); }];
@@ -74,8 +81,26 @@ static NSString *const kEzoicInterstitialEvent = @"EzoicInterstitialAdEvent";
74
81
  [_impl setSubjectToCOPPA:value];
75
82
  }
76
83
 
77
- - (void)trackPageview:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
78
- [_impl trackPageview:^(id _Nullable v) { resolve(v); }];
84
+ - (void)trackPageview:(NSString * _Nullable)screen
85
+ resolve:(RCTPromiseResolveBlock)resolve
86
+ reject:(RCTPromiseRejectBlock)reject {
87
+ [_impl trackPageview:screen resolve:^(id _Nullable v) { resolve(v); }];
88
+ }
89
+
90
+ - (void)presentConsentIfRequired:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
91
+ [_impl presentConsentIfRequired:^(id _Nullable v) { resolve(v); }];
92
+ }
93
+
94
+ - (void)presentConsentSettings:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
95
+ [_impl presentConsentSettings:^(id _Nullable v) { resolve(v); }];
96
+ }
97
+
98
+ - (void)isConsentRequired:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
99
+ [_impl isConsentRequired:^(id _Nullable v) { resolve(v); }];
100
+ }
101
+
102
+ - (void)resetConsent {
103
+ [_impl resetConsent];
79
104
  }
80
105
 
81
106
  - (void)loadRewardedAd:(NSString *)adUnitIdentifier
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ /** Which button the user closed the consent dialog with. */
4
+
5
+ /**
6
+ * Result of `EzoicAds.presentConsentIfRequired` / `presentConsentSettings`.
7
+ *
8
+ * - `notRequired`: GDPR doesn't apply, the built-in CMP is disabled, another
9
+ * CMP owns consent, or consent is managed by the app (`setGDPRConsent`, or
10
+ * `autoReadConsent: false`).
11
+ * - `alreadyDecided`: a still-valid decision is stored; no dialog was shown.
12
+ * - `decided`: the user made a choice, which has been saved.
13
+ * - `dismissed`: the dialog closed without a choice; ads stay gated for this
14
+ * session.
15
+ * - `alreadyPresenting`: a consent dialog is already on screen or being
16
+ * prepared.
17
+ * - `failed`: the dialog could not be shown. `code` is the native
18
+ * `EzoicError` code, or `-1` (`'No foreground Activity'`) when the wrapper
19
+ * had no foreground Activity / view controller: native was not called, ads
20
+ * stay gated, and you should call again once a screen is showing.
21
+ */
22
+
23
+ const SIMPLE_TYPES = ['notRequired', 'alreadyDecided', 'dismissed', 'alreadyPresenting'];
24
+ const DECISIONS = ['acceptAll', 'rejectAll', 'custom'];
25
+ export function consentFailure(code, message) {
26
+ return {
27
+ type: 'failed',
28
+ code,
29
+ message
30
+ };
31
+ }
32
+
33
+ /**
34
+ * Maps the native glue's outcome map to `EzoicConsentOutcome`. Anything that
35
+ * doesn't match the wire format becomes `failed(-1, 'Unrecognized outcome')`.
36
+ */
37
+ export function parseConsentOutcome(raw) {
38
+ if (raw && typeof raw === 'object' && !Array.isArray(raw)) {
39
+ const {
40
+ type,
41
+ decision,
42
+ code,
43
+ message
44
+ } = raw;
45
+ const simple = SIMPLE_TYPES.find(t => t === type);
46
+ if (simple) return {
47
+ type: simple
48
+ };
49
+ if (type === 'decided' && typeof decision === 'string' && DECISIONS.includes(decision)) {
50
+ return {
51
+ type: 'decided',
52
+ decision: decision
53
+ };
54
+ }
55
+ if (type === 'failed') {
56
+ return consentFailure(typeof code === 'number' ? code : -1, typeof message === 'string' ? message : 'Unknown error');
57
+ }
58
+ }
59
+ return consentFailure(-1, 'Unrecognized outcome');
60
+ }
61
+ //# sourceMappingURL=EzoicConsent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SIMPLE_TYPES","DECISIONS","consentFailure","code","message","type","parseConsentOutcome","raw","Array","isArray","decision","simple","find","t","includes"],"sourceRoot":"../../src","sources":["EzoicConsent.ts"],"mappings":";;AAAA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA,MAAMA,YAAY,GAAG,CACnB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,mBAAmB,CACX;AAEV,MAAMC,SAA4B,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC;AAEzE,OAAO,SAASC,cAAcA,CAC5BC,IAAY,EACZC,OAAe,EACM;EACrB,OAAO;IAAEC,IAAI,EAAE,QAAQ;IAAEF,IAAI;IAAEC;EAAQ,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASE,mBAAmBA,CAACC,GAAY,EAAuB;EACrE,IAAIA,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,GAAG,CAAC,EAAE;IACzD,MAAM;MAAEF,IAAI;MAAEK,QAAQ;MAAEP,IAAI;MAAEC;IAAQ,CAAC,GAAGG,GAA8B;IACxE,MAAMI,MAAM,GAAGX,YAAY,CAACY,IAAI,CAAEC,CAAC,IAAKA,CAAC,KAAKR,IAAI,CAAC;IACnD,IAAIM,MAAM,EAAE,OAAO;MAAEN,IAAI,EAAEM;IAAO,CAAC;IACnC,IACEN,IAAI,KAAK,SAAS,IAClB,OAAOK,QAAQ,KAAK,QAAQ,IAC5BT,SAAS,CAACa,QAAQ,CAACJ,QAAQ,CAAC,EAC5B;MACA,OAAO;QAAEL,IAAI,EAAE,SAAS;QAAEK,QAAQ,EAAEA;MAAiC,CAAC;IACxE;IACA,IAAIL,IAAI,KAAK,QAAQ,EAAE;MACrB,OAAOH,cAAc,CACnB,OAAOC,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAG,CAAC,CAAC,EACpC,OAAOC,OAAO,KAAK,QAAQ,GAAGA,OAAO,GAAG,eAC1C,CAAC;IACH;EACF;EACA,OAAOF,cAAc,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC;AACnD","ignoreList":[]}
@@ -9,5 +9,12 @@ import { TurboModuleRegistry } from 'react-native';
9
9
  * maps this to `EzoicReward | null`.
10
10
  */
11
11
 
12
+ /**
13
+ * Wire format of a consent outcome from the native glue (see
14
+ * `parseConsentOutcome`): `type` is one of `notRequired`, `alreadyDecided`,
15
+ * `dismissed`, `alreadyPresenting`, `decided` (with `decision`) or `failed`
16
+ * (with `code` and `message`).
17
+ */
18
+
12
19
  export default TurboModuleRegistry.getEnforcing('EzoicReactNativeSdk');
13
20
  //# sourceMappingURL=NativeEzoicAds.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeEzoicAds.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAWlD;AACA;AACA;AACA;AACA;AACA;;AA2CA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,qBAAqB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeEzoicAds.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAiBlD;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;;AAkDA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,qBAAqB,CAAC","ignoreList":[]}
@@ -12,6 +12,9 @@ export function normalizeConfig(config) {
12
12
  if (config.requestATTBeforeAds !== undefined) out.requestATTBeforeAds = config.requestATTBeforeAds;
13
13
  if (config.debugEnabled !== undefined) out.debugEnabled = config.debugEnabled;
14
14
  if (config.testMode !== undefined) out.testMode = config.testMode;
15
+ if (config.autoTrackPageviews !== undefined) out.autoTrackPageviews = config.autoTrackPageviews;
16
+ if (config.cmpEnabled !== undefined) out.cmpEnabled = config.cmpEnabled;
17
+ if (config.autoPresentConsent !== undefined) out.autoPresentConsent = config.autoPresentConsent;
15
18
  return out;
16
19
  }
17
20
  export function normalizeSize(size) {
@@ -1 +1 @@
1
- {"version":3,"names":["normalizeConfig","config","domain","Error","out","autoReadConsent","undefined","subjectToCOPPA","requestATTBeforeAds","debugEnabled","testMode","normalizeSize","size","split","map","s","trim","filter","length","join","coerceAdUnitId","adUnitIdentifier","String","mapRewardResult","result","earned","type","amount"],"sourceRoot":"../../src","sources":["helpers.ts"],"mappings":";;AAEA,OAAO,SAASA,eAAeA,CAACC,MAAmB,EAAe;EAChE,IAAI,CAACA,MAAM,IAAI,CAACA,MAAM,CAACC,MAAM,EAAE;IAC7B,MAAM,IAAIC,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,MAAMC,GAAgB,GAAG;IAAEF,MAAM,EAAED,MAAM,CAACC;EAAO,CAAC;EAClD,IAAID,MAAM,CAACI,eAAe,KAAKC,SAAS,EACtCF,GAAG,CAACC,eAAe,GAAGJ,MAAM,CAACI,eAAe;EAC9C,IAAIJ,MAAM,CAACM,cAAc,KAAKD,SAAS,EACrCF,GAAG,CAACG,cAAc,GAAGN,MAAM,CAACM,cAAc;EAC5C,IAAIN,MAAM,CAACO,mBAAmB,KAAKF,SAAS,EAC1CF,GAAG,CAACI,mBAAmB,GAAGP,MAAM,CAACO,mBAAmB;EACtD,IAAIP,MAAM,CAACQ,YAAY,KAAKH,SAAS,EAAEF,GAAG,CAACK,YAAY,GAAGR,MAAM,CAACQ,YAAY;EAC7E,IAAIR,MAAM,CAACS,QAAQ,KAAKJ,SAAS,EAAEF,GAAG,CAACM,QAAQ,GAAGT,MAAM,CAACS,QAAQ;EACjE,OAAON,GAAG;AACZ;AAEA,OAAO,SAASO,aAAaA,CAACC,IAAwB,EAAU;EAC9D,IAAI,CAACA,IAAI,EAAE,OAAO,EAAE;EACpB,OAAOA,IAAI,CACRC,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,CACpBC,MAAM,CAAEF,CAAC,IAAKA,CAAC,CAACG,MAAM,GAAG,CAAC,CAAC,CAC3BC,IAAI,CAAC,GAAG,CAAC;AACd;AAEA,OAAO,SAASC,cAAcA,CAACC,gBAAiC,EAAU;EACxE,OAAOC,MAAM,CAACD,gBAAgB,CAAC;AACjC;AAQA;AACA;AACA;AACA;AACA,OAAO,SAASE,eAAeA,CAC7BC,MAA2C,EACF;EACzC,IAAIA,MAAM,IAAIA,MAAM,CAACC,MAAM,EAAE;IAC3B,OAAO;MAAEC,IAAI,EAAEF,MAAM,CAACE,IAAI;MAAEC,MAAM,EAAEH,MAAM,CAACG;IAAO,CAAC;EACrD;EACA,OAAO,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"names":["normalizeConfig","config","domain","Error","out","autoReadConsent","undefined","subjectToCOPPA","requestATTBeforeAds","debugEnabled","testMode","autoTrackPageviews","cmpEnabled","autoPresentConsent","normalizeSize","size","split","map","s","trim","filter","length","join","coerceAdUnitId","adUnitIdentifier","String","mapRewardResult","result","earned","type","amount"],"sourceRoot":"../../src","sources":["helpers.ts"],"mappings":";;AAEA,OAAO,SAASA,eAAeA,CAACC,MAAmB,EAAe;EAChE,IAAI,CAACA,MAAM,IAAI,CAACA,MAAM,CAACC,MAAM,EAAE;IAC7B,MAAM,IAAIC,KAAK,CAAC,oDAAoD,CAAC;EACvE;EACA,MAAMC,GAAgB,GAAG;IAAEF,MAAM,EAAED,MAAM,CAACC;EAAO,CAAC;EAClD,IAAID,MAAM,CAACI,eAAe,KAAKC,SAAS,EACtCF,GAAG,CAACC,eAAe,GAAGJ,MAAM,CAACI,eAAe;EAC9C,IAAIJ,MAAM,CAACM,cAAc,KAAKD,SAAS,EACrCF,GAAG,CAACG,cAAc,GAAGN,MAAM,CAACM,cAAc;EAC5C,IAAIN,MAAM,CAACO,mBAAmB,KAAKF,SAAS,EAC1CF,GAAG,CAACI,mBAAmB,GAAGP,MAAM,CAACO,mBAAmB;EACtD,IAAIP,MAAM,CAACQ,YAAY,KAAKH,SAAS,EAAEF,GAAG,CAACK,YAAY,GAAGR,MAAM,CAACQ,YAAY;EAC7E,IAAIR,MAAM,CAACS,QAAQ,KAAKJ,SAAS,EAAEF,GAAG,CAACM,QAAQ,GAAGT,MAAM,CAACS,QAAQ;EACjE,IAAIT,MAAM,CAACU,kBAAkB,KAAKL,SAAS,EACzCF,GAAG,CAACO,kBAAkB,GAAGV,MAAM,CAACU,kBAAkB;EACpD,IAAIV,MAAM,CAACW,UAAU,KAAKN,SAAS,EAAEF,GAAG,CAACQ,UAAU,GAAGX,MAAM,CAACW,UAAU;EACvE,IAAIX,MAAM,CAACY,kBAAkB,KAAKP,SAAS,EACzCF,GAAG,CAACS,kBAAkB,GAAGZ,MAAM,CAACY,kBAAkB;EACpD,OAAOT,GAAG;AACZ;AAEA,OAAO,SAASU,aAAaA,CAACC,IAAwB,EAAU;EAC9D,IAAI,CAACA,IAAI,EAAE,OAAO,EAAE;EACpB,OAAOA,IAAI,CACRC,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC,CACpBC,MAAM,CAAEF,CAAC,IAAKA,CAAC,CAACG,MAAM,GAAG,CAAC,CAAC,CAC3BC,IAAI,CAAC,GAAG,CAAC;AACd;AAEA,OAAO,SAASC,cAAcA,CAACC,gBAAiC,EAAU;EACxE,OAAOC,MAAM,CAACD,gBAAgB,CAAC;AACjC;AAQA;AACA;AACA;AACA;AACA,OAAO,SAASE,eAAeA,CAC7BC,MAA2C,EACF;EACzC,IAAIA,MAAM,IAAIA,MAAM,CAACC,MAAM,EAAE;IAC3B,OAAO;MAAEC,IAAI,EAAEF,MAAM,CAACE,IAAI;MAAEC,MAAM,EAAEH,MAAM,CAACG;IAAO,CAAC;EACrD;EACA,OAAO,IAAI;AACb","ignoreList":[]}
@@ -6,10 +6,27 @@ import EzoicBannerNative from './EzoicBannerViewNativeComponent';
6
6
  import EzoicNativeAdNative from './EzoicNativeAdViewNativeComponent';
7
7
  import EzoicOutstreamNative from './EzoicOutstreamAdViewNativeComponent';
8
8
  import { coerceAdUnitId, normalizeConfig, normalizeSize } from "./helpers.js";
9
+ import { consentFailure, parseConsentOutcome } from "./EzoicConsent.js";
9
10
  import { jsx as _jsx } from "react/jsx-runtime";
10
11
  export { EzoicRewardedAd } from "./EzoicRewardedAd.js";
11
12
  export { EzoicInterstitialAd } from "./EzoicInterstitialAd.js";
12
13
  export { EzoicInstreamAd } from "./EzoicInstreamAd.js";
14
+
15
+ /**
16
+ * Numeric native error codes: `code` on ad-view `onError` events, and
17
+ * `error.userInfo.code` on rejected rewarded / interstitial / instream
18
+ * `load()` promises (whose own `code` is the string `'EzoicAds'`).
19
+ */
20
+ export const EzoicErrorCode = {
21
+ /**
22
+ * GDPR applies and the user hasn't decided: the ad load waited for the
23
+ * consent dialog and timed out. Call `EzoicAds.presentConsentIfRequired()`.
24
+ */
25
+ consentRequired: 5001
26
+ };
27
+ function presentConsent(call) {
28
+ return call().then(parseConsentOutcome, e => consentFailure(-1, e instanceof Error ? e.message : String(e)));
29
+ }
13
30
  export const EzoicAds = {
14
31
  initialize(config) {
15
32
  return NativeEzoicAds.initialize(normalizeConfig(config));
@@ -23,8 +40,41 @@ export const EzoicAds = {
23
40
  setSubjectToCOPPA(value) {
24
41
  NativeEzoicAds.setSubjectToCOPPA(value);
25
42
  },
26
- trackPageview() {
27
- return NativeEzoicAds.trackPageview();
43
+ /**
44
+ * Records a pageview. Pass a `screen` label (e.g. `'Home'`,
45
+ * `'members/profile'`) to name the screen in Ezoic reporting; without one
46
+ * the pageview lands on a single app-wide bucket.
47
+ */
48
+ trackPageview(screen) {
49
+ return NativeEzoicAds.trackPageview(screen ?? null);
50
+ },
51
+ /**
52
+ * Shows the built-in consent dialog if this user must decide (GDPR applies,
53
+ * no valid stored decision). Runs automatically after `initialize` unless
54
+ * `autoPresentConsent: false`; repeat calls are harmless. Always resolves.
55
+ */
56
+ presentConsentIfRequired() {
57
+ return presentConsent(() => NativeEzoicAds.presentConsentIfRequired());
58
+ },
59
+ /**
60
+ * Re-opens the consent dialog with the user's stored choices. TCF requires
61
+ * a persistent "Privacy settings" entry point that calls this. Always
62
+ * resolves.
63
+ */
64
+ presentConsentSettings() {
65
+ return presentConsent(() => NativeEzoicAds.presentConsentSettings());
66
+ },
67
+ /**
68
+ * `true` when GDPR applies and the built-in CMP handles consent, `false`
69
+ * otherwise, `null` until the init request completes or when the server
70
+ * sent no consent information.
71
+ */
72
+ isConsentRequired() {
73
+ return NativeEzoicAds.isConsentRequired().then(v => v ?? null);
74
+ },
75
+ /** Deletes the decision stored by the built-in CMP so the dialog shows again. */
76
+ resetConsent() {
77
+ NativeEzoicAds.resetConsent();
28
78
  }
29
79
  };
30
80
 
@@ -1 +1 @@
1
- {"version":3,"names":["useState","NativeEzoicAds","EzoicBannerNative","EzoicNativeAdNative","EzoicOutstreamNative","coerceAdUnitId","normalizeConfig","normalizeSize","jsx","_jsx","EzoicRewardedAd","EzoicInterstitialAd","EzoicInstreamAd","EzoicAds","initialize","config","setGDPRConsent","applies","consentString","setGPPConsent","gppString","sectionIds","setSubjectToCOPPA","value","trackPageview","useCollapsibleAdStyle","style","collapseOnNoFill","onSizeChange","collapsed","setCollapsed","handleSizeChange","e","width","height","nativeEvent","resolvedStyle","EzoicBannerView","props","adUnitIdentifier","size","onLoad","onError","onImpression","onClick","onOpen","onClose","rest","collapsible","undefined","onAdClick","EzoicNativeAdView","EzoicOutstreamAdView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","NativeEzoicAds","EzoicBannerNative","EzoicNativeAdNative","EzoicOutstreamNative","coerceAdUnitId","normalizeConfig","normalizeSize","consentFailure","parseConsentOutcome","jsx","_jsx","EzoicRewardedAd","EzoicInterstitialAd","EzoicInstreamAd","EzoicErrorCode","consentRequired","presentConsent","call","then","e","Error","message","String","EzoicAds","initialize","config","setGDPRConsent","applies","consentString","setGPPConsent","gppString","sectionIds","setSubjectToCOPPA","value","trackPageview","screen","presentConsentIfRequired","presentConsentSettings","isConsentRequired","v","resetConsent","useCollapsibleAdStyle","style","collapseOnNoFill","onSizeChange","collapsed","setCollapsed","handleSizeChange","width","height","nativeEvent","resolvedStyle","EzoicBannerView","props","adUnitIdentifier","size","onLoad","onError","onImpression","onClick","onOpen","onClose","rest","collapsible","undefined","onAdClick","EzoicNativeAdView","EzoicOutstreamAdView"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ /** Which button the user closed the consent dialog with. */
2
+ export type EzoicConsentDecision = 'acceptAll' | 'rejectAll' | 'custom';
3
+ /**
4
+ * Result of `EzoicAds.presentConsentIfRequired` / `presentConsentSettings`.
5
+ *
6
+ * - `notRequired`: GDPR doesn't apply, the built-in CMP is disabled, another
7
+ * CMP owns consent, or consent is managed by the app (`setGDPRConsent`, or
8
+ * `autoReadConsent: false`).
9
+ * - `alreadyDecided`: a still-valid decision is stored; no dialog was shown.
10
+ * - `decided`: the user made a choice, which has been saved.
11
+ * - `dismissed`: the dialog closed without a choice; ads stay gated for this
12
+ * session.
13
+ * - `alreadyPresenting`: a consent dialog is already on screen or being
14
+ * prepared.
15
+ * - `failed`: the dialog could not be shown. `code` is the native
16
+ * `EzoicError` code, or `-1` (`'No foreground Activity'`) when the wrapper
17
+ * had no foreground Activity / view controller: native was not called, ads
18
+ * stay gated, and you should call again once a screen is showing.
19
+ */
20
+ export type EzoicConsentOutcome = {
21
+ type: 'notRequired';
22
+ } | {
23
+ type: 'alreadyDecided';
24
+ } | {
25
+ type: 'dismissed';
26
+ } | {
27
+ type: 'alreadyPresenting';
28
+ } | {
29
+ type: 'decided';
30
+ decision: EzoicConsentDecision;
31
+ } | {
32
+ type: 'failed';
33
+ code: number;
34
+ message: string;
35
+ };
36
+ export declare function consentFailure(code: number, message: string): EzoicConsentOutcome;
37
+ /**
38
+ * Maps the native glue's outcome map to `EzoicConsentOutcome`. Anything that
39
+ * doesn't match the wire format becomes `failed(-1, 'Unrecognized outcome')`.
40
+ */
41
+ export declare function parseConsentOutcome(raw: unknown): EzoicConsentOutcome;
42
+ //# sourceMappingURL=EzoicConsent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EzoicConsent.d.ts","sourceRoot":"","sources":["../../../src/EzoicConsent.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,oBAAoB,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAWtD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,mBAAmB,CAErB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,CAoBrE"}
@@ -6,6 +6,12 @@ export interface EzoicConfig {
6
6
  requestATTBeforeAds?: boolean;
7
7
  debugEnabled?: boolean;
8
8
  testMode?: boolean;
9
+ /** Record a pageview automatically on native screen changes. Default `true`. */
10
+ autoTrackPageviews?: boolean;
11
+ /** Enable the built-in TCF CMP for GDPR regions. Default `true`; set `false` if you run your own CMP. */
12
+ cmpEnabled?: boolean;
13
+ /** Present the consent dialog (if required) right after `initialize` succeeds. Default `true`. */
14
+ autoPresentConsent?: boolean;
9
15
  }
10
16
  /**
11
17
  * Result of `showRewardedAd`. `earned` is true when the user completed the ad
@@ -18,12 +24,28 @@ export interface EzoicRewardResult {
18
24
  type: string;
19
25
  amount: number;
20
26
  }
27
+ /**
28
+ * Wire format of a consent outcome from the native glue (see
29
+ * `parseConsentOutcome`): `type` is one of `notRequired`, `alreadyDecided`,
30
+ * `dismissed`, `alreadyPresenting`, `decided` (with `decision`) or `failed`
31
+ * (with `code` and `message`).
32
+ */
33
+ export interface EzoicConsentOutcomeRaw {
34
+ type: string;
35
+ decision?: string;
36
+ code?: number;
37
+ message?: string;
38
+ }
21
39
  export interface Spec extends TurboModule {
22
40
  initialize(config: EzoicConfig): Promise<void>;
23
41
  setGDPRConsent(applies: boolean, consentString?: string): void;
24
42
  setGPPConsent(gppString?: string, sectionIds?: string): void;
25
43
  setSubjectToCOPPA(value: boolean): void;
26
- trackPageview(): Promise<boolean>;
44
+ trackPageview(screen: string | null): Promise<boolean>;
45
+ presentConsentIfRequired(): Promise<EzoicConsentOutcomeRaw>;
46
+ presentConsentSettings(): Promise<EzoicConsentOutcomeRaw>;
47
+ isConsentRequired(): Promise<boolean | null>;
48
+ resetConsent(): void;
27
49
  loadRewardedAd(adUnitIdentifier: string): Promise<void>;
28
50
  showRewardedAd(adUnitIdentifier: string, rewardName: string | null): Promise<EzoicRewardResult>;
29
51
  loadInterstitialAd(adUnitIdentifier: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeEzoicAds.d.ts","sourceRoot":"","sources":["../../../src/NativeEzoicAds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7D,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,cAAc,CACZ,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAS5D,cAAc,CACZ,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1E,wBAAwB,CACtB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;;AAED,wBAA6E"}
1
+ {"version":3,"file":"NativeEzoicAds.d.ts","sourceRoot":"","sources":["../../../src/NativeEzoicAds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yGAAyG;IACzG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kGAAkG;IAClG,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7D,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGvD,wBAAwB,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5D,sBAAsB,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC1D,iBAAiB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC7C,YAAY,IAAI,IAAI,CAAC;IACrB,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,cAAc,CACZ,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAS5D,cAAc,CACZ,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1E,wBAAwB,CACtB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;;AAED,wBAA6E"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAkB,CAAC;AAEpD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAchE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAO9D;AAED,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAExE;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC1C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKzC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAkB,CAAC;AAEpD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAmBhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAO9D;AAED,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAExE;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC1C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKzC"}
@@ -1,15 +1,54 @@
1
1
  import type { StyleProp, ViewStyle } from 'react-native';
2
2
  import { type EzoicConfig } from './NativeEzoicAds.js';
3
+ import { type EzoicConsentOutcome } from './EzoicConsent.js';
3
4
  export type { EzoicConfig };
5
+ export type { EzoicConsentDecision, EzoicConsentOutcome } from './EzoicConsent.js';
4
6
  export { EzoicRewardedAd, type EzoicReward, type EzoicRewardedAdListeners, } from './EzoicRewardedAd.js';
5
7
  export { EzoicInterstitialAd, type EzoicInterstitialAdListeners, } from './EzoicInterstitialAd.js';
6
8
  export { EzoicInstreamAd, type EzoicInstreamLoadOptions, type EzoicInstreamImpressionOptions, } from './EzoicInstreamAd.js';
9
+ /**
10
+ * Numeric native error codes: `code` on ad-view `onError` events, and
11
+ * `error.userInfo.code` on rejected rewarded / interstitial / instream
12
+ * `load()` promises (whose own `code` is the string `'EzoicAds'`).
13
+ */
14
+ export declare const EzoicErrorCode: {
15
+ /**
16
+ * GDPR applies and the user hasn't decided: the ad load waited for the
17
+ * consent dialog and timed out. Call `EzoicAds.presentConsentIfRequired()`.
18
+ */
19
+ readonly consentRequired: 5001;
20
+ };
7
21
  export declare const EzoicAds: {
8
22
  initialize(config: EzoicConfig): Promise<void>;
9
23
  setGDPRConsent(applies: boolean, consentString?: string): void;
10
24
  setGPPConsent(gppString?: string, sectionIds?: string): void;
11
25
  setSubjectToCOPPA(value: boolean): void;
12
- trackPageview(): Promise<boolean>;
26
+ /**
27
+ * Records a pageview. Pass a `screen` label (e.g. `'Home'`,
28
+ * `'members/profile'`) to name the screen in Ezoic reporting; without one
29
+ * the pageview lands on a single app-wide bucket.
30
+ */
31
+ trackPageview(screen?: string): Promise<boolean>;
32
+ /**
33
+ * Shows the built-in consent dialog if this user must decide (GDPR applies,
34
+ * no valid stored decision). Runs automatically after `initialize` unless
35
+ * `autoPresentConsent: false`; repeat calls are harmless. Always resolves.
36
+ */
37
+ presentConsentIfRequired(): Promise<EzoicConsentOutcome>;
38
+ /**
39
+ * Re-opens the consent dialog with the user's stored choices. TCF requires
40
+ * a persistent "Privacy settings" entry point that calls this. Always
41
+ * resolves.
42
+ */
43
+ presentConsentSettings(): Promise<EzoicConsentOutcome>;
44
+ /**
45
+ * `true` when GDPR applies and the built-in CMP handles consent, `false`
46
+ * otherwise, `null` until the init request completes or when the server
47
+ * sent no consent information.
48
+ */
49
+ isConsentRequired(): Promise<boolean | null>;
50
+ /** Deletes the decision stored by the built-in CMP so the dialog shows again. */
51
+ resetConsent(): void;
13
52
  };
14
53
  export interface EzoicBannerError {
15
54
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAwB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAuB,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAkB,CAAC;AAMpE,YAAY,EAAE,WAAW,EAAE,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,wBAAwB,GAC9B,MAAM,sBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,KAAK,4BAA4B,GAClC,MAAM,0BAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,GACpC,MAAM,sBAAmB,CAAC;AAE3B,eAAO,MAAM,QAAQ;uBACA,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;4BAGtB,OAAO,kBAAkB,MAAM,GAAG,IAAI;8BAGpC,MAAM,eAAe,MAAM,GAAG,IAAI;6BAGnC,OAAO,GAAG,IAAI;qBAGtB,OAAO,CAAC,OAAO,CAAC;CAGlC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AA2BD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qFAAqF;IACrF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,+BAoC1D;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,+BAuB9D;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qFAAqF;IACrF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,+BAkCpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ezoic/react-native-sdk",
3
- "version": "1.11.1",
3
+ "version": "1.13.0",
4
4
  "description": "Ezoic Ads SDK for React Native (Prebid + Google Ad Manager banner, native, interstitial, rewarded, outstream and instream video ads).",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",