forked from royalrick/weapp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
analysis_visit_trend.go
88 lines (71 loc) · 3.03 KB
/
analysis_visit_trend.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package weapp
import "github.com/ericnts/weapp/v3/request"
const (
apiGetMonthlyVisitTrend = "/datacube/getweanalysisappidmonthlyvisittrend"
apiGetWeeklyVisitTrend = "/datacube/getweanalysisappidweeklyvisittrend"
apiGetDailyVisitTrend = "/datacube/getweanalysisappiddailyvisittrend"
)
// Trend 用户趋势
type Trend struct {
RefDate string `json:"ref_date"` // 时间,月格式为 yyyymm | 周格式为 yyyymmdd-yyyymmdd | 天格式为 yyyymmdd
SessionCNT uint `json:"session_cnt"` // 打开次数(自然月内汇总)
VisitPV uint `json:"visit_pv"` // 访问次数(自然月内汇总)
VisitUV uint `json:"visit_uv"` // 访问人数(自然月内去重)
VisitUVNew uint `json:"visit_uv_new"` // 新用户数(自然月内去重)
StayTimeUV float64 `json:"stay_time_uv"` // 人均停留时长 (浮点型,单位:秒)
StayTimeSession float64 `json:"stay_time_session"` // 次均停留时长 (浮点型,单位:秒)
VisitDepth float64 `json:"visit_depth"` // 平均访问深度 (浮点型)
}
// VisitTrend 生物认证秘钥签名验证请求返回数据
type VisitTrend struct {
request.CommonError
List []Trend `json:"list"`
}
// GetMonthlyVisitTrend 获取用户访问小程序数据月趋势
// begin 开始日期,为自然月第一天。格式为 yyyymmdd
// end 结束日期,为自然月最后一天,限定查询一个月数据。格式为 yyyymmdd
func (cli *Client) GetMonthlyVisitTrend(begin, end string) (*VisitTrend, error) {
api := baseURL + apiGetMonthlyVisitTrend
accessToken, err := cli.AccessToken()
if err != nil {
return nil, err
}
return cli.getVisitTrend(accessToken, begin, end, api)
}
// GetWeeklyVisitTrend 获取用户访问小程序数据周趋势
// begin 开始日期,为自然月第一天。格式为 yyyymmdd
// end 结束日期,为周日日期,限定查询一周数据。格式为 yyyymmdd
func (cli *Client) GetWeeklyVisitTrend(begin, end string) (*VisitTrend, error) {
api := baseURL + apiGetWeeklyVisitTrend
accessToken, err := cli.AccessToken()
if err != nil {
return nil, err
}
return cli.getVisitTrend(accessToken, begin, end, api)
}
// GetDailyVisitTrend 获取用户访问小程序数据日趋势
// begin 开始日期,为自然月第一天。格式为 yyyymmdd
// end 结束日期,限定查询1天数据,允许设置的最大值为昨日。格式为 yyyymmdd
func (cli *Client) GetDailyVisitTrend(begin, end string) (*VisitTrend, error) {
api := baseURL + apiGetDailyVisitTrend
accessToken, err := cli.AccessToken()
if err != nil {
return nil, err
}
return cli.getVisitTrend(accessToken, begin, end, api)
}
func (cli *Client) getVisitTrend(accessToken, begin, end, api string) (*VisitTrend, error) {
url, err := tokenAPI(api, accessToken)
if err != nil {
return nil, err
}
params := dateRange{
BeginDate: begin,
EndDate: end,
}
res := new(VisitTrend)
if err := cli.request.Post(url, params, res); err != nil {
return nil, err
}
return res, nil
}