@bigcrunch/react-native-ads 0.11.0 → 0.14.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.
- package/android/bigcrunch-ads/com/bigcrunch/ads/BigCrunchAds.kt +21 -4
- package/android/bigcrunch-ads/com/bigcrunch/ads/adapters/GoogleAdsAdapter.kt +8 -1
- package/android/bigcrunch-ads/com/bigcrunch/ads/core/AdOrchestrator.kt +37 -12
- package/android/bigcrunch-ads/com/bigcrunch/ads/core/AnalyticsClient.kt +213 -46
- package/android/bigcrunch-ads/com/bigcrunch/ads/core/BidRequestClient.kt +52 -17
- package/android/bigcrunch-ads/com/bigcrunch/ads/core/DeviceContext.kt +1 -1
- package/android/bigcrunch-ads/com/bigcrunch/ads/models/AdEvent.kt +81 -2
- package/android/bigcrunch-ads/com/bigcrunch/ads/models/PlacementConfig.kt +4 -1
- package/android/src/main/java/com/bigcrunch/ads/react/BigCrunchAdsModule.kt +57 -2
- package/ios/BigCrunchAds/Sources/Adapters/GoogleAdsAdapter.swift +7 -0
- package/ios/BigCrunchAds/Sources/BigCrunchAds.swift +29 -6
- package/ios/BigCrunchAds/Sources/BigCrunchRewarded.swift +10 -2
- package/ios/BigCrunchAds/Sources/Core/AdOrchestrator.swift +20 -4
- package/ios/BigCrunchAds/Sources/Core/AnalyticsClient.swift +193 -84
- package/ios/BigCrunchAds/Sources/Core/BidRequestClient.swift +54 -17
- package/ios/BigCrunchAds/Sources/Core/DeviceContext.swift +1 -1
- package/ios/BigCrunchAds/Sources/Models/AdEvent.swift +111 -3
- package/ios/BigCrunchAds/Sources/Models/PlacementConfig.swift +4 -1
- package/ios/BigCrunchAdsModule.m +6 -0
- package/ios/BigCrunchAdsModule.swift +39 -2
- package/ios/BigCrunchBannerViewManager.swift +1 -0
- package/lib/BigCrunchAds.d.ts +33 -2
- package/lib/BigCrunchAds.d.ts.map +1 -1
- package/lib/BigCrunchAds.js +35 -2
- package/lib/NativeBigCrunchAds.d.ts +3 -2
- package/lib/NativeBigCrunchAds.d.ts.map +1 -1
- package/lib/types/index.d.ts +40 -0
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-bigcrunch-ads.podspec +1 -1
- package/src/BigCrunchAds.ts +41 -2
- package/src/NativeBigCrunchAds.ts +5 -2
- package/src/types/index.ts +43 -0
|
@@ -38,6 +38,95 @@ internal struct RevenueData: Codable {
|
|
|
38
38
|
let currency: String
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
// MARK: - Screen View Options
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Options for customizing screen view tracking
|
|
45
|
+
*
|
|
46
|
+
* Allows app developers to provide page URL, content metadata,
|
|
47
|
+
* and custom dimensions for analytics events.
|
|
48
|
+
*/
|
|
49
|
+
public struct ScreenViewOptions {
|
|
50
|
+
/// Override the auto-generated page URL (must be a valid URL)
|
|
51
|
+
public var pageUrl: String?
|
|
52
|
+
|
|
53
|
+
/// Content metadata for this screen/page
|
|
54
|
+
public var pageMeta: PageMetaData?
|
|
55
|
+
|
|
56
|
+
/// Custom key-value dimensions attached to analytics events
|
|
57
|
+
public var customDimensions: [String: String]?
|
|
58
|
+
|
|
59
|
+
public init(
|
|
60
|
+
pageUrl: String? = nil,
|
|
61
|
+
pageMeta: PageMetaData? = nil,
|
|
62
|
+
customDimensions: [String: String]? = nil
|
|
63
|
+
) {
|
|
64
|
+
self.pageUrl = pageUrl
|
|
65
|
+
self.pageMeta = pageMeta
|
|
66
|
+
self.customDimensions = customDimensions
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Content metadata for a screen/page view
|
|
72
|
+
*
|
|
73
|
+
* Matches the `page_meta_data` fields in the analytics schema.
|
|
74
|
+
*/
|
|
75
|
+
public struct PageMetaData: Codable {
|
|
76
|
+
/// Canonical page URL
|
|
77
|
+
public var url: String?
|
|
78
|
+
/// Content author
|
|
79
|
+
public var author: String?
|
|
80
|
+
/// Page/screen title
|
|
81
|
+
public var title: String?
|
|
82
|
+
/// Featured image URL
|
|
83
|
+
public var thumbnailUrl: String?
|
|
84
|
+
/// Content section/category
|
|
85
|
+
public var articleSection: String?
|
|
86
|
+
/// Comma-separated keywords
|
|
87
|
+
public var keywords: String?
|
|
88
|
+
/// Content creation date (ISO 8601)
|
|
89
|
+
public var dateCreated: String?
|
|
90
|
+
/// Content last modified date (ISO 8601)
|
|
91
|
+
public var dateModified: String?
|
|
92
|
+
/// Content publication date (ISO 8601)
|
|
93
|
+
public var datePublished: String?
|
|
94
|
+
|
|
95
|
+
public init(
|
|
96
|
+
url: String? = nil,
|
|
97
|
+
author: String? = nil,
|
|
98
|
+
title: String? = nil,
|
|
99
|
+
thumbnailUrl: String? = nil,
|
|
100
|
+
articleSection: String? = nil,
|
|
101
|
+
keywords: String? = nil,
|
|
102
|
+
dateCreated: String? = nil,
|
|
103
|
+
dateModified: String? = nil,
|
|
104
|
+
datePublished: String? = nil
|
|
105
|
+
) {
|
|
106
|
+
self.url = url
|
|
107
|
+
self.author = author
|
|
108
|
+
self.title = title
|
|
109
|
+
self.thumbnailUrl = thumbnailUrl
|
|
110
|
+
self.articleSection = articleSection
|
|
111
|
+
self.keywords = keywords
|
|
112
|
+
self.dateCreated = dateCreated
|
|
113
|
+
self.dateModified = dateModified
|
|
114
|
+
self.datePublished = datePublished
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
enum CodingKeys: String, CodingKey {
|
|
118
|
+
case url
|
|
119
|
+
case author
|
|
120
|
+
case title
|
|
121
|
+
case thumbnailUrl = "thumbnailUrl"
|
|
122
|
+
case articleSection = "articleSection"
|
|
123
|
+
case keywords
|
|
124
|
+
case dateCreated = "dateCreated"
|
|
125
|
+
case dateModified = "dateModified"
|
|
126
|
+
case datePublished = "datePublished"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
41
130
|
// MARK: - Enhanced Analytics Events (matching web SDK data model)
|
|
42
131
|
|
|
43
132
|
/**
|
|
@@ -91,6 +180,9 @@ internal struct PageViewEvent: Codable {
|
|
|
91
180
|
let amznPubId: String // Must be valid UUID (nil UUID for empty)
|
|
92
181
|
let customDimensions: [String: String]
|
|
93
182
|
|
|
183
|
+
// Page metadata (only for pageview events)
|
|
184
|
+
let pageMetaData: PageMetaData?
|
|
185
|
+
|
|
94
186
|
enum CodingKeys: String, CodingKey {
|
|
95
187
|
case payloadVersion = "payload_version"
|
|
96
188
|
case configVersion = "config_version"
|
|
@@ -123,6 +215,7 @@ internal struct PageViewEvent: Codable {
|
|
|
123
215
|
case gamNetworkCode = "gam_network_code"
|
|
124
216
|
case amznPubId = "amzn_pub_id"
|
|
125
217
|
case customDimensions = "custom_dimensions"
|
|
218
|
+
case pageMetaData = "page_meta_data"
|
|
126
219
|
}
|
|
127
220
|
}
|
|
128
221
|
|
|
@@ -269,7 +362,7 @@ internal struct ImpressionBatchEvent: Codable {
|
|
|
269
362
|
let customDimensions: [String: String]
|
|
270
363
|
|
|
271
364
|
// Nested impressions array
|
|
272
|
-
|
|
365
|
+
var impressions: [ImpressionRecord]
|
|
273
366
|
|
|
274
367
|
enum CodingKeys: String, CodingKey {
|
|
275
368
|
case payloadVersion = "payload_version"
|
|
@@ -577,7 +670,7 @@ internal struct ViewabilityEvent: Codable {
|
|
|
577
670
|
let amznPubId: String
|
|
578
671
|
|
|
579
672
|
// Nested viewability array (per backend schema)
|
|
580
|
-
|
|
673
|
+
var viewability: [ViewabilityData]
|
|
581
674
|
|
|
582
675
|
enum CodingKeys: String, CodingKey {
|
|
583
676
|
case payloadVersion = "payload_version"
|
|
@@ -735,8 +828,23 @@ internal struct AuctionData {
|
|
|
735
828
|
/// Creative ID from winning bid
|
|
736
829
|
let creativeId: String?
|
|
737
830
|
|
|
831
|
+
/// GAM price bucket (hb_pb value from targeting KVPs)
|
|
832
|
+
let gamPriceBucket: String?
|
|
833
|
+
|
|
834
|
+
/// Floor price sent to bidders
|
|
835
|
+
let floorPrice: Double?
|
|
836
|
+
|
|
837
|
+
/// Second-highest bid price (for computing min_bid_to_win)
|
|
838
|
+
let secondHighestBid: Double?
|
|
839
|
+
|
|
840
|
+
/// Demand channel ("S2S", "Google Ad Exchange", etc.)
|
|
841
|
+
let demandChannel: String?
|
|
842
|
+
|
|
738
843
|
/// Empty auction data
|
|
739
|
-
static let empty = AuctionData(
|
|
844
|
+
static let empty = AuctionData(
|
|
845
|
+
auctionId: nil, bidder: nil, bidPriceCpm: nil, creativeId: nil,
|
|
846
|
+
gamPriceBucket: nil, floorPrice: nil, secondHighestBid: nil, demandChannel: nil
|
|
847
|
+
)
|
|
740
848
|
}
|
|
741
849
|
|
|
742
850
|
// MARK: - Impression Context
|
|
@@ -13,19 +13,22 @@ public struct PlacementConfig: Codable {
|
|
|
13
13
|
public let gamAdUnit: String
|
|
14
14
|
public let sizes: [AdSize]?
|
|
15
15
|
public let refresh: RefreshConfig?
|
|
16
|
+
public let floorPrice: Double?
|
|
16
17
|
|
|
17
18
|
public init(
|
|
18
19
|
placementId: String,
|
|
19
20
|
format: String,
|
|
20
21
|
gamAdUnit: String,
|
|
21
22
|
sizes: [AdSize]?,
|
|
22
|
-
refresh: RefreshConfig? = nil
|
|
23
|
+
refresh: RefreshConfig? = nil,
|
|
24
|
+
floorPrice: Double? = nil
|
|
23
25
|
) {
|
|
24
26
|
self.placementId = placementId
|
|
25
27
|
self.format = format
|
|
26
28
|
self.gamAdUnit = gamAdUnit
|
|
27
29
|
self.sizes = sizes
|
|
28
30
|
self.refresh = refresh
|
|
31
|
+
self.floorPrice = floorPrice
|
|
29
32
|
}
|
|
30
33
|
}
|
|
31
34
|
|
package/ios/BigCrunchAdsModule.m
CHANGED
|
@@ -20,6 +20,7 @@ RCT_EXTERN_METHOD(isInitialized:(RCTPromiseResolveBlock)resolve
|
|
|
20
20
|
|
|
21
21
|
// Screen Tracking
|
|
22
22
|
RCT_EXTERN_METHOD(trackScreenView:(NSString *)screenName
|
|
23
|
+
options:(NSDictionary *)options
|
|
23
24
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
24
25
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
25
26
|
|
|
@@ -88,6 +89,11 @@ RCT_EXTERN_METHOD(setCoppaCompliant:(BOOL)compliant
|
|
|
88
89
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
89
90
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
90
91
|
|
|
92
|
+
// Account Type
|
|
93
|
+
RCT_EXTERN_METHOD(setAccountType:(NSString *)accountType
|
|
94
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
95
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
96
|
+
|
|
91
97
|
// Debug Settings
|
|
92
98
|
RCT_EXTERN_METHOD(setDebugMode:(BOOL)enabled
|
|
93
99
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Foundation
|
|
2
|
+
import BigCrunchAds
|
|
2
3
|
#if canImport(React)
|
|
3
4
|
import React
|
|
4
5
|
#endif
|
|
@@ -278,12 +279,38 @@ class BigCrunchAdsModule: RCTEventEmitter {
|
|
|
278
279
|
|
|
279
280
|
// MARK: - Screen Tracking
|
|
280
281
|
|
|
281
|
-
@objc(trackScreenView:resolver:rejecter:)
|
|
282
|
+
@objc(trackScreenView:options:resolver:rejecter:)
|
|
282
283
|
func trackScreenView(screenName: String,
|
|
284
|
+
options: NSDictionary?,
|
|
283
285
|
resolver: @escaping RCTPromiseResolveBlock,
|
|
284
286
|
rejecter: @escaping RCTPromiseRejectBlock) {
|
|
285
287
|
DispatchQueue.main.async {
|
|
286
|
-
|
|
288
|
+
var screenViewOptions: ScreenViewOptions? = nil
|
|
289
|
+
|
|
290
|
+
if let opts = options as? [String: Any] {
|
|
291
|
+
var pageMeta: PageMetaData? = nil
|
|
292
|
+
if let metaDict = opts["pageMeta"] as? [String: String] {
|
|
293
|
+
pageMeta = PageMetaData(
|
|
294
|
+
url: metaDict["url"],
|
|
295
|
+
author: metaDict["author"],
|
|
296
|
+
title: metaDict["title"],
|
|
297
|
+
thumbnailUrl: metaDict["thumbnailUrl"],
|
|
298
|
+
articleSection: metaDict["articleSection"],
|
|
299
|
+
keywords: metaDict["keywords"],
|
|
300
|
+
dateCreated: metaDict["dateCreated"],
|
|
301
|
+
dateModified: metaDict["dateModified"],
|
|
302
|
+
datePublished: metaDict["datePublished"]
|
|
303
|
+
)
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
screenViewOptions = ScreenViewOptions(
|
|
307
|
+
pageUrl: opts["pageUrl"] as? String,
|
|
308
|
+
pageMeta: pageMeta,
|
|
309
|
+
customDimensions: opts["customDimensions"] as? [String: String]
|
|
310
|
+
)
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
BigCrunchAds.trackScreen(screenName, options: screenViewOptions)
|
|
287
314
|
resolver(nil)
|
|
288
315
|
}
|
|
289
316
|
}
|
|
@@ -589,6 +616,16 @@ class BigCrunchAdsModule: RCTEventEmitter {
|
|
|
589
616
|
resolver(nil)
|
|
590
617
|
}
|
|
591
618
|
|
|
619
|
+
// MARK: - Account Type
|
|
620
|
+
|
|
621
|
+
@objc(setAccountType:resolver:rejecter:)
|
|
622
|
+
func setAccountType(accountType: String,
|
|
623
|
+
resolver: RCTPromiseResolveBlock,
|
|
624
|
+
rejecter: RCTPromiseRejectBlock) {
|
|
625
|
+
BigCrunchAds.setAccountType(accountType)
|
|
626
|
+
resolver(nil)
|
|
627
|
+
}
|
|
628
|
+
|
|
592
629
|
// MARK: - Debug & Testing
|
|
593
630
|
|
|
594
631
|
@objc(setDebugMode:resolver:rejecter:)
|
package/lib/BigCrunchAds.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* BigCrunch Mobile Ads SDK for React Native
|
|
3
3
|
* Main API class
|
|
4
4
|
*/
|
|
5
|
-
import type { InitializationOptions, Environment, SessionInfo, DeviceContext, AppConfig, EventSubscription } from './types';
|
|
5
|
+
import type { InitializationOptions, Environment, AccountType, SessionInfo, DeviceContext, AppConfig, EventSubscription, ScreenViewOptions } from './types';
|
|
6
6
|
/**
|
|
7
7
|
* Main entry point for BigCrunch Mobile Ads SDK
|
|
8
8
|
*/
|
|
@@ -34,13 +34,30 @@ export declare class BigCrunchAds {
|
|
|
34
34
|
* Track a screen view for analytics
|
|
35
35
|
*
|
|
36
36
|
* @param screenName - Name of the screen being viewed
|
|
37
|
+
* @param options - Optional overrides for page URL, content metadata, and custom dimensions
|
|
37
38
|
*
|
|
38
39
|
* @example
|
|
39
40
|
* ```typescript
|
|
41
|
+
* // Simple usage
|
|
40
42
|
* BigCrunchAds.trackScreenView('HomeScreen');
|
|
43
|
+
*
|
|
44
|
+
* // With options
|
|
45
|
+
* BigCrunchAds.trackScreenView('ArticlePage', {
|
|
46
|
+
* pageUrl: 'https://example.com/articles/123',
|
|
47
|
+
* pageMeta: {
|
|
48
|
+
* title: 'My Article Title',
|
|
49
|
+
* author: 'Jane Smith',
|
|
50
|
+
* articleSection: 'Technology',
|
|
51
|
+
* keywords: 'tech,mobile,apps',
|
|
52
|
+
* },
|
|
53
|
+
* customDimensions: {
|
|
54
|
+
* content_type: 'article',
|
|
55
|
+
* content_id: '123',
|
|
56
|
+
* },
|
|
57
|
+
* });
|
|
41
58
|
* ```
|
|
42
59
|
*/
|
|
43
|
-
static trackScreenView(screenName: string): Promise<void>;
|
|
60
|
+
static trackScreenView(screenName: string, options?: ScreenViewOptions): Promise<void>;
|
|
44
61
|
/**
|
|
45
62
|
* Get the current app configuration
|
|
46
63
|
* Returns null if config hasn't been loaded yet
|
|
@@ -80,6 +97,20 @@ export declare class BigCrunchAds {
|
|
|
80
97
|
* @param isCompliant - Whether the app is COPPA compliant
|
|
81
98
|
*/
|
|
82
99
|
static setCoppaCompliant(isCompliant: boolean): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Set the account type for the current user
|
|
102
|
+
*
|
|
103
|
+
* This value is included in all analytics events (pageviews, impressions, revenue, etc.)
|
|
104
|
+
* and persists until changed. Defaults to 'guest' if not set.
|
|
105
|
+
*
|
|
106
|
+
* @param accountType - The user's account type
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* BigCrunchAds.setAccountType('subscriber');
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
static setAccountType(accountType: AccountType): Promise<void>;
|
|
83
114
|
/**
|
|
84
115
|
* Enable or disable debug mode
|
|
85
116
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigCrunchAds.d.ts","sourceRoot":"","sources":["../src/BigCrunchAds.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,aAAa,EACb,SAAS,EACT,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAS;IACzC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAA8B;IAElE;;;;;;;;;;;;;;;OAeG;WACU,UAAU,CACrB,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,WAA0B,EACvC,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC;IA0BhB;;OAEG;WACU,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAO9C
|
|
1
|
+
{"version":3,"file":"BigCrunchAds.d.ts","sourceRoot":"","sources":["../src/BigCrunchAds.ts"],"names":[],"mappings":"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"}
|
package/lib/BigCrunchAds.js
CHANGED
|
@@ -60,15 +60,32 @@ export class BigCrunchAds {
|
|
|
60
60
|
* Track a screen view for analytics
|
|
61
61
|
*
|
|
62
62
|
* @param screenName - Name of the screen being viewed
|
|
63
|
+
* @param options - Optional overrides for page URL, content metadata, and custom dimensions
|
|
63
64
|
*
|
|
64
65
|
* @example
|
|
65
66
|
* ```typescript
|
|
67
|
+
* // Simple usage
|
|
66
68
|
* BigCrunchAds.trackScreenView('HomeScreen');
|
|
69
|
+
*
|
|
70
|
+
* // With options
|
|
71
|
+
* BigCrunchAds.trackScreenView('ArticlePage', {
|
|
72
|
+
* pageUrl: 'https://example.com/articles/123',
|
|
73
|
+
* pageMeta: {
|
|
74
|
+
* title: 'My Article Title',
|
|
75
|
+
* author: 'Jane Smith',
|
|
76
|
+
* articleSection: 'Technology',
|
|
77
|
+
* keywords: 'tech,mobile,apps',
|
|
78
|
+
* },
|
|
79
|
+
* customDimensions: {
|
|
80
|
+
* content_type: 'article',
|
|
81
|
+
* content_id: '123',
|
|
82
|
+
* },
|
|
83
|
+
* });
|
|
67
84
|
* ```
|
|
68
85
|
*/
|
|
69
|
-
static async trackScreenView(screenName) {
|
|
86
|
+
static async trackScreenView(screenName, options) {
|
|
70
87
|
this.ensureInitialized();
|
|
71
|
-
return NativeBigCrunchAds.trackScreenView(screenName);
|
|
88
|
+
return NativeBigCrunchAds.trackScreenView(screenName, options);
|
|
72
89
|
}
|
|
73
90
|
/**
|
|
74
91
|
* Get the current app configuration
|
|
@@ -129,6 +146,22 @@ export class BigCrunchAds {
|
|
|
129
146
|
static async setCoppaCompliant(isCompliant) {
|
|
130
147
|
return NativeBigCrunchAds.setCoppaCompliant(isCompliant);
|
|
131
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Set the account type for the current user
|
|
151
|
+
*
|
|
152
|
+
* This value is included in all analytics events (pageviews, impressions, revenue, etc.)
|
|
153
|
+
* and persists until changed. Defaults to 'guest' if not set.
|
|
154
|
+
*
|
|
155
|
+
* @param accountType - The user's account type
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* BigCrunchAds.setAccountType('subscriber');
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
static async setAccountType(accountType) {
|
|
163
|
+
return NativeBigCrunchAds.setAccountType(accountType);
|
|
164
|
+
}
|
|
132
165
|
/**
|
|
133
166
|
* Enable or disable debug mode
|
|
134
167
|
*
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* This is the bridge to the native Android/iOS implementation
|
|
4
4
|
*/
|
|
5
5
|
import { NativeEventEmitter } from 'react-native';
|
|
6
|
-
import type { InitializationOptions, AdRequestOptions, SessionInfo, DeviceContext, AppConfig } from './types';
|
|
6
|
+
import type { InitializationOptions, AdRequestOptions, SessionInfo, DeviceContext, AppConfig, ScreenViewOptions } from './types';
|
|
7
7
|
export interface NativeBigCrunchAdsModule {
|
|
8
8
|
initialize(options: InitializationOptions): Promise<void>;
|
|
9
9
|
isInitialized(): Promise<boolean>;
|
|
10
10
|
getAppConfig(): Promise<AppConfig | null>;
|
|
11
11
|
refreshConfig(): Promise<void>;
|
|
12
|
-
trackScreenView(screenName: string): Promise<void>;
|
|
12
|
+
trackScreenView(screenName: string, options?: ScreenViewOptions): Promise<void>;
|
|
13
13
|
loadInterstitial(options: AdRequestOptions): Promise<void>;
|
|
14
14
|
showInterstitial(placementId: string): Promise<void>;
|
|
15
15
|
isInterstitialLoaded(placementId: string): Promise<boolean>;
|
|
@@ -24,6 +24,7 @@ export interface NativeBigCrunchAdsModule {
|
|
|
24
24
|
setGdprConsent(consent: string): Promise<void>;
|
|
25
25
|
setCcpaString(ccpaString: string): Promise<void>;
|
|
26
26
|
setCoppaCompliant(isCompliant: boolean): Promise<void>;
|
|
27
|
+
setAccountType(accountType: string): Promise<void>;
|
|
27
28
|
setDebugMode(enabled: boolean): Promise<void>;
|
|
28
29
|
addTestDevice(deviceId: string): Promise<void>;
|
|
29
30
|
removeTestDevice(deviceId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeBigCrunchAds.d.ts","sourceRoot":"","sources":["../src/NativeBigCrunchAds.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAiB,kBAAkB,EAAY,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeBigCrunchAds.d.ts","sourceRoot":"","sources":["../src/NativeBigCrunchAds.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAiB,kBAAkB,EAAY,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjI,MAAM,WAAW,wBAAwB;IAEvC,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAGlC,YAAY,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC1C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAG/B,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGhF,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGxD,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGpD,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGjC,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAG3C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,iBAAiB,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvD,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGnD,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAGpC,gBAAgB,CAAC,MAAM,EAAE;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAgBD,eAAO,MAAM,kBAAkB,EAAyB,wBAAwB,CAAC;AAGjF,eAAO,MAAM,wBAAwB,oBAA6C,CAAC;AAGnF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCnB,CAAC"}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -9,6 +9,10 @@ export * from './ads';
|
|
|
9
9
|
* SDK Environment options
|
|
10
10
|
*/
|
|
11
11
|
export type Environment = 'production' | 'sandbox';
|
|
12
|
+
/**
|
|
13
|
+
* Account type for the current user
|
|
14
|
+
*/
|
|
15
|
+
export type AccountType = 'guest' | 'logged_in' | 'paid' | 'subscriber' | 'free';
|
|
12
16
|
/**
|
|
13
17
|
* Ad formats supported by the SDK
|
|
14
18
|
*/
|
|
@@ -43,6 +47,42 @@ export interface InitializationOptions {
|
|
|
43
47
|
/** Session timeout in seconds (default: 1800) */
|
|
44
48
|
sessionTimeout?: number;
|
|
45
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Content metadata for a screen/page view
|
|
52
|
+
*
|
|
53
|
+
* Matches the `page_meta_data` fields in the BigCrunch analytics schema.
|
|
54
|
+
*/
|
|
55
|
+
export interface PageMetaData {
|
|
56
|
+
/** Canonical page URL */
|
|
57
|
+
url?: string;
|
|
58
|
+
/** Content author */
|
|
59
|
+
author?: string;
|
|
60
|
+
/** Page/screen title */
|
|
61
|
+
title?: string;
|
|
62
|
+
/** Featured image URL */
|
|
63
|
+
thumbnailUrl?: string;
|
|
64
|
+
/** Content section/category */
|
|
65
|
+
articleSection?: string;
|
|
66
|
+
/** Comma-separated keywords */
|
|
67
|
+
keywords?: string;
|
|
68
|
+
/** Content creation date (ISO 8601) */
|
|
69
|
+
dateCreated?: string;
|
|
70
|
+
/** Content last modified date (ISO 8601) */
|
|
71
|
+
dateModified?: string;
|
|
72
|
+
/** Content publication date (ISO 8601) */
|
|
73
|
+
datePublished?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Options for customizing screen view tracking
|
|
77
|
+
*/
|
|
78
|
+
export interface ScreenViewOptions {
|
|
79
|
+
/** Override the auto-generated page URL (must be a valid web URL) */
|
|
80
|
+
pageUrl?: string;
|
|
81
|
+
/** Content metadata for this screen/page */
|
|
82
|
+
pageMeta?: PageMetaData;
|
|
83
|
+
/** Custom key-value dimensions attached to analytics events */
|
|
84
|
+
customDimensions?: Record<string, string>;
|
|
85
|
+
}
|
|
46
86
|
/**
|
|
47
87
|
* Ad request options
|
|
48
88
|
*/
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigcrunch/react-native-ads",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "BigCrunch Mobile Ads SDK for React Native - Simplified in-app advertising with S2S demand and Google Ad Manager",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
package/src/BigCrunchAds.ts
CHANGED
|
@@ -11,10 +11,12 @@ import {
|
|
|
11
11
|
import type {
|
|
12
12
|
InitializationOptions,
|
|
13
13
|
Environment,
|
|
14
|
+
AccountType,
|
|
14
15
|
SessionInfo,
|
|
15
16
|
DeviceContext,
|
|
16
17
|
AppConfig,
|
|
17
18
|
EventSubscription,
|
|
19
|
+
ScreenViewOptions,
|
|
18
20
|
} from './types';
|
|
19
21
|
|
|
20
22
|
/**
|
|
@@ -84,15 +86,35 @@ export class BigCrunchAds {
|
|
|
84
86
|
* Track a screen view for analytics
|
|
85
87
|
*
|
|
86
88
|
* @param screenName - Name of the screen being viewed
|
|
89
|
+
* @param options - Optional overrides for page URL, content metadata, and custom dimensions
|
|
87
90
|
*
|
|
88
91
|
* @example
|
|
89
92
|
* ```typescript
|
|
93
|
+
* // Simple usage
|
|
90
94
|
* BigCrunchAds.trackScreenView('HomeScreen');
|
|
95
|
+
*
|
|
96
|
+
* // With options
|
|
97
|
+
* BigCrunchAds.trackScreenView('ArticlePage', {
|
|
98
|
+
* pageUrl: 'https://example.com/articles/123',
|
|
99
|
+
* pageMeta: {
|
|
100
|
+
* title: 'My Article Title',
|
|
101
|
+
* author: 'Jane Smith',
|
|
102
|
+
* articleSection: 'Technology',
|
|
103
|
+
* keywords: 'tech,mobile,apps',
|
|
104
|
+
* },
|
|
105
|
+
* customDimensions: {
|
|
106
|
+
* content_type: 'article',
|
|
107
|
+
* content_id: '123',
|
|
108
|
+
* },
|
|
109
|
+
* });
|
|
91
110
|
* ```
|
|
92
111
|
*/
|
|
93
|
-
static async trackScreenView(
|
|
112
|
+
static async trackScreenView(
|
|
113
|
+
screenName: string,
|
|
114
|
+
options?: ScreenViewOptions
|
|
115
|
+
): Promise<void> {
|
|
94
116
|
this.ensureInitialized();
|
|
95
|
-
return NativeBigCrunchAds.trackScreenView(screenName);
|
|
117
|
+
return NativeBigCrunchAds.trackScreenView(screenName, options);
|
|
96
118
|
}
|
|
97
119
|
|
|
98
120
|
/**
|
|
@@ -162,6 +184,23 @@ export class BigCrunchAds {
|
|
|
162
184
|
return NativeBigCrunchAds.setCoppaCompliant(isCompliant);
|
|
163
185
|
}
|
|
164
186
|
|
|
187
|
+
/**
|
|
188
|
+
* Set the account type for the current user
|
|
189
|
+
*
|
|
190
|
+
* This value is included in all analytics events (pageviews, impressions, revenue, etc.)
|
|
191
|
+
* and persists until changed. Defaults to 'guest' if not set.
|
|
192
|
+
*
|
|
193
|
+
* @param accountType - The user's account type
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* BigCrunchAds.setAccountType('subscriber');
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
static async setAccountType(accountType: AccountType): Promise<void> {
|
|
201
|
+
return NativeBigCrunchAds.setAccountType(accountType);
|
|
202
|
+
}
|
|
203
|
+
|
|
165
204
|
/**
|
|
166
205
|
* Enable or disable debug mode
|
|
167
206
|
*
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
|
|
7
|
-
import type { InitializationOptions, AdRequestOptions, SessionInfo, DeviceContext, AppConfig } from './types';
|
|
7
|
+
import type { InitializationOptions, AdRequestOptions, SessionInfo, DeviceContext, AppConfig, ScreenViewOptions } from './types';
|
|
8
8
|
|
|
9
9
|
// Type definition for the native module
|
|
10
10
|
export interface NativeBigCrunchAdsModule {
|
|
@@ -17,7 +17,7 @@ export interface NativeBigCrunchAdsModule {
|
|
|
17
17
|
refreshConfig(): Promise<void>;
|
|
18
18
|
|
|
19
19
|
// Screen tracking
|
|
20
|
-
trackScreenView(screenName: string): Promise<void>;
|
|
20
|
+
trackScreenView(screenName: string, options?: ScreenViewOptions): Promise<void>;
|
|
21
21
|
|
|
22
22
|
// Interstitial ads
|
|
23
23
|
loadInterstitial(options: AdRequestOptions): Promise<void>;
|
|
@@ -43,6 +43,9 @@ export interface NativeBigCrunchAdsModule {
|
|
|
43
43
|
setCcpaString(ccpaString: string): Promise<void>;
|
|
44
44
|
setCoppaCompliant(isCompliant: boolean): Promise<void>;
|
|
45
45
|
|
|
46
|
+
// Account type
|
|
47
|
+
setAccountType(accountType: string): Promise<void>;
|
|
48
|
+
|
|
46
49
|
// Debug
|
|
47
50
|
setDebugMode(enabled: boolean): Promise<void>;
|
|
48
51
|
addTestDevice(deviceId: string): Promise<void>;
|