@vkontakte/videoplayer-statistics 1.0.35 → 1.0.37
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/es2015.cjs.js +4 -4
- package/es2015.esm.js +4 -4
- package/es2018.cjs.js +4 -4
- package/es2018.esm.js +4 -4
- package/esnext.cjs.js +4 -4
- package/esnext.esm.js +4 -4
- package/evergreen.esm.js +4 -4
- package/index.d.ts +399 -396
- package/package.json +3 -3
package/index.d.ts
CHANGED
|
@@ -1,408 +1,411 @@
|
|
|
1
1
|
import { IPlayer } from '@vkontakte/videoplayer-core';
|
|
2
2
|
import { Kbps, IObservable, ISubscription, IError, Seconds, Milliseconds, Subscription } from '@vkontakte/videoplayer-shared';
|
|
3
3
|
|
|
4
|
-
declare enum ApiEnv {
|
|
5
|
-
PROD = "prod",
|
|
6
|
-
VK_ALIAS = "vk_alias",
|
|
7
|
-
VIDEOTEST = "videotest",
|
|
8
|
-
TEST = "test",
|
|
9
|
-
AUTO = "auto"
|
|
10
|
-
}
|
|
11
|
-
declare enum Quality {
|
|
12
|
-
Q144P = "mobile",
|
|
13
|
-
Q240P = "lowest",
|
|
14
|
-
Q360P = "low",
|
|
15
|
-
Q480P = "medium",
|
|
16
|
-
Q720P = "high",
|
|
17
|
-
Q1080P = "fullhd",
|
|
18
|
-
Q1440P = "quadhd",
|
|
19
|
-
Q2160P = "ultrahd",
|
|
20
|
-
UNKNOWN = "unknown"
|
|
21
|
-
}
|
|
22
|
-
declare enum ContentType {
|
|
23
|
-
MP4 = "mp4",
|
|
24
|
-
DASH = "dash",
|
|
25
|
-
DASH_SEP = "dash_sep",
|
|
26
|
-
ONDEMAND_DASH = "ondemand_dash",
|
|
27
|
-
HLS = "hls",
|
|
28
|
-
ONDEMAND_HLS = "ondemand_hls",
|
|
29
|
-
WEBM = "webm",
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
RTMP
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
4
|
+
declare enum ApiEnv {
|
|
5
|
+
PROD = "prod",
|
|
6
|
+
VK_ALIAS = "vk_alias",
|
|
7
|
+
VIDEOTEST = "videotest",
|
|
8
|
+
TEST = "test",
|
|
9
|
+
AUTO = "auto"
|
|
10
|
+
}
|
|
11
|
+
declare enum Quality {
|
|
12
|
+
Q144P = "mobile",
|
|
13
|
+
Q240P = "lowest",
|
|
14
|
+
Q360P = "low",
|
|
15
|
+
Q480P = "medium",
|
|
16
|
+
Q720P = "high",
|
|
17
|
+
Q1080P = "fullhd",
|
|
18
|
+
Q1440P = "quadhd",
|
|
19
|
+
Q2160P = "ultrahd",
|
|
20
|
+
UNKNOWN = "unknown"
|
|
21
|
+
}
|
|
22
|
+
declare enum ContentType {
|
|
23
|
+
MP4 = "mp4",
|
|
24
|
+
DASH = "dash",
|
|
25
|
+
DASH_SEP = "dash_sep",
|
|
26
|
+
ONDEMAND_DASH = "ondemand_dash",
|
|
27
|
+
HLS = "hls",
|
|
28
|
+
ONDEMAND_HLS = "ondemand_hls",
|
|
29
|
+
WEBM = "webm",
|
|
30
|
+
AV1 = "av1",
|
|
31
|
+
ONDEMAND_DASH_LIVE = "ondemand_dash_live",
|
|
32
|
+
ONDEMAND_HLS_LIVE = "ondemand_hls_live",
|
|
33
|
+
WEBRTC = "webrtc",
|
|
34
|
+
UNKNOWN = "unknown",
|
|
35
|
+
/** @deprecated сдк не поддерживает RTMP, не нужно его использовать */
|
|
36
|
+
RTMP = "rtmp"
|
|
37
|
+
}
|
|
38
|
+
declare enum StatType {
|
|
39
|
+
AUTO = "auto",
|
|
40
|
+
MANUAL = ""
|
|
41
|
+
}
|
|
42
|
+
declare enum ConnectionType {
|
|
43
|
+
HTTP1 = "http1",
|
|
44
|
+
HTTP2 = "http2",
|
|
45
|
+
HTTP3 = "http3"
|
|
46
|
+
}
|
|
47
|
+
declare enum Flag {
|
|
48
|
+
YES = 1,
|
|
49
|
+
NO = 0
|
|
50
|
+
}
|
|
51
|
+
declare enum Network {
|
|
52
|
+
EXCELLENT = "excellent",
|
|
53
|
+
GOOD = "good",
|
|
54
|
+
POOR = "poor"
|
|
55
|
+
}
|
|
56
|
+
declare enum Mode {
|
|
57
|
+
PIP = "pip",
|
|
58
|
+
FULLSCREEN = "fullscreen",
|
|
59
|
+
EXTERNAL = "external",
|
|
60
|
+
PREFETCH = "prefetch"
|
|
61
|
+
}
|
|
62
|
+
declare enum SeekAction {
|
|
63
|
+
SLIDER = "slider",
|
|
64
|
+
DOUBLE_TAP = "double_tap",
|
|
65
|
+
TIME_CODE = "time_code",
|
|
66
|
+
EPISODE = "episode",
|
|
67
|
+
REWIND = "rewind",
|
|
68
|
+
LIVE = "live",
|
|
69
|
+
UNKNOWN = "unknown"
|
|
69
70
|
}
|
|
70
71
|
|
|
71
|
-
interface ILogCustomData {
|
|
72
|
-
/**
|
|
73
|
-
* Сессия смотрения, уникальна для пользователя, контента, экземпляра плеера и одного просмотра
|
|
74
|
-
* См https://confluence.vk.team/display/VID/Video%20Session%20ID
|
|
75
|
-
*/
|
|
76
|
-
vsid: string;
|
|
77
|
-
vid: number;
|
|
78
|
-
ct?: ContentType;
|
|
79
|
-
place?: string;
|
|
80
|
-
quality?: Quality;
|
|
81
|
-
cdn_host?: string;
|
|
82
|
-
stat_type?: StatType;
|
|
83
|
-
param?: any;
|
|
84
|
-
vk_app_id?: string;
|
|
85
|
-
track_code?: string;
|
|
86
|
-
connection_type?: ConnectionType;
|
|
87
|
-
connection_reused?: Flag;
|
|
88
|
-
cached_data?: Flag;
|
|
89
|
-
live?: Flag;
|
|
90
|
-
muted?: Flag;
|
|
91
|
-
mode?: Mode;
|
|
92
|
-
subtitles?: string;
|
|
93
|
-
failover?: Flag;
|
|
94
|
-
download_speed?: Kbps;
|
|
95
|
-
manual_quality?: Flag;
|
|
96
|
-
ref_domain?: string;
|
|
97
|
-
vk_playlist_id?: string;
|
|
98
|
-
aid?: string;
|
|
72
|
+
interface ILogCustomData {
|
|
73
|
+
/**
|
|
74
|
+
* Сессия смотрения, уникальна для пользователя, контента, экземпляра плеера и одного просмотра
|
|
75
|
+
* См https://confluence.vk.team/display/VID/Video%20Session%20ID
|
|
76
|
+
*/
|
|
77
|
+
vsid: string;
|
|
78
|
+
vid: number;
|
|
79
|
+
ct?: ContentType;
|
|
80
|
+
place?: string;
|
|
81
|
+
quality?: Quality;
|
|
82
|
+
cdn_host?: string;
|
|
83
|
+
stat_type?: StatType;
|
|
84
|
+
param?: any;
|
|
85
|
+
vk_app_id?: string;
|
|
86
|
+
track_code?: string;
|
|
87
|
+
connection_type?: ConnectionType;
|
|
88
|
+
connection_reused?: Flag;
|
|
89
|
+
cached_data?: Flag;
|
|
90
|
+
live?: Flag;
|
|
91
|
+
muted?: Flag;
|
|
92
|
+
mode?: Mode;
|
|
93
|
+
subtitles?: string;
|
|
94
|
+
failover?: Flag;
|
|
95
|
+
download_speed?: Kbps;
|
|
96
|
+
manual_quality?: Flag;
|
|
97
|
+
ref_domain?: string;
|
|
98
|
+
vk_playlist_id?: string;
|
|
99
|
+
aid?: string;
|
|
99
100
|
}
|
|
100
101
|
|
|
101
|
-
interface IUIEvents {
|
|
102
|
-
actionRewind$: IObservable<void>;
|
|
103
|
-
actionSeek$: IObservable<SeekAction>;
|
|
104
|
-
inPiP$: IObservable<boolean>;
|
|
105
|
-
inFullscreen$: IObservable<boolean>;
|
|
106
|
-
actionSetSubtitle$: IObservable<string>;
|
|
107
|
-
}
|
|
108
|
-
interface IAdsEvents {
|
|
109
|
-
slotRequested$: IObservable<void>;
|
|
110
|
-
started$: IObservable<string>;
|
|
111
|
-
paused$: IObservable<void>;
|
|
112
|
-
resumed$: IObservable<void>;
|
|
113
|
-
ended$: IObservable<void>;
|
|
114
|
-
skipped$: IObservable<void>;
|
|
115
|
-
clicked$: IObservable<void>;
|
|
102
|
+
interface IUIEvents {
|
|
103
|
+
actionRewind$: IObservable<void>;
|
|
104
|
+
actionSeek$: IObservable<SeekAction>;
|
|
105
|
+
inPiP$: IObservable<boolean>;
|
|
106
|
+
inFullscreen$: IObservable<boolean>;
|
|
107
|
+
actionSetSubtitle$: IObservable<string>;
|
|
108
|
+
}
|
|
109
|
+
interface IAdsEvents {
|
|
110
|
+
slotRequested$: IObservable<void>;
|
|
111
|
+
started$: IObservable<string>;
|
|
112
|
+
paused$: IObservable<void>;
|
|
113
|
+
resumed$: IObservable<void>;
|
|
114
|
+
ended$: IObservable<void>;
|
|
115
|
+
skipped$: IObservable<void>;
|
|
116
|
+
clicked$: IObservable<void>;
|
|
116
117
|
}
|
|
117
118
|
|
|
118
|
-
interface IOneStat {
|
|
119
|
-
/**
|
|
120
|
-
* Лучше авторизоваться сразу, чтобы избежать ситуации:
|
|
121
|
-
* 1. Накапливаем запросы в очереди через debounce send
|
|
122
|
-
* 2. Пользователь закрывает приложение
|
|
123
|
-
* 3. Запрос пытается уйти через sendBeacon и падает без авторизации
|
|
124
|
-
*/
|
|
125
|
-
authorize(authToken?: string): Promise<unknown>;
|
|
126
|
-
/**
|
|
127
|
-
* Обновляет общие параметры событий
|
|
128
|
-
*/
|
|
129
|
-
updateContext(context: Partial<IStatContext>): void;
|
|
130
|
-
attachTo(player: IPlayer): ISubscription;
|
|
131
|
-
attachToUi(uiEvents: IUIEvents): ISubscription;
|
|
132
|
-
attachToAds(adsEvents: IAdsEvents): ISubscription;
|
|
133
|
-
/**
|
|
134
|
-
* Ставит отправку событий на паузу. Они будут накапливаться до вызова `resume()`
|
|
135
|
-
*/
|
|
136
|
-
pause(): void;
|
|
137
|
-
/**
|
|
138
|
-
* Снимает паузу отправки событий
|
|
139
|
-
*/
|
|
140
|
-
resume(): void;
|
|
141
|
-
/**
|
|
142
|
-
* Деструктор класса
|
|
143
|
-
*/
|
|
144
|
-
destroy(): void;
|
|
145
|
-
/**
|
|
146
|
-
* Сбрасывает сессию смотрения
|
|
147
|
-
*/
|
|
148
|
-
resetViewSession(): void;
|
|
149
|
-
/**
|
|
150
|
-
* @deprecated
|
|
151
|
-
* Отключает отправку полей событий
|
|
152
|
-
*/
|
|
153
|
-
setFieldBlacklist(fields: (keyof ILogCustomData)[]): void;
|
|
154
|
-
/**
|
|
155
|
-
* @deprecated
|
|
156
|
-
*/
|
|
157
|
-
logInited(): void;
|
|
158
|
-
/**
|
|
159
|
-
* @deprecated публично нужно использовать attachTo
|
|
160
|
-
* Плеер готов начать воспроизведение
|
|
161
|
-
*/
|
|
162
|
-
logReady(payload: IReadyPayload): void;
|
|
163
|
-
/**
|
|
164
|
-
* @deprecated публично нужно использовать attachTo
|
|
165
|
-
* Первый старт видео. Отправляется 1 раз, когда фактически началось воспроизведение ролика, а также после зацикливания, но не после паузы.
|
|
166
|
-
*
|
|
167
|
-
* В документации API может называться `play`
|
|
168
|
-
*/
|
|
169
|
-
logStarted(payload: IActionPlayPayload): void;
|
|
170
|
-
/**
|
|
171
|
-
* @deprecated публично нужно использовать attachTo
|
|
172
|
-
* Возобновление после паузы
|
|
173
|
-
*
|
|
174
|
-
* В документации API может называться `play_toggle`
|
|
175
|
-
*/
|
|
176
|
-
logPlay(): void;
|
|
177
|
-
/**
|
|
178
|
-
* @deprecated публично нужно использовать attachTo
|
|
179
|
-
* Постановка видео на паузу
|
|
180
|
-
*/
|
|
181
|
-
logPause(payload: IPausePayload): void;
|
|
182
|
-
/**
|
|
183
|
-
* @deprecated публично нужно использовать attachTo
|
|
184
|
-
* перемотка видео
|
|
185
|
-
*/
|
|
186
|
-
logSeek(payload: ISeekPayload): void;
|
|
187
|
-
/**
|
|
188
|
-
* @deprecated публично нужно использовать attachTo
|
|
189
|
-
* Промежутки видео, которые были просмотрены пользователем.
|
|
190
|
-
* Время указывается в секундах от начала ролика (т.е. является позицией).
|
|
191
|
-
*/
|
|
192
|
-
logWatchCoverageRecord(payload: IWatchCoveragePayload): void;
|
|
193
|
-
/**
|
|
194
|
-
* @deprecated публично нужно использовать attachTo
|
|
195
|
-
* Промежутки видео, которые были просмотрены пользователем.
|
|
196
|
-
* Время указывается в виде UTC timestamp'ов.
|
|
197
|
-
*/
|
|
198
|
-
logWatchCoverageLive(payload: IWatchCoveragePayload): void;
|
|
199
|
-
/**
|
|
200
|
-
* @deprecated публично нужно использовать attachTo
|
|
201
|
-
* Буфер пуст и пользователь видит залипший кадр.
|
|
202
|
-
*/
|
|
203
|
-
logEmptyBuffer(payload: IEmptyBufferPayload): void;
|
|
204
|
-
/**
|
|
205
|
-
* @deprecated публично нужно использовать attachTo
|
|
206
|
-
* Получен первый кусок данных контента от сервера раздачи видео
|
|
207
|
-
*/
|
|
208
|
-
logFirstBytes(payload: IFirstBytesPayload): void;
|
|
209
|
-
/**
|
|
210
|
-
* @deprecated публично нужно использовать attachTo
|
|
211
|
-
* Пользователь увидел первый кадр
|
|
212
|
-
*/
|
|
213
|
-
logFirstFrame(payload: IFirstFramePayload): void;
|
|
214
|
-
/**
|
|
215
|
-
* @deprecated публично нужно использовать attachTo
|
|
216
|
-
* @param payload
|
|
217
|
-
*/
|
|
218
|
-
logDownloadSpeed(payload: IDownloadSpeedPayload): void;
|
|
219
|
-
/**
|
|
220
|
-
* произошла ошибка
|
|
221
|
-
*/
|
|
222
|
-
logError(payload: IErrorPayload): void;
|
|
223
|
-
/**
|
|
224
|
-
* @deprecated публично нужно использовать attachToAds
|
|
225
|
-
*/
|
|
226
|
-
logAdSlotRequest(): void;
|
|
227
|
-
/**
|
|
228
|
-
* @deprecated публично нужно использовать attachToAds
|
|
229
|
-
* @param sectionType
|
|
230
|
-
*/
|
|
231
|
-
logAdStarted(sectionType: string): void;
|
|
232
|
-
/**
|
|
233
|
-
* @deprecated публично нужно использовать attachToAds
|
|
234
|
-
*/
|
|
235
|
-
logAdPaused(): void;
|
|
236
|
-
/**
|
|
237
|
-
* @deprecated публично нужно использовать attachToAds
|
|
238
|
-
*/
|
|
239
|
-
logAdResumed(): void;
|
|
240
|
-
/**
|
|
241
|
-
* @deprecated публично нужно использовать attachToAds
|
|
242
|
-
*/
|
|
243
|
-
logAdEnded(): void;
|
|
244
|
-
/**
|
|
245
|
-
* @deprecated публично нужно использовать attachToAds
|
|
246
|
-
*/
|
|
247
|
-
logAdSkipped(): void;
|
|
248
|
-
/**
|
|
249
|
-
* @deprecated публично нужно использовать attachToAds
|
|
250
|
-
*/
|
|
251
|
-
logAdClicked(): void;
|
|
252
|
-
experimental: {
|
|
253
|
-
error$: IObservable<IError>;
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
interface IActionPlayPayload {
|
|
257
|
-
/**
|
|
258
|
-
* время в секундах от начала ролика
|
|
259
|
-
*/
|
|
260
|
-
position: Seconds;
|
|
261
|
-
}
|
|
262
|
-
interface IPausePayload {
|
|
263
|
-
/**
|
|
264
|
-
* время в секундах: сколько просмотрено от начала ролика
|
|
265
|
-
*/
|
|
266
|
-
position: Seconds;
|
|
267
|
-
}
|
|
268
|
-
interface ISeekPayload {
|
|
269
|
-
/**
|
|
270
|
-
* Действие пользователя приведшее к перемотке
|
|
271
|
-
*/
|
|
272
|
-
action: SeekAction;
|
|
273
|
-
time: Seconds;
|
|
274
|
-
}
|
|
275
|
-
interface IReadyPayload {
|
|
276
|
-
/**
|
|
277
|
-
* время в миллисекундах с события inited
|
|
278
|
-
*/
|
|
279
|
-
time: Milliseconds;
|
|
280
|
-
}
|
|
281
|
-
interface IFirstBytesPayload {
|
|
282
|
-
/**
|
|
283
|
-
* время в миллисекундах с события inited
|
|
284
|
-
*/
|
|
285
|
-
time: Milliseconds;
|
|
286
|
-
}
|
|
287
|
-
interface IFirstFramePayload {
|
|
288
|
-
/**
|
|
289
|
-
* время в миллисекундах с события inited
|
|
290
|
-
*/
|
|
291
|
-
time: Milliseconds;
|
|
292
|
-
}
|
|
293
|
-
interface IEmptyBufferPayload {
|
|
294
|
-
/**
|
|
295
|
-
* время в миллисекундах которое пользователь видел застывшую картинку
|
|
296
|
-
*/
|
|
297
|
-
duration: Milliseconds;
|
|
298
|
-
}
|
|
299
|
-
interface IDownloadSpeedPayload {
|
|
300
|
-
/**
|
|
301
|
-
* Скорость в килобайтах (!) в секунду
|
|
302
|
-
*/
|
|
303
|
-
speed: number;
|
|
304
|
-
}
|
|
305
|
-
interface IErrorPayload {
|
|
306
|
-
/**
|
|
307
|
-
* строка из символов(без пробелов): тип ошибки
|
|
308
|
-
*/
|
|
309
|
-
errorType: string;
|
|
310
|
-
fatal: boolean;
|
|
311
|
-
}
|
|
312
|
-
interface IStatContext {
|
|
313
|
-
mobile: boolean;
|
|
314
|
-
movieId: number;
|
|
315
|
-
vkAppId?: string;
|
|
316
|
-
clip?: boolean;
|
|
317
|
-
liveEdge?: boolean;
|
|
318
|
-
autoplay: boolean;
|
|
319
|
-
audible?: boolean;
|
|
320
|
-
quality?: Quality;
|
|
321
|
-
autoQuality?: boolean;
|
|
322
|
-
contentType?: ContentType;
|
|
323
|
-
albumId?: string;
|
|
324
|
-
vkPlaylistId?: string;
|
|
325
|
-
trackCode?: string;
|
|
326
|
-
place?: string;
|
|
327
|
-
cdnHostname?: string;
|
|
328
|
-
downloadSpeed?: Kbps;
|
|
329
|
-
connectionType?: ConnectionType;
|
|
330
|
-
connectionReused?: boolean;
|
|
331
|
-
firstConnectionType?: ConnectionType;
|
|
332
|
-
firstConnectionReused?: boolean;
|
|
333
|
-
network?: Network;
|
|
334
|
-
cached?: boolean;
|
|
335
|
-
mode?: Mode;
|
|
336
|
-
subtitles?: string;
|
|
337
|
-
failover?: boolean;
|
|
338
|
-
}
|
|
339
|
-
interface IConfig {
|
|
340
|
-
requestRetryCount: number;
|
|
341
|
-
}
|
|
342
|
-
interface IConstructorParams {
|
|
343
|
-
apiEnv: ApiEnv;
|
|
344
|
-
config?: Partial<IConfig>;
|
|
345
|
-
userSalt?: string;
|
|
346
|
-
refreshAuthToken?: () => Promise<string | undefined>;
|
|
347
|
-
}
|
|
348
|
-
interface IWatchCoveragePayload {
|
|
349
|
-
start: number;
|
|
350
|
-
end: number;
|
|
351
|
-
}
|
|
352
|
-
declare class OneStat implements IOneStat {
|
|
353
|
-
private api;
|
|
354
|
-
private logger;
|
|
355
|
-
private config;
|
|
356
|
-
private subscription;
|
|
357
|
-
private
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
private
|
|
363
|
-
private
|
|
364
|
-
private
|
|
365
|
-
private
|
|
366
|
-
private
|
|
367
|
-
private
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
private
|
|
401
|
-
private
|
|
402
|
-
private
|
|
403
|
-
private
|
|
404
|
-
private
|
|
405
|
-
private
|
|
119
|
+
interface IOneStat {
|
|
120
|
+
/**
|
|
121
|
+
* Лучше авторизоваться сразу, чтобы избежать ситуации:
|
|
122
|
+
* 1. Накапливаем запросы в очереди через debounce send
|
|
123
|
+
* 2. Пользователь закрывает приложение
|
|
124
|
+
* 3. Запрос пытается уйти через sendBeacon и падает без авторизации
|
|
125
|
+
*/
|
|
126
|
+
authorize(authToken?: string): Promise<unknown>;
|
|
127
|
+
/**
|
|
128
|
+
* Обновляет общие параметры событий
|
|
129
|
+
*/
|
|
130
|
+
updateContext(context: Partial<IStatContext>): void;
|
|
131
|
+
attachTo(player: IPlayer): ISubscription;
|
|
132
|
+
attachToUi(uiEvents: IUIEvents): ISubscription;
|
|
133
|
+
attachToAds(adsEvents: IAdsEvents): ISubscription;
|
|
134
|
+
/**
|
|
135
|
+
* Ставит отправку событий на паузу. Они будут накапливаться до вызова `resume()`
|
|
136
|
+
*/
|
|
137
|
+
pause(): void;
|
|
138
|
+
/**
|
|
139
|
+
* Снимает паузу отправки событий
|
|
140
|
+
*/
|
|
141
|
+
resume(): void;
|
|
142
|
+
/**
|
|
143
|
+
* Деструктор класса
|
|
144
|
+
*/
|
|
145
|
+
destroy(): void;
|
|
146
|
+
/**
|
|
147
|
+
* Сбрасывает сессию смотрения
|
|
148
|
+
*/
|
|
149
|
+
resetViewSession(): void;
|
|
150
|
+
/**
|
|
151
|
+
* @deprecated
|
|
152
|
+
* Отключает отправку полей событий
|
|
153
|
+
*/
|
|
154
|
+
setFieldBlacklist(fields: (keyof ILogCustomData)[]): void;
|
|
155
|
+
/**
|
|
156
|
+
* @deprecated
|
|
157
|
+
*/
|
|
158
|
+
logInited(): void;
|
|
159
|
+
/**
|
|
160
|
+
* @deprecated публично нужно использовать attachTo
|
|
161
|
+
* Плеер готов начать воспроизведение
|
|
162
|
+
*/
|
|
163
|
+
logReady(payload: IReadyPayload): void;
|
|
164
|
+
/**
|
|
165
|
+
* @deprecated публично нужно использовать attachTo
|
|
166
|
+
* Первый старт видео. Отправляется 1 раз, когда фактически началось воспроизведение ролика, а также после зацикливания, но не после паузы.
|
|
167
|
+
*
|
|
168
|
+
* В документации API может называться `play`
|
|
169
|
+
*/
|
|
170
|
+
logStarted(payload: IActionPlayPayload): void;
|
|
171
|
+
/**
|
|
172
|
+
* @deprecated публично нужно использовать attachTo
|
|
173
|
+
* Возобновление после паузы
|
|
174
|
+
*
|
|
175
|
+
* В документации API может называться `play_toggle`
|
|
176
|
+
*/
|
|
177
|
+
logPlay(): void;
|
|
178
|
+
/**
|
|
179
|
+
* @deprecated публично нужно использовать attachTo
|
|
180
|
+
* Постановка видео на паузу
|
|
181
|
+
*/
|
|
182
|
+
logPause(payload: IPausePayload): void;
|
|
183
|
+
/**
|
|
184
|
+
* @deprecated публично нужно использовать attachTo
|
|
185
|
+
* перемотка видео
|
|
186
|
+
*/
|
|
187
|
+
logSeek(payload: ISeekPayload): void;
|
|
188
|
+
/**
|
|
189
|
+
* @deprecated публично нужно использовать attachTo
|
|
190
|
+
* Промежутки видео, которые были просмотрены пользователем.
|
|
191
|
+
* Время указывается в секундах от начала ролика (т.е. является позицией).
|
|
192
|
+
*/
|
|
193
|
+
logWatchCoverageRecord(payload: IWatchCoveragePayload): void;
|
|
194
|
+
/**
|
|
195
|
+
* @deprecated публично нужно использовать attachTo
|
|
196
|
+
* Промежутки видео, которые были просмотрены пользователем.
|
|
197
|
+
* Время указывается в виде UTC timestamp'ов.
|
|
198
|
+
*/
|
|
199
|
+
logWatchCoverageLive(payload: IWatchCoveragePayload): void;
|
|
200
|
+
/**
|
|
201
|
+
* @deprecated публично нужно использовать attachTo
|
|
202
|
+
* Буфер пуст и пользователь видит залипший кадр.
|
|
203
|
+
*/
|
|
204
|
+
logEmptyBuffer(payload: IEmptyBufferPayload): void;
|
|
205
|
+
/**
|
|
206
|
+
* @deprecated публично нужно использовать attachTo
|
|
207
|
+
* Получен первый кусок данных контента от сервера раздачи видео
|
|
208
|
+
*/
|
|
209
|
+
logFirstBytes(payload: IFirstBytesPayload): void;
|
|
210
|
+
/**
|
|
211
|
+
* @deprecated публично нужно использовать attachTo
|
|
212
|
+
* Пользователь увидел первый кадр
|
|
213
|
+
*/
|
|
214
|
+
logFirstFrame(payload: IFirstFramePayload): void;
|
|
215
|
+
/**
|
|
216
|
+
* @deprecated публично нужно использовать attachTo
|
|
217
|
+
* @param payload
|
|
218
|
+
*/
|
|
219
|
+
logDownloadSpeed(payload: IDownloadSpeedPayload): void;
|
|
220
|
+
/**
|
|
221
|
+
* произошла ошибка
|
|
222
|
+
*/
|
|
223
|
+
logError(payload: IErrorPayload): void;
|
|
224
|
+
/**
|
|
225
|
+
* @deprecated публично нужно использовать attachToAds
|
|
226
|
+
*/
|
|
227
|
+
logAdSlotRequest(): void;
|
|
228
|
+
/**
|
|
229
|
+
* @deprecated публично нужно использовать attachToAds
|
|
230
|
+
* @param sectionType
|
|
231
|
+
*/
|
|
232
|
+
logAdStarted(sectionType: string): void;
|
|
233
|
+
/**
|
|
234
|
+
* @deprecated публично нужно использовать attachToAds
|
|
235
|
+
*/
|
|
236
|
+
logAdPaused(): void;
|
|
237
|
+
/**
|
|
238
|
+
* @deprecated публично нужно использовать attachToAds
|
|
239
|
+
*/
|
|
240
|
+
logAdResumed(): void;
|
|
241
|
+
/**
|
|
242
|
+
* @deprecated публично нужно использовать attachToAds
|
|
243
|
+
*/
|
|
244
|
+
logAdEnded(): void;
|
|
245
|
+
/**
|
|
246
|
+
* @deprecated публично нужно использовать attachToAds
|
|
247
|
+
*/
|
|
248
|
+
logAdSkipped(): void;
|
|
249
|
+
/**
|
|
250
|
+
* @deprecated публично нужно использовать attachToAds
|
|
251
|
+
*/
|
|
252
|
+
logAdClicked(): void;
|
|
253
|
+
experimental: {
|
|
254
|
+
error$: IObservable<IError>;
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
interface IActionPlayPayload {
|
|
258
|
+
/**
|
|
259
|
+
* время в секундах от начала ролика
|
|
260
|
+
*/
|
|
261
|
+
position: Seconds;
|
|
262
|
+
}
|
|
263
|
+
interface IPausePayload {
|
|
264
|
+
/**
|
|
265
|
+
* время в секундах: сколько просмотрено от начала ролика
|
|
266
|
+
*/
|
|
267
|
+
position: Seconds;
|
|
268
|
+
}
|
|
269
|
+
interface ISeekPayload {
|
|
270
|
+
/**
|
|
271
|
+
* Действие пользователя приведшее к перемотке
|
|
272
|
+
*/
|
|
273
|
+
action: SeekAction;
|
|
274
|
+
time: Seconds;
|
|
275
|
+
}
|
|
276
|
+
interface IReadyPayload {
|
|
277
|
+
/**
|
|
278
|
+
* время в миллисекундах с события inited
|
|
279
|
+
*/
|
|
280
|
+
time: Milliseconds;
|
|
281
|
+
}
|
|
282
|
+
interface IFirstBytesPayload {
|
|
283
|
+
/**
|
|
284
|
+
* время в миллисекундах с события inited
|
|
285
|
+
*/
|
|
286
|
+
time: Milliseconds;
|
|
287
|
+
}
|
|
288
|
+
interface IFirstFramePayload {
|
|
289
|
+
/**
|
|
290
|
+
* время в миллисекундах с события inited
|
|
291
|
+
*/
|
|
292
|
+
time: Milliseconds;
|
|
293
|
+
}
|
|
294
|
+
interface IEmptyBufferPayload {
|
|
295
|
+
/**
|
|
296
|
+
* время в миллисекундах которое пользователь видел застывшую картинку
|
|
297
|
+
*/
|
|
298
|
+
duration: Milliseconds;
|
|
299
|
+
}
|
|
300
|
+
interface IDownloadSpeedPayload {
|
|
301
|
+
/**
|
|
302
|
+
* Скорость в килобайтах (!) в секунду
|
|
303
|
+
*/
|
|
304
|
+
speed: number;
|
|
305
|
+
}
|
|
306
|
+
interface IErrorPayload {
|
|
307
|
+
/**
|
|
308
|
+
* строка из символов(без пробелов): тип ошибки
|
|
309
|
+
*/
|
|
310
|
+
errorType: string;
|
|
311
|
+
fatal: boolean;
|
|
312
|
+
}
|
|
313
|
+
interface IStatContext {
|
|
314
|
+
mobile: boolean;
|
|
315
|
+
movieId: number;
|
|
316
|
+
vkAppId?: string;
|
|
317
|
+
clip?: boolean;
|
|
318
|
+
liveEdge?: boolean;
|
|
319
|
+
autoplay: boolean;
|
|
320
|
+
audible?: boolean;
|
|
321
|
+
quality?: Quality;
|
|
322
|
+
autoQuality?: boolean;
|
|
323
|
+
contentType?: ContentType;
|
|
324
|
+
albumId?: string;
|
|
325
|
+
vkPlaylistId?: string;
|
|
326
|
+
trackCode?: string;
|
|
327
|
+
place?: string;
|
|
328
|
+
cdnHostname?: string;
|
|
329
|
+
downloadSpeed?: Kbps;
|
|
330
|
+
connectionType?: ConnectionType;
|
|
331
|
+
connectionReused?: boolean;
|
|
332
|
+
firstConnectionType?: ConnectionType;
|
|
333
|
+
firstConnectionReused?: boolean;
|
|
334
|
+
network?: Network;
|
|
335
|
+
cached?: boolean;
|
|
336
|
+
mode?: Mode;
|
|
337
|
+
subtitles?: string;
|
|
338
|
+
failover?: boolean;
|
|
339
|
+
}
|
|
340
|
+
interface IConfig {
|
|
341
|
+
requestRetryCount: number;
|
|
342
|
+
}
|
|
343
|
+
interface IConstructorParams {
|
|
344
|
+
apiEnv: ApiEnv;
|
|
345
|
+
config?: Partial<IConfig>;
|
|
346
|
+
userSalt?: string;
|
|
347
|
+
refreshAuthToken?: () => Promise<string | undefined>;
|
|
348
|
+
}
|
|
349
|
+
interface IWatchCoveragePayload {
|
|
350
|
+
start: number;
|
|
351
|
+
end: number;
|
|
352
|
+
}
|
|
353
|
+
declare class OneStat implements IOneStat {
|
|
354
|
+
private api;
|
|
355
|
+
private logger;
|
|
356
|
+
private config;
|
|
357
|
+
private subscription;
|
|
358
|
+
private beforeunloadSubscription;
|
|
359
|
+
private timeSynchronisation;
|
|
360
|
+
experimental: {
|
|
361
|
+
error$: IObservable<IError>;
|
|
362
|
+
};
|
|
363
|
+
private statContext;
|
|
364
|
+
private vsid;
|
|
365
|
+
private isEmbed;
|
|
366
|
+
private embedParent;
|
|
367
|
+
private uiEvents;
|
|
368
|
+
private player;
|
|
369
|
+
private seekAction$;
|
|
370
|
+
constructor(statContext: IStatContext, params: IConstructorParams);
|
|
371
|
+
updateContext(newContext: Partial<IStatContext>): void;
|
|
372
|
+
attachTo(player: IPlayer): ISubscription;
|
|
373
|
+
attachToUi(events: IUIEvents): Subscription;
|
|
374
|
+
attachToAds(adsEvents: IAdsEvents): ISubscription;
|
|
375
|
+
authorize(authToken?: string): Promise<unknown>;
|
|
376
|
+
pause(): void;
|
|
377
|
+
resume(): void;
|
|
378
|
+
destroy(): void;
|
|
379
|
+
resetViewSession(): void;
|
|
380
|
+
setFieldBlacklist(): void;
|
|
381
|
+
logInited(): void;
|
|
382
|
+
logReady(payload: IReadyPayload): void;
|
|
383
|
+
logStarted(...args: Parameters<typeof this$1.logActionPlay>): void;
|
|
384
|
+
logPlay(): void;
|
|
385
|
+
logPause(payload: IPausePayload): void;
|
|
386
|
+
logSeek(payload: ISeekPayload): void;
|
|
387
|
+
logFirstBytes(payload: IFirstBytesPayload): void;
|
|
388
|
+
logFirstFrame(payload: IFirstFramePayload): void;
|
|
389
|
+
logError(payload: IErrorPayload): void;
|
|
390
|
+
logWatchCoverageRecord(payload: IWatchCoveragePayload): void;
|
|
391
|
+
logWatchCoverageLive(payload: IWatchCoveragePayload): void;
|
|
392
|
+
logEmptyBuffer(payload: IEmptyBufferPayload): void;
|
|
393
|
+
logDownloadSpeed(): void;
|
|
394
|
+
logAdSlotRequest(): void;
|
|
395
|
+
logAdStarted(sectionType: string): void;
|
|
396
|
+
logAdPaused(): void;
|
|
397
|
+
logAdResumed(): void;
|
|
398
|
+
logAdEnded(): void;
|
|
399
|
+
logAdSkipped(): void;
|
|
400
|
+
logAdClicked(): void;
|
|
401
|
+
private subscribe;
|
|
402
|
+
private resubscribeBeforeunload;
|
|
403
|
+
private logPlayerReady;
|
|
404
|
+
private logActionPlay;
|
|
405
|
+
private logCloseAtEmptyBuffer;
|
|
406
|
+
private logActionStop;
|
|
407
|
+
private log;
|
|
408
|
+
private createLogItem;
|
|
406
409
|
}
|
|
407
410
|
|
|
408
411
|
declare const VERSION: string;
|