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 +15 -0
- package/dist/index.d.ts +74 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +882 -138
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
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(
|
|
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
|
-
|
|
97
|
-
|
|
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
|
-
|
|
117
|
-
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|