因为需要写一个 Blog Feature 的缘故,所以接触了下 GA 的 Python API,发现 G 家的 API 不是那么直观,比较绕,但是,在使用过程中发现其实 G 家的 API 设计挺有意思的,可能有一些新的设计理念,值得思考学习一番.但是这不是这篇文章的重点,这篇文章还是介绍一下 GA 的 Python API V4 版本的使用,顺带在最后解答几个我再使用过程中遇到的问题.
GA API 使用入门
目前 GA 的 API 是 V4 版本,据说 V3 版本还可以使用,但是我没有尝试,为了减少后续的升级,直接就上了 V4 的版本.V4 版本用起来比较蛋疼,但是无妨,按照官方的 Guide 还是能进行下去的,只是中途遇到了一些问题,这个后面说.
启用 API 要开始使用 Analytics Reporting API v4,您需要先 使用设置工具 ,该工具会引导您在 Google 云端平台控制台中创建项目,启用 API 以及创建凭据. 这里要吐槽一番,G 家似乎把它的 GA 服务和 GCP 绑定在一起了,不知道我的理解对不对,反正我发现设置的项目 是通用的.这个不太理解,但是也不妨碍我的使用,所以按照以下步骤做就好了:
打开 服务帐号页 .如果看到相关提示,请选择项目.
点击创建服务帐号.
在创建服务帐号窗口中,键入服务帐号的名称,然后选择提供新的私钥.如果您希望 将 G Suite 全网域权限 授予该服务帐号,另请选中启用 G Suite 全网域委派功能.然后,点击创建.
这里提醒以下,创建私钥有 json 和 p12 模式,推荐使用 json,但是我使用的是 p12,因为我很久以前就已经申请过了.ok,到此,创建账户阶段算是完了,这里需要记录几个东西.
KEY_FILE_LOCATION:这个就是刚才自动下载的私钥的本地存放地址
SERVICE_ACCOUNT_EMAIL:在 这个页面 里查找
VIEW_ID: 在 这个页面 里查看


安装 GA Python 包 这个很简单,直接使用 pip 就好了,需要注意的是,最好连 PyOpenSSL 也装上,因为 p12 密钥文件要用到.

尝试示例 您需要创建一个名为 HelloAnalytics.py 的文件,其中将包含指定的示例代码.所有代码你可以在我的 Github Repo 中找到: GA Demo Code .这里你有几个常量是需要更改的: 因为刚才我们创建了几个 ID 的文件,所以需要把它放进代码里面,在代码里应该修改这里:
 把 15,16,17 行按照上面的 ID 替换掉.这样代码应该就可以运行了,尝试一下看看.如果发生错误,不妨看看我下面的问题解决或者好好利用 Google 搜索一番.
遇到的问题
访问错误或者无响应

一开始看到第 3 行的错误时,我就猜测是墙的原因,所以就将 URL: https://analyticsreporting.googleapis.com/$discovery/rest 复制出来,在浏览器发现可以打开.所以这里我就没有想法了,因为我认为我的梯子是全局的,所以这段代码应该也是走的梯子,但是后面发现这就是打脸的想法.
在查找了一些资料和尝试了一些 DEMO 代码之后我发现应该还是代码没有走梯子的问题,所以就设置了一下 Http 的 proxy 参数,参考官网资料: httplib2 Http Object ,然后配了一下 proxy 参数:

然后就发现这样居然就行了!真特么的逗.
User does not have any Google Analytics account
这个问题比较简单,肯定最开始想的就是没有授权,所以就去搜了一下 GA 的用户授权,原来前边的授权和 GA 的授权没半毛钱的关系,所以还是得在 GA 上开一下授权:

这两个地方编辑一下就 OK 了.
怎么自己构造 API 数据
跟着 GA 的官方指导一直写下去发现是可以工作的,但是,发现 Demo 仅仅展示了 session 是怎么获取的,并没有其他的支持,所以我们还是需要自己阅读文档,所以参考了这个文档: GA 所有 Metric ,通过这份文档,我们就可以自己根据需要搜索所需的数据了.
Reference
httplib2:A comprehensive HTTP client library
Analytics Google API Error 403: "User does not have any Google Analytics Account
来源: https://www.cnblogs.com/makor/p/GA-operation-with-python.html