sovads-sdk 1.0.3 → 1.0.5

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
@@ -34,6 +34,10 @@ await banner.render()
34
34
  const popup = new Popup(sovads)
35
35
  await popup.show() // Shows after 3 seconds by default
36
36
 
37
+ // Bottom bar (floating banner at bottom with close button)
38
+ const bottomBar = new BottomBar(sovads)
39
+ await bottomBar.show()
40
+
37
41
  // Sidebar Ad
38
42
  const sidebar = new Sidebar(sovads, 'sidebar-container')
39
43
  await sidebar.render()
@@ -108,6 +112,16 @@ await popup.show(consumerId?: string, delay?: number)
108
112
  popup.hide()
109
113
  ```
110
114
 
115
+ ### BottomBar
116
+
117
+ Floating bottom bar ad with a built-in close (`×`) button. Designed to sit fixed at the bottom of the viewport; click the `×` or the ad itself to dismiss. You can style the bar by targeting the `.sovads-bottom-bar` class in your CSS.
118
+
119
+ ```typescript
120
+ const bottomBar = new BottomBar(sovads: SovAds)
121
+ await bottomBar.show(consumerId?: string)
122
+ bottomBar.hide()
123
+ ```
124
+
111
125
  ### Sidebar
112
126
 
113
127
  Sidebar ad component.
@@ -127,6 +141,7 @@ await sidebar.render(consumerId?: string)
127
141
  - ✅ CORS support
128
142
  - ✅ TypeScript support
129
143
  - ✅ Debug logging
144
+ - 🎨 Customizable styling via CSS classes (e.g. `.sovads-banner`, `.sovads-sidebar`, `.sovads-popup-overlay`, `.sovads-bottom-bar`)
130
145
 
131
146
  ## License
132
147
 
package/dist/index.d.ts CHANGED
@@ -1,8 +1,16 @@
1
1
  export interface SovAdsConfig {
2
2
  siteId?: string;
3
3
  apiUrl?: string;
4
+ apiKey?: string;
5
+ apiSecret?: string;
4
6
  debug?: boolean;
5
7
  consumerId?: string;
8
+ refreshInterval?: number;
9
+ lazyLoad?: boolean;
10
+ rotationEnabled?: boolean;
11
+ popupMinIntervalMinutes?: number;
12
+ popupSessionMax?: number;
13
+ walletAddress?: string;
6
14
  }
7
15
  export interface AdComponent {
8
16
  id: string;
@@ -18,6 +26,19 @@ export interface AdComponent {
18
26
  startDate?: string | null;
19
27
  endDate?: string | null;
20
28
  mediaType?: 'image' | 'video';
29
+ trackingToken?: string;
30
+ placement?: string;
31
+ size?: string;
32
+ }
33
+ interface AdLoadOptions {
34
+ consumerId?: string;
35
+ placement?: string;
36
+ size?: string;
37
+ walletAddress?: string;
38
+ }
39
+ interface SlotConfig {
40
+ placementId?: string;
41
+ size?: string;
21
42
  }
22
43
  declare class SovAds {
23
44
  protected config: SovAdsConfig;
@@ -26,7 +47,15 @@ declare class SovAds {
26
47
  private siteId;
27
48
  private renderObservers;
28
49
  private debugLoggingEnabled;
50
+ private adTrackingTokens;
51
+ private walletAddress;
29
52
  constructor(config?: SovAdsConfig);
53
+ /**
54
+ * Identifies the current viewer with a wallet address.
55
+ * This links the device fingerprint to the wallet on the backend.
56
+ */
57
+ identify(walletAddress: string): void;
58
+ private loadPersistedIdentity;
30
59
  private generateFingerprint;
31
60
  private detectSiteId;
32
61
  /**
@@ -47,11 +76,15 @@ declare class SovAds {
47
76
  * Validate URL format
48
77
  */
49
78
  private isValidUrl;
79
+ private inferMediaTypeFromUrl;
50
80
  /**
51
81
  * Fetch with retry logic
52
82
  */
53
83
  private fetchWithRetry;
54
- loadAd(consumerId?: string): Promise<AdComponent | null>;
84
+ loadAd(options?: AdLoadOptions): Promise<AdComponent | null>;
85
+ private toBase64;
86
+ private signTrackingPayload;
87
+ private sendTrackingEnvelope;
55
88
  /**
56
89
  * Track event with retry logic (internal helper)
57
90
  */
@@ -93,19 +126,46 @@ export declare class Banner {
93
126
  private renderStartTime;
94
127
  private hasTrackedImpression;
95
128
  private isRendering;
96
- constructor(sovads: SovAds, containerId: string);
97
- render(consumerId?: string): Promise<void>;
129
+ private refreshTimer;
130
+ private lastAdId;
131
+ private retryCount;
132
+ private maxRetries;
133
+ private slotConfig;
134
+ constructor(sovads: SovAds, containerId: string, slotConfig?: SlotConfig);
135
+ render(consumerId?: string, forceRefresh?: boolean): Promise<void>;
136
+ private checkViewport;
137
+ private setupLazyLoadObserver;
138
+ private setupAutoRefresh;
139
+ destroy(): void;
98
140
  }
99
141
  export declare class Popup {
100
142
  private sovads;
101
143
  private currentAd;
102
144
  private popupElement;
103
145
  private isShowing;
146
+ private retryCount;
147
+ private maxRetries;
148
+ private storageKeyLastShown;
149
+ private storageKeySessionCount;
104
150
  constructor(sovads: SovAds);
151
+ private canShowByFrequencyCap;
152
+ private markShown;
105
153
  show(consumerId?: string, delay?: number): Promise<void>;
106
154
  private renderPopup;
107
155
  hide(): void;
108
156
  }
157
+ export declare class BottomBar {
158
+ private sovads;
159
+ private barElement;
160
+ private currentAd;
161
+ private isVisible;
162
+ private retryCount;
163
+ private maxRetries;
164
+ constructor(sovads: SovAds);
165
+ show(consumerId?: string): Promise<void>;
166
+ private renderBar;
167
+ hide(): void;
168
+ }
109
169
  export declare class Sidebar {
110
170
  private sovads;
111
171
  private containerId;
@@ -113,9 +173,17 @@ export declare class Sidebar {
113
173
  private renderStartTime;
114
174
  private hasTrackedImpression;
115
175
  private isRendering;
116
- constructor(sovads: SovAds, containerId: string);
117
- render(consumerId?: string): Promise<void>;
176
+ private refreshTimer;
177
+ private lastAdId;
178
+ private retryCount;
179
+ private maxRetries;
180
+ private slotConfig;
181
+ constructor(sovads: SovAds, containerId: string, slotConfig?: SlotConfig);
182
+ render(consumerId?: string, forceRefresh?: boolean): Promise<void>;
183
+ private checkViewport;
184
+ private setupLazyLoadObserver;
185
+ private setupAutoRefresh;
186
+ destroy(): void;
118
187
  }
119
- export { SovAds };
120
188
  export default SovAds;
121
189
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAC9B;AAiBD,cAAM,MAAM;IACV,SAAS,CAAC,MAAM,EAAE,YAAY,CAAA;IAC9B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,mBAAmB,CAAgB;gBAE/B,MAAM,GAAE,YAAiB;IAgBrC,OAAO,CAAC,mBAAmB;YAgBb,YAAY;IAiG1B;;;;OAIG;IACI,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAmF5G;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACI,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAUxC;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;YACW,cAAc;IA6BtB,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAyH9D;;OAEG;YACW,mBAAmB;IA6DjC;;;OAGG;YACW,UAAU;IA4DxB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG;IAIhD,YAAY,CAAC,WAAW,EAAE,MAAM;IAIhC,eAAe,CAAC,WAAW,EAAE,MAAM;IAO5B,WAAW,CAChB,IAAI,EAAE,YAAY,GAAG,OAAO,EAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAKlF;;OAEG;IACI,SAAS,IAAI,YAAY;IAIhC;;OAEG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IASnE;;OAEG;YACW,QAAQ;IA2BtB;;OAEG;IACI,OAAO,IAAI,IAAI;CAIvB;AAGD,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,oBAAoB,CAAiB;IAC7C,OAAO,CAAC,WAAW,CAAiB;gBAExB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKzC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM;CAyLjC;AAGD,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,SAAS,CAAiB;gBAEtB,MAAM,EAAE,MAAM;IAIpB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAa;IAyBpD,OAAO,CAAC,WAAW;IAkMnB,IAAI;CAaL;AAGD,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,oBAAoB,CAAiB;IAC7C,OAAO,CAAC,WAAW,CAAiB;gBAExB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKzC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM;CA8LjC;AAGD,OAAO,EAAE,MAAM,EAAE,CAAA;AAGjB,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}