feat: add frontend analytics tracking
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export interface AnalyticsOverview {
|
||||
pv: number
|
||||
uv: number
|
||||
eventCount: number
|
||||
activeUsers: number
|
||||
ttsRequests: number
|
||||
ttsPlays: number
|
||||
avgStayMs: number
|
||||
}
|
||||
|
||||
export interface AnalyticsTrendItem {
|
||||
bucket: string
|
||||
eventName: string
|
||||
count: number
|
||||
users: number
|
||||
}
|
||||
|
||||
export interface AnalyticsTopEvent {
|
||||
eventName: string
|
||||
eventType: string
|
||||
count: number
|
||||
users: number
|
||||
}
|
||||
|
||||
export interface AnalyticsFunnelItem {
|
||||
eventName: string
|
||||
label: string
|
||||
users: number
|
||||
conversionRate: number
|
||||
}
|
||||
|
||||
export interface AnalyticsPreferenceItem {
|
||||
dimension: string
|
||||
value: string
|
||||
count: number
|
||||
users: number
|
||||
}
|
||||
|
||||
export interface AnalyticsUserItem {
|
||||
userId?: string
|
||||
anonymousId?: string
|
||||
eventCount: number
|
||||
lastActiveTime?: string
|
||||
}
|
||||
|
||||
export interface AnalyticsQuery {
|
||||
startDate?: string
|
||||
endDate?: string
|
||||
granularity?: 'day' | 'hour'
|
||||
eventNames?: string[]
|
||||
eventType?: string
|
||||
limit?: number
|
||||
}
|
||||
|
||||
export function getAnalyticsOverview(params: AnalyticsQuery = {}) {
|
||||
return request<AnalyticsOverview>({ url: '/admin/analytics/overview', method: 'get', params })
|
||||
}
|
||||
|
||||
export function getAnalyticsTrend(params: AnalyticsQuery = {}) {
|
||||
return request<AnalyticsTrendItem[]>({ url: '/admin/analytics/trend', method: 'get', params })
|
||||
}
|
||||
|
||||
export function getAnalyticsTopEvents(params: AnalyticsQuery = {}) {
|
||||
return request<AnalyticsTopEvent[]>({ url: '/admin/analytics/top-events', method: 'get', params })
|
||||
}
|
||||
|
||||
export function getAnalyticsFunnel(params: AnalyticsQuery = {}) {
|
||||
return request<AnalyticsFunnelItem[]>({ url: '/admin/analytics/funnel', method: 'get', params })
|
||||
}
|
||||
|
||||
export function getAnalyticsPreferences(params: AnalyticsQuery = {}) {
|
||||
return request<AnalyticsPreferenceItem[]>({ url: '/admin/analytics/preferences', method: 'get', params })
|
||||
}
|
||||
|
||||
export function getAnalyticsUsers(params: AnalyticsQuery = {}) {
|
||||
return request<AnalyticsUserItem[]>({ url: '/admin/analytics/users', method: 'get', params })
|
||||
}
|
||||
Reference in New Issue
Block a user