RESTful API与谷歌分析

13 投票
2 回答
7371 浏览
提问于 2025-04-17 19:46

我正在用Python(Flask)搭建一个RESTful API

我想要能够追踪以下信息:

  • 哪些请求被发送过
  • 这些请求发生的时间
  • 发送响应花了多长时间

我想用Google Analytics来实现这个,因为它有很不错的界面和丰富的功能。

我的问题

我该如何把Google Analytics整合进一个REST API里呢?
或者有没有人知道其他可以用的工具或库?

目前我找到的有:

2 个回答

1

我知道这是一篇很老的帖子。我发现了关于在Python中使用谷歌分析的支持信息。

https://developers.google.com/api-client-library/python/apis/analytics/v3

觉得在这里记录一下也不错(y)

10

其实有两种方法可以把服务器上的数据发送到谷歌分析(Google Analytics)。标准的方法是使用GIF图像请求API,这个API和客户端使用的ga.js是一样的。谷歌还在开发一个新的REST API,叫做测量协议(Measurement Protocol),不过现在还只是开发者预览版。

服务器端GA

在尝试将服务器端数据发送到GA时,有几个问题需要解决。

就像@mehaase提到的,GIF API会从请求中获取IP地址,所以你所有的服务器请求都会显示为来自你服务器所在位置的用户。测量协议也不允许你更改请求的IP。在这个回答中,我假设使用的是公开的GIF API。

另一个问题是,GIF端点需要一个客户端的cookie。你可以在每个请求中伪造这个cookie,但这会导致每个事件看起来像是一个新访客。只要你把服务器端API和网站放在不同的谷歌分析账户中,这样也没问题。

另外要注意的是,谷歌可能需要最多一个小时才能显示你发送的事件。这可能会让调试变得有点痛苦,所以要有耐心。

这里是GA cookie中每个变量的解释,还有一个不错的node.js示例,展示如何将服务器端数据发送到GA。

其他事件追踪选项

虽然GA在跟踪网站指标方面非常出色,但它并不是专门用来跟踪服务器端事件的。事件追踪是一种分析类别,非常适合用于RESTful API的使用追踪。

这个API通常看起来是这样的:

analytics.track('API Response', {
    method  : 'POST',
    endpoint: '/comments'
    duration: 124
    status  : 500
});

它可以让你查看每个事件及其属性的频率和分布报告。你可以回答一些问题,比如:今天发生了多少次/comments API调用?有多少次是200状态?有多少次响应时间超过200毫秒?等等。

这里有一些事件追踪工具,可以帮助你做到这一点:

  1. Mixpanel
  2. KissMetrics
  3. Keen.IO

我是Segment.io的联合创始人,这是一家提供简单API的公司,支持客户端、服务器端和移动分析。我们允许你从python、php、ruby、node、java、.net、javascript和iOS发送数据,我们会将其转发到谷歌分析、Mixpanel、KissMetrics、Keen.IO或其他支持的服务,而你无需学习它们的API。

最后,这里有一篇来自我们分析学院的文章,解释了为什么事件追踪是有用的。

撰写回答