glitch-javascript-sdk 1.8.4 → 1.8.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.
@@ -0,0 +1,7 @@
1
+ import Route from "./interface";
2
+ declare class FingerprintingRoute {
3
+ static routes: {
4
+ [key: string]: Route;
5
+ };
6
+ }
7
+ export default FingerprintingRoute;
package/dist/index.d.ts CHANGED
@@ -2270,6 +2270,136 @@ declare class Events {
2270
2270
  static getStreamViewCounts<T>(event_id: string, params?: Record<string, any>): AxiosPromise<Response<T>>;
2271
2271
  }
2272
2272
 
2273
+ declare class Fingerprinting {
2274
+ /**
2275
+ * List identified user fingerprints with filtering options
2276
+ *
2277
+ * @param params Filtering options:
2278
+ * - title_id?: string - Filter by title ID
2279
+ * - device_id?: string - Filter by device ID
2280
+ * - user_install_id?: string - Filter by user install ID
2281
+ * - browser_fingerprint?: string - Filter by browser fingerprint hash
2282
+ * - device_fingerprint?: string - Filter by device fingerprint hash
2283
+ * - is_bot?: boolean - Filter by bot status
2284
+ * - start_date?: string - Start date (YYYY-MM-DD)
2285
+ * - end_date?: string - End date (YYYY-MM-DD)
2286
+ * - sort?: 'first_seen_at'|'last_seen_at'|'match_confidence' - Sort field
2287
+ * - order?: 'asc'|'desc' - Sort order
2288
+ * - per_page?: number - Items per page (max 100)
2289
+ * @returns Promise with paginated fingerprints data
2290
+ */
2291
+ static listFingerprints<T>(params?: Record<string, any>): AxiosPromise<Response<T>>;
2292
+ /**
2293
+ * Get cross-platform user journey reports
2294
+ *
2295
+ * @param params Report options:
2296
+ * - title_id: string - Required title ID
2297
+ * - fingerprint_id?: string - Specific fingerprint ID to analyze
2298
+ * - start_date?: string - Start date (YYYY-MM-DD)
2299
+ * - end_date?: string - End date (YYYY-MM-DD)
2300
+ * - platform?: 'web'|'ios'|'android'|'steam'|'console' - Filter by platform
2301
+ * - event_type?: string - Filter by event type
2302
+ * - group_by?: 'day'|'week'|'month'|'year' - Grouping period
2303
+ * - include_paths?: boolean - Include journey paths in response
2304
+ * @returns Promise with user journey report data
2305
+ */
2306
+ static userJourneyReport<T>(params: Record<string, any>): AxiosPromise<Response<T>>;
2307
+ /**
2308
+ * Get cross-platform attribution reports
2309
+ *
2310
+ * @param params Report options:
2311
+ * - title_id: string - Required title ID
2312
+ * - start_date?: string - Start date (YYYY-MM-DD)
2313
+ * - end_date?: string - End date (YYYY-MM-DD)
2314
+ * - conversion_event?: 'game_install'|'game_purchase'|'web_event' - Conversion event to analyze
2315
+ * - attribution_model?: 'first_touch'|'last_touch'|'linear'|'time_decay'|'position_based' - Attribution model
2316
+ * @returns Promise with attribution report data
2317
+ */
2318
+ static attributionReport<T>(params: Record<string, any>): AxiosPromise<Response<T>>;
2319
+ /**
2320
+ * Get cross-device identity clusters
2321
+ *
2322
+ * @param params Report options:
2323
+ * - title_id: string - Required title ID
2324
+ * - start_date?: string - Start date (YYYY-MM-DD)
2325
+ * - end_date?: string - End date (YYYY-MM-DD)
2326
+ * - min_confidence?: number - Minimum match confidence score (0-100)
2327
+ * @returns Promise with device cluster report data
2328
+ */
2329
+ static deviceClusterReport<T>(params: Record<string, any>): AxiosPromise<Response<T>>;
2330
+ /**
2331
+ * Get combined identity clusters and user journey reports
2332
+ *
2333
+ * @param params Report options:
2334
+ * - title_id: string - Required title ID
2335
+ * - start_date?: string - Start date (YYYY-MM-DD)
2336
+ * - end_date?: string - End date (YYYY-MM-DD)
2337
+ * - min_confidence?: number - Minimum confidence score to include (0-100)
2338
+ * - platform?: string - Filter by platform
2339
+ * - include_journeys?: boolean - Include detailed journeys
2340
+ * @returns Promise with identity cluster report data
2341
+ */
2342
+ static identityClusterReport<T>(params: Record<string, any>): AxiosPromise<Response<T>>;
2343
+ /**
2344
+ * Get combined attribution paths and conversion funnels
2345
+ *
2346
+ * @param params Report options:
2347
+ * - title_id: string - Required title ID
2348
+ * - start_date?: string - Start date (YYYY-MM-DD)
2349
+ * - end_date?: string - End date (YYYY-MM-DD)
2350
+ * - conversion_event?: string - Conversion event type
2351
+ * - attribution_model?: string - Attribution model
2352
+ * - funnel_steps?: string - Comma-separated funnel steps
2353
+ * @returns Promise with attribution and funnel report data
2354
+ */
2355
+ static attributionFunnelReport<T>(params: Record<string, any>): AxiosPromise<Response<T>>;
2356
+ /**
2357
+ * Get device and environment breakdown reports
2358
+ *
2359
+ * @param params Report options:
2360
+ * - title_id: string - Required title ID
2361
+ * - start_date?: string - Start date (YYYY-MM-DD)
2362
+ * - end_date?: string - End date (YYYY-MM-DD)
2363
+ * - platform?: string - Filter by platform
2364
+ * - group_by?: 'device_type'|'os'|'browser'|'country_code' - Grouping field
2365
+ * @returns Promise with device and environment report data
2366
+ */
2367
+ static deviceEnvironmentReport<T>(params: Record<string, any>): AxiosPromise<Response<T>>;
2368
+ /**
2369
+ * Get unique vs returning user metrics
2370
+ *
2371
+ * @param params Report options:
2372
+ * - title_id: string - Required title ID
2373
+ * - start_date?: string - Start date (YYYY-MM-DD)
2374
+ * - end_date?: string - End date (YYYY-MM-DD)
2375
+ * - retention_period?: number - Days to consider for retention
2376
+ * @returns Promise with retention metrics data
2377
+ */
2378
+ static uniqueReturningReport<T>(params: Record<string, any>): AxiosPromise<Response<T>>;
2379
+ /**
2380
+ * Get fraud and bot detection metrics
2381
+ *
2382
+ * @param params Report options:
2383
+ * - title_id: string - Required title ID
2384
+ * - start_date?: string - Start date (YYYY-MM-DD)
2385
+ * - end_date?: string - End date (YYYY-MM-DD)
2386
+ * - min_confidence?: number - Minimum confidence score to flag (0-100)
2387
+ * @returns Promise with fraud detection data
2388
+ */
2389
+ static fraudDetectionReport<T>(params: Record<string, any>): AxiosPromise<Response<T>>;
2390
+ /**
2391
+ * Get geolocation distribution of users
2392
+ *
2393
+ * @param params Report options:
2394
+ * - title_id: string - Required title ID
2395
+ * - start_date?: string - Start date (YYYY-MM-DD)
2396
+ * - end_date?: string - End date (YYYY-MM-DD)
2397
+ * - group_by?: 'country'|'region'|'city' - Grouping level
2398
+ * @returns Promise with geolocation report data
2399
+ */
2400
+ static geolocationReport<T>(params: Record<string, any>): AxiosPromise<Response<T>>;
2401
+ }
2402
+
2273
2403
  declare class Teams {
2274
2404
  /**
2275
2405
  * List all the teams
@@ -5510,6 +5640,7 @@ declare class Glitch {
5510
5640
  Funnel: typeof Funnel;
5511
5641
  SocialStats: typeof SocialStats;
5512
5642
  WebsiteAnalytics: typeof WebsiteAnalytics;
5643
+ Fingerprinting: typeof Fingerprinting;
5513
5644
  };
5514
5645
  static util: {
5515
5646
  Requests: typeof Requests;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glitch-javascript-sdk",
3
- "version": "1.8.4",
3
+ "version": "1.8.5",
4
4
  "description": "Javascript SDK for Glitch",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -0,0 +1,215 @@
1
+ import FingerprintingRoute from "../routes/FingerprintingRoute";
2
+ import Requests from "../util/Requests";
3
+ import Response from "../util/Response";
4
+ import { AxiosPromise } from "axios";
5
+
6
+ class Fingerprinting {
7
+ /**
8
+ * List identified user fingerprints with filtering options
9
+ *
10
+ * @param params Filtering options:
11
+ * - title_id?: string - Filter by title ID
12
+ * - device_id?: string - Filter by device ID
13
+ * - user_install_id?: string - Filter by user install ID
14
+ * - browser_fingerprint?: string - Filter by browser fingerprint hash
15
+ * - device_fingerprint?: string - Filter by device fingerprint hash
16
+ * - is_bot?: boolean - Filter by bot status
17
+ * - start_date?: string - Start date (YYYY-MM-DD)
18
+ * - end_date?: string - End date (YYYY-MM-DD)
19
+ * - sort?: 'first_seen_at'|'last_seen_at'|'match_confidence' - Sort field
20
+ * - order?: 'asc'|'desc' - Sort order
21
+ * - per_page?: number - Items per page (max 100)
22
+ * @returns Promise with paginated fingerprints data
23
+ */
24
+ public static listFingerprints<T>(params?: Record<string, any>): AxiosPromise<Response<T>> {
25
+ return Requests.processRoute(
26
+ FingerprintingRoute.routes.listFingerprints,
27
+ {},
28
+ undefined,
29
+ params
30
+ );
31
+ }
32
+
33
+ /**
34
+ * Get cross-platform user journey reports
35
+ *
36
+ * @param params Report options:
37
+ * - title_id: string - Required title ID
38
+ * - fingerprint_id?: string - Specific fingerprint ID to analyze
39
+ * - start_date?: string - Start date (YYYY-MM-DD)
40
+ * - end_date?: string - End date (YYYY-MM-DD)
41
+ * - platform?: 'web'|'ios'|'android'|'steam'|'console' - Filter by platform
42
+ * - event_type?: string - Filter by event type
43
+ * - group_by?: 'day'|'week'|'month'|'year' - Grouping period
44
+ * - include_paths?: boolean - Include journey paths in response
45
+ * @returns Promise with user journey report data
46
+ */
47
+ public static userJourneyReport<T>(params: Record<string, any>): AxiosPromise<Response<T>> {
48
+ return Requests.processRoute(
49
+ FingerprintingRoute.routes.userJourneyReport,
50
+ {},
51
+ undefined,
52
+ params
53
+ );
54
+ }
55
+
56
+ /**
57
+ * Get cross-platform attribution reports
58
+ *
59
+ * @param params Report options:
60
+ * - title_id: string - Required title ID
61
+ * - start_date?: string - Start date (YYYY-MM-DD)
62
+ * - end_date?: string - End date (YYYY-MM-DD)
63
+ * - conversion_event?: 'game_install'|'game_purchase'|'web_event' - Conversion event to analyze
64
+ * - attribution_model?: 'first_touch'|'last_touch'|'linear'|'time_decay'|'position_based' - Attribution model
65
+ * @returns Promise with attribution report data
66
+ */
67
+ public static attributionReport<T>(params: Record<string, any>): AxiosPromise<Response<T>> {
68
+ return Requests.processRoute(
69
+ FingerprintingRoute.routes.attributionReport,
70
+ {},
71
+ undefined,
72
+ params
73
+ );
74
+ }
75
+
76
+ /**
77
+ * Get cross-device identity clusters
78
+ *
79
+ * @param params Report options:
80
+ * - title_id: string - Required title ID
81
+ * - start_date?: string - Start date (YYYY-MM-DD)
82
+ * - end_date?: string - End date (YYYY-MM-DD)
83
+ * - min_confidence?: number - Minimum match confidence score (0-100)
84
+ * @returns Promise with device cluster report data
85
+ */
86
+ public static deviceClusterReport<T>(params: Record<string, any>): AxiosPromise<Response<T>> {
87
+ return Requests.processRoute(
88
+ FingerprintingRoute.routes.deviceClusterReport,
89
+ {},
90
+ undefined,
91
+ params
92
+ );
93
+ }
94
+
95
+ /**
96
+ * Get combined identity clusters and user journey reports
97
+ *
98
+ * @param params Report options:
99
+ * - title_id: string - Required title ID
100
+ * - start_date?: string - Start date (YYYY-MM-DD)
101
+ * - end_date?: string - End date (YYYY-MM-DD)
102
+ * - min_confidence?: number - Minimum confidence score to include (0-100)
103
+ * - platform?: string - Filter by platform
104
+ * - include_journeys?: boolean - Include detailed journeys
105
+ * @returns Promise with identity cluster report data
106
+ */
107
+ public static identityClusterReport<T>(params: Record<string, any>): AxiosPromise<Response<T>> {
108
+ return Requests.processRoute(
109
+ FingerprintingRoute.routes.identityClusterReport,
110
+ {},
111
+ undefined,
112
+ params
113
+ );
114
+ }
115
+
116
+ /**
117
+ * Get combined attribution paths and conversion funnels
118
+ *
119
+ * @param params Report options:
120
+ * - title_id: string - Required title ID
121
+ * - start_date?: string - Start date (YYYY-MM-DD)
122
+ * - end_date?: string - End date (YYYY-MM-DD)
123
+ * - conversion_event?: string - Conversion event type
124
+ * - attribution_model?: string - Attribution model
125
+ * - funnel_steps?: string - Comma-separated funnel steps
126
+ * @returns Promise with attribution and funnel report data
127
+ */
128
+ public static attributionFunnelReport<T>(params: Record<string, any>): AxiosPromise<Response<T>> {
129
+ return Requests.processRoute(
130
+ FingerprintingRoute.routes.attributionFunnelReport,
131
+ {},
132
+ undefined,
133
+ params
134
+ );
135
+ }
136
+
137
+ /**
138
+ * Get device and environment breakdown reports
139
+ *
140
+ * @param params Report options:
141
+ * - title_id: string - Required title ID
142
+ * - start_date?: string - Start date (YYYY-MM-DD)
143
+ * - end_date?: string - End date (YYYY-MM-DD)
144
+ * - platform?: string - Filter by platform
145
+ * - group_by?: 'device_type'|'os'|'browser'|'country_code' - Grouping field
146
+ * @returns Promise with device and environment report data
147
+ */
148
+ public static deviceEnvironmentReport<T>(params: Record<string, any>): AxiosPromise<Response<T>> {
149
+ return Requests.processRoute(
150
+ FingerprintingRoute.routes.deviceEnvironmentReport,
151
+ {},
152
+ undefined,
153
+ params
154
+ );
155
+ }
156
+
157
+ /**
158
+ * Get unique vs returning user metrics
159
+ *
160
+ * @param params Report options:
161
+ * - title_id: string - Required title ID
162
+ * - start_date?: string - Start date (YYYY-MM-DD)
163
+ * - end_date?: string - End date (YYYY-MM-DD)
164
+ * - retention_period?: number - Days to consider for retention
165
+ * @returns Promise with retention metrics data
166
+ */
167
+ public static uniqueReturningReport<T>(params: Record<string, any>): AxiosPromise<Response<T>> {
168
+ return Requests.processRoute(
169
+ FingerprintingRoute.routes.uniqueReturningReport,
170
+ {},
171
+ undefined,
172
+ params
173
+ );
174
+ }
175
+
176
+ /**
177
+ * Get fraud and bot detection metrics
178
+ *
179
+ * @param params Report options:
180
+ * - title_id: string - Required title ID
181
+ * - start_date?: string - Start date (YYYY-MM-DD)
182
+ * - end_date?: string - End date (YYYY-MM-DD)
183
+ * - min_confidence?: number - Minimum confidence score to flag (0-100)
184
+ * @returns Promise with fraud detection data
185
+ */
186
+ public static fraudDetectionReport<T>(params: Record<string, any>): AxiosPromise<Response<T>> {
187
+ return Requests.processRoute(
188
+ FingerprintingRoute.routes.fraudDetectionReport,
189
+ {},
190
+ undefined,
191
+ params
192
+ );
193
+ }
194
+
195
+ /**
196
+ * Get geolocation distribution of users
197
+ *
198
+ * @param params Report options:
199
+ * - title_id: string - Required title ID
200
+ * - start_date?: string - Start date (YYYY-MM-DD)
201
+ * - end_date?: string - End date (YYYY-MM-DD)
202
+ * - group_by?: 'country'|'region'|'city' - Grouping level
203
+ * @returns Promise with geolocation report data
204
+ */
205
+ public static geolocationReport<T>(params: Record<string, any>): AxiosPromise<Response<T>> {
206
+ return Requests.processRoute(
207
+ FingerprintingRoute.routes.geolocationReport,
208
+ {},
209
+ undefined,
210
+ params
211
+ );
212
+ }
213
+ }
214
+
215
+ export default Fingerprinting;
package/src/api/index.ts CHANGED
@@ -4,6 +4,7 @@ import Competitions from "./Competitions";
4
4
  import Communities from "./Communities";
5
5
  import Users from "./Users";
6
6
  import Events from "./Events";
7
+ import Fingerprinting from "./Fingerprinting";
7
8
  import Teams from "./Teams";
8
9
  import Waitlists from "./Waitlist";
9
10
  import Posts from "./Posts";
@@ -66,4 +67,5 @@ export {Scheduler};
66
67
  export {Funnel};
67
68
  export {SocialStats};
68
69
  export {Hashtags};
69
- export {WebsiteAnalytics};
70
+ export {WebsiteAnalytics};
71
+ export {Fingerprinting};
package/src/index.ts CHANGED
@@ -36,6 +36,7 @@ import {Funnel} from "./api";
36
36
  import {SocialStats} from "./api";
37
37
  import {Hashtags} from "./api";
38
38
  import {WebsiteAnalytics} from "./api";
39
+ import {Fingerprinting} from "./api";
39
40
 
40
41
  import Requests from "./util/Requests";
41
42
  import Parser from "./util/Parser";
@@ -100,7 +101,8 @@ class Glitch {
100
101
  Scheduler : Scheduler,
101
102
  Funnel: Funnel,
102
103
  SocialStats : SocialStats,
103
- WebsiteAnalytics: WebsiteAnalytics
104
+ WebsiteAnalytics: WebsiteAnalytics,
105
+ Fingerprinting : Fingerprinting
104
106
  }
105
107
 
106
108
  public static util = {
@@ -0,0 +1,49 @@
1
+ import Route from "./interface";
2
+ import HTTP_METHODS from "../constants/HttpMethods";
3
+
4
+ class FingerprintingRoute {
5
+ public static routes: { [key: string]: Route } = {
6
+ listFingerprints: {
7
+ url: '/reports/fingerprinting/fingerprints',
8
+ method: HTTP_METHODS.GET
9
+ },
10
+ userJourneyReport: {
11
+ url: '/reports/fingerprinting/user-journeys',
12
+ method: HTTP_METHODS.GET
13
+ },
14
+ attributionReport: {
15
+ url: '/reports/fingerprinting/attribution',
16
+ method: HTTP_METHODS.GET
17
+ },
18
+ deviceClusterReport: {
19
+ url: '/reports/fingerprinting/device-clusters',
20
+ method: HTTP_METHODS.GET
21
+ },
22
+ identityClusterReport: {
23
+ url: '/reports/fingerprinting/identity-clusters',
24
+ method: HTTP_METHODS.GET
25
+ },
26
+ attributionFunnelReport: {
27
+ url: '/reports/fingerprinting/attribution-funnel',
28
+ method: HTTP_METHODS.GET
29
+ },
30
+ deviceEnvironmentReport: {
31
+ url: '/reports/fingerprinting/device-environment',
32
+ method: HTTP_METHODS.GET
33
+ },
34
+ uniqueReturningReport: {
35
+ url: '/reports/fingerprinting/unique-returning',
36
+ method: HTTP_METHODS.GET
37
+ },
38
+ fraudDetectionReport: {
39
+ url: '/reports/fingerprinting/fraud-detection',
40
+ method: HTTP_METHODS.GET
41
+ },
42
+ geolocationReport: {
43
+ url: '/reports/fingerprinting/geolocation',
44
+ method: HTTP_METHODS.GET
45
+ }
46
+ };
47
+ }
48
+
49
+ export default FingerprintingRoute;