Golang使用新版的Analytics Reporting API

前言

今年Google对旧的API进行了迁移,今年都得升级到Google Analytics 4,之前写的已经过时了。
我的博客用的就是Google的analytics api做的统计,今年早些时候已经迁移完成了,一直没写,现在整理一下。

与旧版的一些区别

go.mod修改

1
require google.golang.org/api v0.176.1

service的创建由这个

1
analyticsReportingService, err := analyticsreporting.NewService(context.Background(), option.WithCredentialsFile("下载的密钥.json"))

改成下面这样的

1
analyticsReportingService, err := ga.NewService(context.Background(), option.WithCredentialsFile("CredentialsFile.json"))

获取数据方面,以前我是这样写的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
request := &analyticsreporting.GetReportsRequest{
    ReportRequests: []*analyticsreporting.ReportRequest{
        {
            ViewId: "自己的ViewId",
            DateRanges: []*analyticsreporting.DateRange{
                {StartDate: "2020-01-01", EndDate: "today"},
            },
            Metrics: []*analyticsreporting.Metric{
                {Expression: "ga:newUsers"},
                {Expression: "ga:pageviews"},
            },
            Dimensions: []*analyticsreporting.Dimension{
                {Name: "ga:pagePath"},
            },
        },
    },
}

获取同样的数据新版的改写成下面这样的,注意propertyid需要写成"properties/具体的id"的形式,不然会一直报错

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
endDate := time.Now().Add(time.Hour * 48).Format("2006-01-02")
request := &ga.RunReportRequest{
DateRanges: []*ga.DateRange{
{
StartDate: "2022-04-19",
EndDate: endDate,
},
},
Dimensions: []*ga.Dimension{
{
Name: "pagePath",
},
},
Metrics: []*ga.Metric{
{
Name: "newUsers",
},
{
Name: "screenPageViews",
},
},
}
response, err := reportsService.Properties.RunReport("properties/具体的id", s.request).Do()

if err != nil {
return
}
data := &Data{
PvMap: make(map[string]int, response.RowCount),
}

for _, item := range response.Rows {
uv, _ := strconv.Atoi(item.MetricValues[0].Value)
data.TotalUv += uv
pv, _ := strconv.Atoi(item.MetricValues[1].Value)
data.TotalPv += pv
data.PvMap[item.DimensionValues[0].Value], _ = strconv.Atoi(item.MetricValues[1].Value)
}
作者

ZhongHuihong

发布于

2024-11-17

更新于

2024-11-17

许可协议