33import { APIResource } from '../../../core/resource' ;
44import * as EventsAPI from './events' ;
55import { EventRecentParams , Events } from './events' ;
6+ import * as RetentionAPI from './retention' ;
7+ import {
8+ Retention ,
9+ RetentionChurnRateParams ,
10+ RetentionCohortsParams ,
11+ RetentionReturnRateParams ,
12+ } from './retention' ;
13+ import * as SessionsAPI from './sessions' ;
14+ import { SessionBounceRateParams , SessionMetricsParams , Sessions } from './sessions' ;
15+ import * as UsersAPI from './users' ;
16+ import { UserActiveParams , Users } from './users' ;
617import * as VisitorsAPI from './visitors' ;
718import {
819 VisitorByCountryParams ,
@@ -13,10 +24,86 @@ import {
1324 VisitorTopParams ,
1425 Visitors ,
1526} from './visitors' ;
27+ import { APIPromise } from '../../../core/api-promise' ;
28+ import { RequestOptions } from '../../../internal/request-options' ;
1629
1730export class Analytics extends APIResource {
1831 visitors : VisitorsAPI . Visitors = new VisitorsAPI . Visitors ( this . _client ) ;
1932 events : EventsAPI . Events = new EventsAPI . Events ( this . _client ) ;
33+ sessions : SessionsAPI . Sessions = new SessionsAPI . Sessions ( this . _client ) ;
34+ users : UsersAPI . Users = new UsersAPI . Users ( this . _client ) ;
35+ retention : RetentionAPI . Retention = new RetentionAPI . Retention ( this . _client ) ;
36+
37+ /**
38+ * Get combined key metrics including sessions, active users, bounce rate, and
39+ * retention for dashboard display
40+ *
41+ * @example
42+ * ```ts
43+ * const dashboardMetricsResponse =
44+ * await client.v1.analytics.dashboard({
45+ * project_id: 'project_id',
46+ * time_range: 'last_hour',
47+ * });
48+ * ```
49+ */
50+ dashboard ( query : AnalyticsDashboardParams , options ?: RequestOptions ) : APIPromise < DashboardMetricsResponse > {
51+ return this . _client . get ( '/api/v1/analytics/dashboard' , { query, ...options } ) ;
52+ }
53+ }
54+
55+ export interface ActiveUsersResponse {
56+ dau ?: number ;
57+
58+ mau ?: number ;
59+
60+ wau ?: number ;
61+ }
62+
63+ export interface BounceRateByPageMetric {
64+ bounce_rate ?: number ;
65+
66+ page ?: string ;
67+
68+ sessions ?: number ;
69+ }
70+
71+ export interface BounceRateResponse {
72+ by_page ?: Array < BounceRateByPageMetric > ;
73+
74+ overall_bounce_rate ?: number ;
75+ }
76+
77+ export interface ChurnRateResponse {
78+ churn_rate_percent ?: number ;
79+
80+ churn_threshold_days ?: number ;
81+
82+ churned_users ?: number ;
83+
84+ total_users ?: number ;
85+ }
86+
87+ export interface CohortAnalysisResponse {
88+ cohorts ?: Array < CohortData > ;
89+ }
90+
91+ export interface CohortData {
92+ cohort_period ?: string ;
93+
94+ cohort_size ?: number ;
95+
96+ month_1_retention ?: number ;
97+
98+ month_2_retention ?: number ;
99+
100+ month_3_retention ?: number ;
101+
102+ week_1_retention ?: number ;
103+
104+ week_2_retention ?: number ;
105+
106+ week_4_retention ?: number ;
20107}
21108
22109export interface CountryDataPoint {
@@ -27,6 +114,42 @@ export interface CountryDataPoint {
27114 unique_visitors ?: number ;
28115}
29116
117+ export interface DashboardMetricsResponse {
118+ avg_pages_per_session ?: number ;
119+
120+ avg_session_duration_seconds ?: number ;
121+
122+ /**
123+ * Engagement metrics
124+ */
125+ bounce_rate ?: number ;
126+
127+ /**
128+ * Active users
129+ */
130+ dau ?: number ;
131+
132+ mau ?: number ;
133+
134+ return_rate ?: number ;
135+
136+ /**
137+ * Sessions
138+ */
139+ sessions_today ?: number ;
140+
141+ /**
142+ * Total metrics
143+ */
144+ total_events ?: number ;
145+
146+ total_sessions_in_period ?: number ;
147+
148+ unique_visitors ?: number ;
149+
150+ wau ?: number ;
151+ }
152+
30153export interface EventsOverTimeDataPoint {
31154 event_count ?: number ;
32155
@@ -69,6 +192,24 @@ export interface RecentEventsResponse {
69192 total ?: number ;
70193}
71194
195+ export interface ReturnRateResponse {
196+ avg_time_between_sessions_hours ?: number ;
197+
198+ return_rate_percent ?: number ;
199+
200+ returning_users ?: number ;
201+
202+ total_users ?: number ;
203+ }
204+
205+ export interface SessionMetricsResponse {
206+ average_pages_per_session ?: number ;
207+
208+ average_session_duration_seconds ?: number ;
209+
210+ total_sessions ?: number ;
211+ }
212+
72213export interface TopVisitor {
73214 browser_name ?: string ;
74215
@@ -165,16 +306,40 @@ export interface VisitorsByOriginResponse {
165306 data ?: Array < OriginDataPoint > ;
166307}
167308
309+ export interface AnalyticsDashboardParams {
310+ /**
311+ * Project ID
312+ */
313+ project_id : string ;
314+
315+ /**
316+ * Time range
317+ */
318+ time_range : 'last_hour' | 'today' | 'last_7_days' | 'last_30_days' | 'last_90_days' ;
319+ }
320+
168321Analytics . Visitors = Visitors ;
169322Analytics . Events = Events ;
323+ Analytics . Sessions = Sessions ;
324+ Analytics . Users = Users ;
325+ Analytics . Retention = Retention ;
170326
171327export declare namespace Analytics {
172328 export {
329+ type ActiveUsersResponse as ActiveUsersResponse ,
330+ type BounceRateByPageMetric as BounceRateByPageMetric ,
331+ type BounceRateResponse as BounceRateResponse ,
332+ type ChurnRateResponse as ChurnRateResponse ,
333+ type CohortAnalysisResponse as CohortAnalysisResponse ,
334+ type CohortData as CohortData ,
173335 type CountryDataPoint as CountryDataPoint ,
336+ type DashboardMetricsResponse as DashboardMetricsResponse ,
174337 type EventsOverTimeDataPoint as EventsOverTimeDataPoint ,
175338 type OriginDataPoint as OriginDataPoint ,
176339 type RecentEvent as RecentEvent ,
177340 type RecentEventsResponse as RecentEventsResponse ,
341+ type ReturnRateResponse as ReturnRateResponse ,
342+ type SessionMetricsResponse as SessionMetricsResponse ,
178343 type TopVisitor as TopVisitor ,
179344 type TopVisitorsResponse as TopVisitorsResponse ,
180345 type UniqueVisitorsDataPoint as UniqueVisitorsDataPoint ,
@@ -185,6 +350,7 @@ export declare namespace Analytics {
185350 type VisitorsByCountryResponse as VisitorsByCountryResponse ,
186351 type VisitorsByDeviceResponse as VisitorsByDeviceResponse ,
187352 type VisitorsByOriginResponse as VisitorsByOriginResponse ,
353+ type AnalyticsDashboardParams as AnalyticsDashboardParams ,
188354 } ;
189355
190356 export {
@@ -198,4 +364,19 @@ export declare namespace Analytics {
198364 } ;
199365
200366 export { Events as Events , type EventRecentParams as EventRecentParams } ;
367+
368+ export {
369+ Sessions as Sessions ,
370+ type SessionBounceRateParams as SessionBounceRateParams ,
371+ type SessionMetricsParams as SessionMetricsParams ,
372+ } ;
373+
374+ export { Users as Users , type UserActiveParams as UserActiveParams } ;
375+
376+ export {
377+ Retention as Retention ,
378+ type RetentionChurnRateParams as RetentionChurnRateParams ,
379+ type RetentionCohortsParams as RetentionCohortsParams ,
380+ type RetentionReturnRateParams as RetentionReturnRateParams ,
381+ } ;
201382}
0 commit comments