附近小店
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

72 lines
2.8 KiB

  1. package weapp
  2. const (
  3. apiGetMonthlyVisitTrend = "/datacube/getweanalysisappidmonthlyvisittrend"
  4. apiGetWeeklyVisitTrend = "/datacube/getweanalysisappidweeklyvisittrend"
  5. apiGetDailyVisitTrend = "/datacube/getweanalysisappiddailyvisittrend"
  6. )
  7. // Trend 用户趋势
  8. type Trend struct {
  9. RefDate string `json:"ref_date"` // 时间,月格式为 yyyymm | 周格式为 yyyymmdd-yyyymmdd | 天格式为 yyyymmdd
  10. SessionCNT uint `json:"session_cnt"` // 打开次数(自然月内汇总)
  11. VisitPV uint `json:"visit_pv"` // 访问次数(自然月内汇总)
  12. VisitUV uint `json:"visit_uv"` // 访问人数(自然月内去重)
  13. VisitUVNew uint `json:"visit_uv_new"` // 新用户数(自然月内去重)
  14. StayTimeUV float64 `json:"stay_time_uv"` // 人均停留时长 (浮点型,单位:秒)
  15. StayTimeSession float64 `json:"stay_time_session"` // 次均停留时长 (浮点型,单位:秒)
  16. VisitDepth float64 `json:"visit_depth"` // 平均访问深度 (浮点型)
  17. }
  18. // VisitTrend 生物认证秘钥签名验证请求返回数据
  19. type VisitTrend struct {
  20. CommonError
  21. List []Trend `json:"list"`
  22. }
  23. // GetMonthlyVisitTrend 获取用户访问小程序数据月趋势
  24. // accessToken 接口调用凭证
  25. // begin 开始日期,为自然月第一天。格式为 yyyymmdd
  26. // end 结束日期,为自然月最后一天,限定查询一个月数据。格式为 yyyymmdd
  27. func GetMonthlyVisitTrend(accessToken, begin, end string) (*VisitTrend, error) {
  28. api := baseURL + apiGetMonthlyVisitTrend
  29. return getVisitTrend(accessToken, begin, end, api)
  30. }
  31. // GetWeeklyVisitTrend 获取用户访问小程序数据周趋势
  32. // accessToken 接口调用凭证
  33. // begin 开始日期,为自然月第一天。格式为 yyyymmdd
  34. // end 结束日期,为周日日期,限定查询一周数据。格式为 yyyymmdd
  35. func GetWeeklyVisitTrend(accessToken, begin, end string) (*VisitTrend, error) {
  36. api := baseURL + apiGetWeeklyVisitTrend
  37. return getVisitTrend(accessToken, begin, end, api)
  38. }
  39. // GetDailyVisitTrend 获取用户访问小程序数据日趋势
  40. // accessToken 接口调用凭证
  41. // begin 开始日期,为自然月第一天。格式为 yyyymmdd
  42. // end 结束日期,限定查询1天数据,允许设置的最大值为昨日。格式为 yyyymmdd
  43. func GetDailyVisitTrend(accessToken, begin, end string) (*VisitTrend, error) {
  44. api := baseURL + apiGetDailyVisitTrend
  45. return getVisitTrend(accessToken, begin, end, api)
  46. }
  47. func getVisitTrend(accessToken, begin, end, api string) (*VisitTrend, error) {
  48. url, err := tokenAPI(api, accessToken)
  49. if err != nil {
  50. return nil, err
  51. }
  52. params := dateRange{
  53. BeginDate: begin,
  54. EndDate: end,
  55. }
  56. res := new(VisitTrend)
  57. if err := postJSON(url, params, res); err != nil {
  58. return nil, err
  59. }
  60. return res, nil
  61. }