Python连接Google Analytics 4 API获取数据

Google Analytics 4 Haran 8年前 (2017-05-19) 19704次浏览 28个评论
文章目录[隐藏]

更新时间:2025年3月5号

这一篇介绍Python连接Google Analytics 4 API获取数据。

启用API

 Google Cloud里新建项目

在Google Cloud里新建项目,点击项目列表,在Google Cloud左上角这个位置:

然后点击「新建项目」:

 

将项目命名为“GA For Demo”,然后点击「创建」

 

开启Google Analytics Data API

现将Google Cloud的工作项目切换为刚创建的“GA For Demo”:

 

点击右上角的导航菜单,然后点击「API和服务」——「已启用的API和服务」——「+启用API和服务」,搜索“Google Analytics Data API”,这个是GA4数据报告的API,将它启用:

 

创建服务账号

点击右上角的导航菜单,然后点击「API和服务」——「凭据」:

就可以看到凭据的管理界面:

 

点击「+创建凭据」——「服务账号」

服务账号命名为“GA4 API TEST”,其他位置默认的就可以,然后点击「完成」

就可以看到:

注意这个邮箱,后面会需要在GA4里授权。

下载JSON秘钥

点击打开服务账号

 

然后点击「秘钥」——「添加键」——「创建新秘钥」,选择JSON:

点击「创建」,可以看到下载了一个秘钥:

获取GA4授权

给服务账号ga4-api-test@ga-for-demo.iam.gserviceaccount.com授权,在GA4里点击「管理」——「媒体资源访问权限管理」——「+」——「添加用户」,将其添加,权限类型是“查看者”的就可以:

 

Python里

 

安装基础库

pip install google-analytics-data

 

代码调试

这个代码的作用是获取,2月起,每个城市的活跃用户数。

将Property ID和秘钥替换成你自己的:

运行后数据如下:

 

关于API的使用量限额,延伸阅读:最近Looker Studio报错的原因:GA4 Data API 限额 Google Analytics 4 免费版和付费版对比(2025)


如有疑问,可以在文章底部留言或邮件(haran.huang@ichdata.com) 我~
喜欢 (10)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(28)个小伙伴在吐槽
  1. HelloAnalytics.py 运行成功,但按照你的方式新建py文件运行出错 KeyError: 'access_token'求救求救
    llw2022-07-15 23:25 回复 Windows 10 | Chrome 95.0.4638.69
    • Haran
      是否有引入HelloAnalytics.py 文件
      黄业忠2022-07-16 09:41 回复 Mac OS X | Chrome 103.0.0.0
      • 感谢您的回复,完整代码如下:import HelloAnalytics as gaapi#这个就相当于您代码里的 install_ga_demo 吧?service = gaapi.get_service('analytics', 'v3', 'scope', 'client_secrets.json') profile_id = '21415****'data = service.data().ga().get( ids='ga:'+profile_id, start_date='2022-07-01', end_date='2022-07-07', #max_results='20000', metrics='ga:users', dimensions='ga:date', sort='ga:date' #filters='ga:pagePath~/en/' ).execute()print(data['rows'])
        llw2022-07-17 00:27 回复 Windows 10 | Chrome 95.0.4638.69
        • Haran
          看起来没问题 ,你在执行单独引入的那段代码的时候,是否有打开网页去获取授权了?
          黄业忠2022-07-18 14:02 回复 Mac OS X | Chrome 103.0.0.0
          • 您指的是这个么 HelloAnalytics.py, 从来没有需要我网页授权, GA service account 貌似不需要?
            llw2022-07-18 14:32 Windows 10 | Chrome 95.0.4638.69
          • Haran
            运行HelloAnalytics.py 有没出现数据
            黄业忠2022-07-18 16:18 Mac OS X | Chrome 103.0.0.0
          • 谢谢您的回复,有数据的.但是和我在GA页面查的数据不同
            llw2022-07-18 16:39 Windows 10 | Chrome 95.0.4638.69
          • 我把HelloAnalytics.py里get_results()的 ids 直接设置成我要查看的 views id, 数据就正确啦大神可以帮我想想问题会在哪儿吗,陆陆续续研究了好久啦 :(
            llw2022-07-18 23:36 Windows 10 | Chrome 95.0.4638.69
          • Haran
            如果前面有将 views id定义为变量,那么就在get_results()调用定义的变量,如果没有,就直接使用view id。
            黄业忠2022-07-19 11:10 Mac OS X | Chrome 103.0.0.0
          • 可以问下为什么新建install_ga_demo.py,而不直接用HelloAnalytics.py,二者有什么区别,前者行数少很多
            llw2022-07-19 15:30 Windows 10 | Chrome 95.0.4638.69
          • Haran
            可以直接用
            黄业忠2022-07-19 21:11 Mac OS X | Chrome 103.0.0.0
  2. 查询出来的ga:user 为什么是新用户的数据,DAU怎么查询呢?
    @1232021-07-27 11:13 回复 Mac OS X | Chrome 92.0.4515.107
    • Haran
      完整代码是什么
      黄业忠2021-07-27 11:16 回复 Mac OS X | Chrome 92.0.4515.107
  3. 我用的是本地的测试,提示 'Expected', client.SERVICE_ACCOUNT)ValueError: ('Unexpected credentials type', None, 'Expected', 'service_account'),这是什么原因?请教,非常感谢
    chc1532019-06-09 17:08 回复 Windows 7 | Firefox浏览器 63.0
    • 秘钥或密码格式不对
      GA小站2019-06-09 21:16 回复 Mac OS X | Chrome 74.0.3729.169
  4. TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 有梯子的情况下,还报这个错误,是什么原因呢?
    terry2019-03-31 01:23 回复 Windows 7 | Chrome 72.0.3626.81
  5. 2、然后将https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/service-py中的那段实例代码复制带本地保存,并将前面下载的json与那段代码挡在同一个路径中,然后找到key_file_location,将其改为json文件的名称----------这步操作里面,到底用的是哪个json文件呢?
    terry2019-03-09 20:15 回复 Windows 7 | Chrome 72.0.3626.81
    • 谷歌开发者后台生成的秘钥
      GA小站2019-03-14 22:22 回复 Mac OS X | Chrome 72.0.3626.121
  6. 大佬,请问:我用官方的示例代码为什么会报httplib.ResponseNotReady()的错误?
    allon2018-07-23 09:17 回复 Windows 7 | Chrome 67.0.3396.62
  7. 还有人吗,求教呀,连接不上,方便可以加个qq不
    酒窖2018-06-15 10:05 回复 Windows 10 | Chrome 64.0.3282.186
    • 用官方的demo是绝对没问题的,你检查一下你的环境配置设置
      GA小站2018-06-16 22:16 回复 Mac OS X | Chrome 67.0.3396.87
  8. [('asn1 encoding routines', 'ASN1_CHECK_TLEN', 'wrong tag'), ('asn1 encoding routines', 'ASN1_ITEM_EX_D2I','nested asn1 error')]——————————按该教程,创建了服务id、oauthid后,已下载了js文件、并在helloanalytics.py设置好路径了,但是报了上述的错误。(py3,win64;官方教程提到的包已安装)期望您的帮忙,谢谢
    leegofun2018-05-11 14:35 回复 Windows 10 | Chrome 65.0.3325.181
    • 使用的时候应该会自动打开一个授权页面,需要你手动授权后,后面的程序才能运行
      GA小站2018-05-15 14:57 回复 Mac OS X | Chrome 66.0.3359.139
  9. 提示ModuleNotFoundError: No module named 'apiclient.discovery'后来把from apiclient.discovery import build换成from googleapiclient.discovery import build可以跳转网页提示“The authentication flow has completed.”但是还报错 File "D:\Program Files\python3\lib\socket.py", line 713, in create_connection sock.connect(sa)TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。这是什么原因。
    nn912017-11-24 11:05 回复 Windows 7 | Chrome 55.0.2883.87
    • Python的错误,谷歌一下
      GA小站2017-11-24 17:02 回复 Windows 10 | Chrome 61.0.3163.100
      • 大神,谷歌不出来是不是国内对GA封杀的原因,python必须要加代理,可是怎么加?
        nn912017-11-24 17:06 回复 Windows 7 | Chrome 55.0.2883.87
        • 去找梯子(V*P*N)
          GA小站2017-11-27 08:42 回复 Windows 10 | Chrome 61.0.3163.100
    • 老铁,解决了吗
      哈哈哈哈2019-08-28 12:23 回复 Windows 10 | Chrome 76.0.3809.100