|
- package weapp
-
- const (
- apiGetMonthlyRetain = "/datacube/getweanalysisappidmonthlyretaininfo"
- apiGetWeeklyRetain = "/datacube/getweanalysisappidweeklyretaininfo"
- apiGetDailyRetain = "/datacube/getweanalysisappiddailyretaininfo"
- )
-
- // Retain 用户留存
- type Retain struct {
- Key uint8 `json:"key"` // 标识,0开始,表示当月,1表示1月后。key取值分别是:0,1
- Value uint `json:"value"` // key对应日期的新增用户数/活跃用户数(key=0时)或留存用户数(k>0时)
- }
-
- // RetainResponse 生物认证秘钥签名验证请求返回数据
- type RetainResponse struct {
- CommonError
- RefDate string `json:"ref_date"` // 时间,月格式为 yyyymm | 周格式为 yyyymmdd-yyyymmdd | 天格式为 yyyymmdd
- VisitUV []Retain `json:"visit_uv"` // 活跃用户留存
- VisitUVNew []Retain `json:"visit_uv_new"` // 新增用户留存
- }
-
- // GetMonthlyRetain 获取用户访问小程序月留存
- // accessToken 接口调用凭证
- // begin 开始日期,为自然月第一天。格式为 yyyymmdd
- // end 结束日期,为自然月最后一天,限定查询一个月数据。格式为 yyyymmdd
- func GetMonthlyRetain(accessToken, begin, end string) (*RetainResponse, error) {
- api := baseURL + apiGetMonthlyRetain
- return getRetain(accessToken, begin, end, api)
- }
-
- // GetWeeklyRetain 获取用户访问小程序周留存
- // accessToken 接口调用凭证
- // begin 开始日期,为自然月第一天。格式为 yyyymmdd
- // end 结束日期,为周日日期,限定查询一周数据。格式为 yyyymmdd
- func GetWeeklyRetain(accessToken, begin, end string) (*RetainResponse, error) {
- api := baseURL + apiGetWeeklyRetain
- return getRetain(accessToken, begin, end, api)
- }
-
- // GetDailyRetain 获取用户访问小程序日留存
- // accessToken 接口调用凭证
- // begin 开始日期,为自然月第一天。格式为 yyyymmdd
- // end 结束日期,限定查询1天数据,允许设置的最大值为昨日。格式为 yyyymmdd
- func GetDailyRetain(accessToken, begin, end string) (*RetainResponse, error) {
- api := baseURL + apiGetDailyRetain
- return getRetain(accessToken, begin, end, api)
- }
-
- func getRetain(accessToken, begin, end, api string) (*RetainResponse, error) {
- url, err := tokenAPI(api, accessToken)
- if err != nil {
- return nil, err
- }
-
- params := dateRange{
- BeginDate: begin,
- EndDate: end,
- }
-
- res := new(RetainResponse)
- if err := postJSON(url, params, res); err != nil {
- return nil, err
- }
-
- return res, nil
- }
|