@bigcrunch/react-native-ads 0.2.1 → 0.3.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/README.md CHANGED
@@ -59,7 +59,6 @@ async function initializeAds() {
59
59
  try {
60
60
  await BigCrunchAds.initialize(
61
61
  'your-property-id',
62
- 'your-api-key',
63
62
  'production' // or 'sandbox'
64
63
  );
65
64
  console.log('BigCrunch Ads initialized successfully');
@@ -113,7 +112,8 @@ function HomeScreen() {
113
112
  - `MEDIUM_RECTANGLE` - 300x250
114
113
  - `FULL_BANNER` - 468x60
115
114
  - `LEADERBOARD` - 728x90
116
- - `ADAPTIVE` - Adaptive banner (recommended)
115
+ - `ADAPTIVE` - Full-width adaptive banner (recommended). Google calculates the optimal height for the device screen width.
116
+ - `SMART` - Deprecated, alias for `ADAPTIVE`
117
117
  - Custom size: `{ width: 300, height: 250 }`
118
118
 
119
119
  ### Interstitial Ads
@@ -285,7 +285,7 @@ import type {
285
285
 
286
286
  | Method | Description |
287
287
  |--------|-------------|
288
- | `initialize(propertyId, apiKey, environment)` | Initialize the SDK |
288
+ | `initialize(propertyId, environment)` | Initialize the SDK |
289
289
  | `trackScreenView(screenName)` | Track a screen view |
290
290
  | `getAppConfig()` | Get current app configuration |
291
291
  | `getSessionInfo()` | Get current session information |
@@ -37,12 +37,12 @@ android {
37
37
  }
38
38
 
39
39
  compileOptions {
40
- sourceCompatibility JavaVersion.VERSION_1_8
41
- targetCompatibility JavaVersion.VERSION_1_8
40
+ sourceCompatibility JavaVersion.VERSION_11
41
+ targetCompatibility JavaVersion.VERSION_11
42
42
  }
43
43
 
44
44
  kotlinOptions {
45
- jvmTarget = '1.8'
45
+ jvmTarget = '11'
46
46
  freeCompilerArgs += ['-Xskip-metadata-version-check']
47
47
  }
48
48
  }
@@ -64,6 +64,10 @@ dependencies {
64
64
  // as transitive dependencies, eliminating the need for duplication
65
65
  implementation project(':bigcrunch-ads')
66
66
 
67
+ // Google Ads SDK - needed at compile time for AdSize reference in BigCrunchBannerViewManager
68
+ // (main SDK uses 'implementation' so it's not transitively available)
69
+ compileOnly 'com.google.android.gms:play-services-ads:22.6.0'
70
+
67
71
  // Coroutines - needed by React Native bridge code
68
72
  // (Native SDK uses 'implementation' so not automatically transitive)
69
73
  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
@@ -31,8 +31,6 @@ class BigCrunchAdsModule(reactContext: ReactApplicationContext) :
31
31
  try {
32
32
  val propertyId = options.getString("propertyId")
33
33
  ?: throw IllegalArgumentException("propertyId is required")
34
- val apiKey = options.getString("apiKey")
35
- ?: throw IllegalArgumentException("apiKey is required")
36
34
  val environment = options.getString("environment") ?: "production"
37
35
  val debug = if (options.hasKey("debug")) options.getBoolean("debug") else false
38
36
 
@@ -44,7 +42,6 @@ class BigCrunchAdsModule(reactContext: ReactApplicationContext) :
44
42
  BigCrunchAds.initialize(
45
43
  context = context,
46
44
  propertyId = propertyId,
47
- apiKey = apiKey,
48
45
  env = if (environment == "staging")
49
46
  BigCrunchAds.Environment.Staging
50
47
  else
@@ -599,9 +596,27 @@ class BigCrunchAdsModule(reactContext: ReactApplicationContext) :
599
596
  map.putArray("sizes", sizesArray)
600
597
  }
601
598
 
602
- // Add Prebid config ID if available
603
- config.prebidConfigId?.let {
604
- map.putString("prebidConfigId", it)
599
+ // Add bidders array if available
600
+ config.bidders?.let { bidders ->
601
+ val biddersArray = Arguments.createArray()
602
+ for (bidderConfig in bidders) {
603
+ val bidderMap = Arguments.createMap()
604
+ bidderMap.putString("bidder", bidderConfig.bidder)
605
+ bidderConfig.params?.let { params ->
606
+ val paramsMap = Arguments.createMap()
607
+ for ((key, value) in params) {
608
+ when (value) {
609
+ is String -> paramsMap.putString(key, value)
610
+ is Int -> paramsMap.putInt(key, value)
611
+ is Double -> paramsMap.putDouble(key, value)
612
+ is Boolean -> paramsMap.putBoolean(key, value)
613
+ }
614
+ }
615
+ bidderMap.putMap("params", paramsMap)
616
+ }
617
+ biddersArray.pushMap(bidderMap)
618
+ }
619
+ map.putArray("bidders", biddersArray)
605
620
  }
606
621
 
607
622
  // Add refresh config if available
@@ -83,22 +83,38 @@ class BigCrunchBannerViewManager : SimpleViewManager<BigCrunchBannerView>() {
83
83
  "MEDIUM_RECTANGLE" -> AdSize(300, 250)
84
84
  "FULL_BANNER" -> AdSize(468, 60)
85
85
  "LEADERBOARD" -> AdSize(728, 90)
86
- "ADAPTIVE" -> AdSize(320, 50) // Default for now
87
- "SMART" -> AdSize(320, 50) // Default banner size
86
+ "ADAPTIVE" -> AdSize.adaptive(0)
87
+ "SMART" -> AdSize.adaptive(0) // Deprecated, use ADAPTIVE
88
88
  else -> AdSize(320, 50)
89
89
  }
90
90
  view.setAdSize(adSize)
91
91
 
92
+ // For adaptive sizes, resolve concrete dimensions for layout
93
+ val layoutWidth: Int
94
+ val layoutHeight: Int
95
+ if (adSize.isAdaptive) {
96
+ val displayMetrics = view.resources.displayMetrics
97
+ val widthDp = (displayMetrics.widthPixels / displayMetrics.density).toInt()
98
+ val googleAdSize = com.google.android.gms.ads.AdSize
99
+ .getCurrentOrientationAnchoredAdaptiveBannerAdSize(view.context, widthDp)
100
+ layoutWidth = googleAdSize.width
101
+ layoutHeight = googleAdSize.height
102
+ } else {
103
+ layoutWidth = adSize.width
104
+ layoutHeight = adSize.height
105
+ }
106
+
92
107
  // Set minimum height based on ad size to ensure visibility
93
108
  val density = view.resources.displayMetrics.density
94
- val minHeightPx = (adSize.height * density).toInt()
95
- val minWidthPx = (adSize.width * density).toInt()
109
+ val minHeightPx = (layoutHeight * density).toInt()
110
+ val minWidthPx = (layoutWidth * density).toInt()
96
111
  view.minimumHeight = minHeightPx
97
112
  view.minimumWidth = minWidthPx
98
113
 
99
114
  android.util.Log.d("BigCrunchBannerViewManager", """
100
115
  === SIZE SET ===
101
- Ad size: ${adSize.width}x${adSize.height} dp
116
+ Ad size: ${adSize.width}x${adSize.height} dp (adaptive=${adSize.isAdaptive})
117
+ Layout size: ${layoutWidth}x${layoutHeight} dp
102
118
  Density: $density
103
119
  Minimum pixels: ${minWidthPx}x${minHeightPx}
104
120
  View parent: ${view.parent?.javaClass?.simpleName}
@@ -196,9 +196,8 @@ class BigCrunchAdsModule: RCTEventEmitter {
196
196
  func initialize(options: NSDictionary,
197
197
  resolver: @escaping RCTPromiseResolveBlock,
198
198
  rejecter: @escaping RCTPromiseRejectBlock) {
199
- guard let propertyId = options["propertyId"] as? String,
200
- let apiKey = options["apiKey"] as? String else {
201
- rejecter("INIT_ERROR", "propertyId and apiKey are required", nil)
199
+ guard let propertyId = options["propertyId"] as? String else {
200
+ rejecter("INIT_ERROR", "propertyId is required", nil)
202
201
  return
203
202
  }
204
203
 
@@ -212,7 +211,6 @@ class BigCrunchAdsModule: RCTEventEmitter {
212
211
 
213
212
  BigCrunchAds.initialize(
214
213
  propertyId: propertyId,
215
- apiKey: apiKey,
216
214
  env: env,
217
215
  useMockConfig: useMockConfig
218
216
  )
@@ -272,8 +270,14 @@ class BigCrunchAdsModule: RCTEventEmitter {
272
270
  if let sizes = placement.sizes {
273
271
  placementDict["sizes"] = sizes.map { ["width": $0.width, "height": $0.height] }
274
272
  }
275
- if let prebidConfigId = placement.prebidConfigId {
276
- placementDict["prebidConfigId"] = prebidConfigId
273
+ if let bidders = placement.bidders {
274
+ placementDict["bidders"] = bidders.map { bidderConfig in
275
+ var bidderDict: [String: Any] = ["bidder": bidderConfig.bidder]
276
+ if let params = bidderConfig.params {
277
+ bidderDict["params"] = params.mapValues { $0.value }
278
+ }
279
+ return bidderDict
280
+ }
277
281
  }
278
282
  return placementDict
279
283
  }
@@ -152,50 +152,45 @@ class BigCrunchBannerViewWrapper: UIView {
152
152
  func updateAdSize() {
153
153
  guard let bannerView = bannerView else { return }
154
154
 
155
- var adSize: GoogleMobileAds.AdSize
156
- var sizeOverride: CGSize?
155
+ var googleAdSize: GoogleMobileAds.AdSize
156
+ var bcAdSize: BCAdSize
157
157
 
158
158
  if let width = _customWidth, let height = _customHeight {
159
- sizeOverride = CGSize(width: width, height: height)
160
- adSize = GoogleMobileAds.adSizeFor(cgSize: sizeOverride!)
159
+ bcAdSize = BCAdSize(width: Int(width), height: Int(height))
160
+ googleAdSize = GoogleMobileAds.adSizeFor(cgSize: CGSize(width: width, height: height))
161
161
  } else {
162
162
  switch sizeString {
163
163
  case "BANNER":
164
- sizeOverride = CGSize(width: 320, height: 50)
165
- adSize = GoogleMobileAds.AdSizeBanner
164
+ bcAdSize = BCAdSize(width: 320, height: 50)
165
+ googleAdSize = GoogleMobileAds.AdSizeBanner
166
166
  case "LARGE_BANNER":
167
- sizeOverride = CGSize(width: 320, height: 100)
168
- adSize = GoogleMobileAds.AdSizeLargeBanner
167
+ bcAdSize = BCAdSize(width: 320, height: 100)
168
+ googleAdSize = GoogleMobileAds.AdSizeLargeBanner
169
169
  case "MEDIUM_RECTANGLE":
170
- sizeOverride = CGSize(width: 300, height: 250)
171
- adSize = GoogleMobileAds.AdSizeMediumRectangle
170
+ bcAdSize = BCAdSize(width: 300, height: 250)
171
+ googleAdSize = GoogleMobileAds.AdSizeMediumRectangle
172
172
  case "FULL_BANNER":
173
- sizeOverride = CGSize(width: 468, height: 60)
174
- adSize = GoogleMobileAds.AdSizeFullBanner
173
+ bcAdSize = BCAdSize(width: 468, height: 60)
174
+ googleAdSize = GoogleMobileAds.AdSizeFullBanner
175
175
  case "LEADERBOARD":
176
- sizeOverride = CGSize(width: 728, height: 90)
177
- adSize = GoogleMobileAds.AdSizeLeaderboard
178
- case "ADAPTIVE":
176
+ bcAdSize = BCAdSize(width: 728, height: 90)
177
+ googleAdSize = GoogleMobileAds.AdSizeLeaderboard
178
+ case "ADAPTIVE", "SMART":
179
179
  let frame = self.frame.width > 0 ? self.frame : UIScreen.main.bounds
180
- adSize = GoogleMobileAds.currentOrientationAnchoredAdaptiveBanner(width: frame.width)
181
- sizeOverride = adSize.size
182
- case "SMART":
183
- // Smart banner is deprecated, use adaptive
184
- let frame = self.frame.width > 0 ? self.frame : UIScreen.main.bounds
185
- adSize = GoogleMobileAds.currentOrientationAnchoredAdaptiveBanner(width: frame.width)
186
- sizeOverride = adSize.size
180
+ bcAdSize = BCAdSize.adaptive(width: Int(frame.width))
181
+ googleAdSize = GoogleMobileAds.currentOrientationAnchoredAdaptiveBanner(width: frame.width)
187
182
  default:
188
- sizeOverride = CGSize(width: 320, height: 50)
189
- adSize = GoogleMobileAds.AdSizeBanner
183
+ bcAdSize = BCAdSize(width: 320, height: 50)
184
+ googleAdSize = GoogleMobileAds.AdSizeBanner
190
185
  }
191
186
  }
192
187
 
193
188
  // Set the size override on the native banner view
194
- bannerView.adSizeOverride = sizeOverride
189
+ bannerView.adSizeOverride = bcAdSize
195
190
 
196
- // Update frame constraints
191
+ // Update frame constraints using resolved Google size for layout
197
192
  if _customWidth == nil && _customHeight == nil {
198
- self.frame.size = adSize.size
193
+ self.frame.size = googleAdSize.size
199
194
  }
200
195
  }
201
196
 
@@ -14,7 +14,6 @@ export declare class BigCrunchAds {
14
14
  * Must be called before using any other SDK features
15
15
  *
16
16
  * @param propertyId - Your BigCrunch property ID
17
- * @param apiKey - Your API key for authentication
18
17
  * @param environment - Environment to use (default: 'production')
19
18
  * @param options - Additional initialization options
20
19
  *
@@ -22,12 +21,11 @@ export declare class BigCrunchAds {
22
21
  * ```typescript
23
22
  * await BigCrunchAds.initialize(
24
23
  * 'your-property-id',
25
- * 'your-api-key',
26
24
  * 'production'
27
25
  * );
28
26
  * ```
29
27
  */
30
- static initialize(propertyId: string, apiKey: string, environment?: Environment, options?: Partial<InitializationOptions>): Promise<void>;
28
+ static initialize(propertyId: string, environment?: Environment, options?: Partial<InitializationOptions>): Promise<void>;
31
29
  /**
32
30
  * Check if the SDK is initialized
33
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BigCrunchAds.d.ts","sourceRoot":"","sources":["../src/BigCrunchAds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BigCrunchAds.d.ts","sourceRoot":"","sources":["../src/BigCrunchAds.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,6 @@ export class BigCrunchAds {
14
14
  * Must be called before using any other SDK features
15
15
  *
16
16
  * @param propertyId - Your BigCrunch property ID
17
- * @param apiKey - Your API key for authentication
18
17
  * @param environment - Environment to use (default: 'production')
19
18
  * @param options - Additional initialization options
20
19
  *
@@ -22,19 +21,17 @@ export class BigCrunchAds {
22
21
  * ```typescript
23
22
  * await BigCrunchAds.initialize(
24
23
  * 'your-property-id',
25
- * 'your-api-key',
26
24
  * 'production'
27
25
  * );
28
26
  * ```
29
27
  */
30
- static async initialize(propertyId, apiKey, environment = 'production', options) {
28
+ static async initialize(propertyId, environment = 'production', options) {
31
29
  if (this.isInitializedFlag) {
32
30
  console.warn('BigCrunchAds: SDK is already initialized');
33
31
  return this.initializationPromise;
34
32
  }
35
33
  const initOptions = {
36
34
  propertyId,
37
- apiKey,
38
35
  environment,
39
36
  ...options,
40
37
  };
@@ -33,8 +33,8 @@ export interface PlacementConfig {
33
33
  gamAdUnit: string;
34
34
  /** Ad size configuration */
35
35
  size?: AdSizeConfig;
36
- /** Prebid configuration */
37
- prebidConfig?: PrebidConfig;
36
+ /** Prebid bidder configurations */
37
+ bidders?: BidderConfig[];
38
38
  /** Amazon APS configuration */
39
39
  amazonConfig?: AmazonConfig;
40
40
  /** Placement-specific settings */
@@ -54,34 +54,16 @@ export interface AdSizeConfig {
54
54
  adaptive?: boolean;
55
55
  }
56
56
  /**
57
- * Prebid configuration
57
+ * Configuration for a single Prebid bidder
58
+ *
59
+ * Contains the bidder name and its params, which get passed inline
60
+ * to the S2S endpoint in the bid request.
58
61
  */
59
- export interface PrebidConfig {
60
- /** Prebid account ID */
61
- accountId: string;
62
- /** Config ID for server-side configuration */
63
- configId: string;
64
- /** Timeout for prebid requests in milliseconds */
65
- timeout?: number;
66
- /** Enable debug mode for prebid */
67
- debug?: boolean;
68
- /** Custom targeting parameters */
69
- customTargeting?: Record<string, string>;
70
- /** Price granularity */
71
- priceGranularity?: 'low' | 'medium' | 'high' | 'auto' | 'dense' | 'custom';
72
- /** Custom price granularity buckets */
73
- customPriceGranularity?: PriceGranularityBucket[];
74
- }
75
- /**
76
- * Price granularity bucket configuration
77
- */
78
- export interface PriceGranularityBucket {
79
- /** Minimum price */
80
- min: number;
81
- /** Maximum price */
82
- max: number;
83
- /** Increment */
84
- increment: number;
62
+ export interface BidderConfig {
63
+ /** Bidder name (e.g., "appnexus", "rubicon") */
64
+ bidder: string;
65
+ /** Bidder-specific parameters */
66
+ params?: Record<string, any>;
85
67
  }
86
68
  /**
87
69
  * Amazon APS configuration
@@ -118,6 +100,19 @@ export interface GlobalSettings {
118
100
  ccpaString?: string;
119
101
  /** COPPA compliance */
120
102
  coppaCompliant?: boolean;
103
+ /** Global refresh config (defaults for all banner placements) */
104
+ refresh?: RefreshConfig;
105
+ }
106
+ /**
107
+ * Refresh configuration for banner ads
108
+ */
109
+ export interface RefreshConfig {
110
+ /** Whether refresh is enabled */
111
+ enabled: boolean;
112
+ /** Refresh interval in milliseconds */
113
+ intervalMs: number;
114
+ /** Maximum number of refreshes */
115
+ maxRefreshes: number;
121
116
  }
122
117
  /**
123
118
  * Placement-specific settings
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -30,8 +30,6 @@ export interface CustomSize {
30
30
  export interface InitializationOptions {
31
31
  /** Your BigCrunch property ID */
32
32
  propertyId: string;
33
- /** Your API key for authentication */
34
- apiKey: string;
35
33
  /** Environment to use */
36
34
  environment?: Environment;
37
35
  /** Enable debug logging */
@@ -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.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "BigCrunch Mobile Ads SDK for React Native - Simplified in-app advertising with Prebid and Google Ad Manager",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -21,7 +21,7 @@ Pod::Spec.new do |s|
21
21
  s.dependency "React"
22
22
  s.dependency "BigCrunchAds", "~> 0.1.0" # Reference to main iOS SDK
23
23
  s.dependency "Google-Mobile-Ads-SDK", ">= 10.14.0"
24
- s.dependency "PrebidMobile", "~> 2.1.6"
24
+ s.dependency "PrebidMobile", "~> 2.3.1"
25
25
 
26
26
  s.swift_version = "5.9"
27
27
  end
@@ -29,7 +29,6 @@ export class BigCrunchAds {
29
29
  * Must be called before using any other SDK features
30
30
  *
31
31
  * @param propertyId - Your BigCrunch property ID
32
- * @param apiKey - Your API key for authentication
33
32
  * @param environment - Environment to use (default: 'production')
34
33
  * @param options - Additional initialization options
35
34
  *
@@ -37,14 +36,12 @@ export class BigCrunchAds {
37
36
  * ```typescript
38
37
  * await BigCrunchAds.initialize(
39
38
  * 'your-property-id',
40
- * 'your-api-key',
41
39
  * 'production'
42
40
  * );
43
41
  * ```
44
42
  */
45
43
  static async initialize(
46
44
  propertyId: string,
47
- apiKey: string,
48
45
  environment: Environment = 'production',
49
46
  options?: Partial<InitializationOptions>
50
47
  ): Promise<void> {
@@ -55,7 +52,6 @@ export class BigCrunchAds {
55
52
 
56
53
  const initOptions: InitializationOptions = {
57
54
  propertyId,
58
- apiKey,
59
55
  environment,
60
56
  ...options,
61
57
  };
@@ -36,8 +36,8 @@ export interface PlacementConfig {
36
36
  gamAdUnit: string;
37
37
  /** Ad size configuration */
38
38
  size?: AdSizeConfig;
39
- /** Prebid configuration */
40
- prebidConfig?: PrebidConfig;
39
+ /** Prebid bidder configurations */
40
+ bidders?: BidderConfig[];
41
41
  /** Amazon APS configuration */
42
42
  amazonConfig?: AmazonConfig;
43
43
  /** Placement-specific settings */
@@ -59,35 +59,16 @@ export interface AdSizeConfig {
59
59
  }
60
60
 
61
61
  /**
62
- * Prebid configuration
62
+ * Configuration for a single Prebid bidder
63
+ *
64
+ * Contains the bidder name and its params, which get passed inline
65
+ * to the S2S endpoint in the bid request.
63
66
  */
64
- export interface PrebidConfig {
65
- /** Prebid account ID */
66
- accountId: string;
67
- /** Config ID for server-side configuration */
68
- configId: string;
69
- /** Timeout for prebid requests in milliseconds */
70
- timeout?: number;
71
- /** Enable debug mode for prebid */
72
- debug?: boolean;
73
- /** Custom targeting parameters */
74
- customTargeting?: Record<string, string>;
75
- /** Price granularity */
76
- priceGranularity?: 'low' | 'medium' | 'high' | 'auto' | 'dense' | 'custom';
77
- /** Custom price granularity buckets */
78
- customPriceGranularity?: PriceGranularityBucket[];
79
- }
80
-
81
- /**
82
- * Price granularity bucket configuration
83
- */
84
- export interface PriceGranularityBucket {
85
- /** Minimum price */
86
- min: number;
87
- /** Maximum price */
88
- max: number;
89
- /** Increment */
90
- increment: number;
67
+ export interface BidderConfig {
68
+ /** Bidder name (e.g., "appnexus", "rubicon") */
69
+ bidder: string;
70
+ /** Bidder-specific parameters */
71
+ params?: Record<string, any>;
91
72
  }
92
73
 
93
74
  /**
@@ -126,6 +107,20 @@ export interface GlobalSettings {
126
107
  ccpaString?: string;
127
108
  /** COPPA compliance */
128
109
  coppaCompliant?: boolean;
110
+ /** Global refresh config (defaults for all banner placements) */
111
+ refresh?: RefreshConfig;
112
+ }
113
+
114
+ /**
115
+ * Refresh configuration for banner ads
116
+ */
117
+ export interface RefreshConfig {
118
+ /** Whether refresh is enabled */
119
+ enabled: boolean;
120
+ /** Refresh interval in milliseconds */
121
+ intervalMs: number;
122
+ /** Maximum number of refreshes */
123
+ maxRefreshes: number;
129
124
  }
130
125
 
131
126
  /**
@@ -43,8 +43,6 @@ export interface CustomSize {
43
43
  export interface InitializationOptions {
44
44
  /** Your BigCrunch property ID */
45
45
  propertyId: string;
46
- /** Your API key for authentication */
47
- apiKey: string;
48
46
  /** Environment to use */
49
47
  environment?: Environment;
50
48
  /** Enable debug logging */