GA4因为其强大的功能而备受一些企业的青睐,但由于是免费的,GA4提供的数据存在抽样的,导致数据的准确大大降低,但GA4也提供一些API接口给用户,通过GA4 API分页查询功能能降低抽样的比例,甚至是没有抽样。
Python
这一篇介绍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”,然后将它启用:

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

就可以看到凭据的管理界面:
点击「+创建凭据」——「服务账号」
服务账号命名为“GA4 API TEST”,其他位置默认的就可以,然后点击「完成」
就可以看到:
注意这个邮箱,后面会需要在GA4里授权。
下载JSON秘钥
点击打开服务账号
然后点击「秘钥」——「添加键」——「创建新秘钥」,选择JSON:
点击「创建」,可以看到下载了一个秘钥:

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

Python里
安装基础库
- pip install google-analytics-data
代码调试
- # [START analyticsdata_json_credentials_quickstart]
- from google.analytics.data_v1beta import BetaAnalyticsDataClient
- from google.analytics.data_v1beta.types import (
- DateRange,
- Dimension,
- Metric,
- RunReportRequest,
- )
-
-
- def sample_run_report(property_id="206759202", credentials_json_path="/home/haran_huang/cloudshell_open/python-docs-samples/ga-for-demo-ee78a4d8024e.json"):
-
- client = BetaAnalyticsDataClient.from_service_account_json(credentials_json_path)
- # [END analyticsdata_json_credentials_initialize]
-
- # [START analyticsdata_json_credentials_run_report]
- request = RunReportRequest(
- property=f"properties/{property_id}",
- dimensions=[Dimension(name="city")],
- metrics=[Metric(name="activeUsers")],
- date_ranges=[DateRange(start_date="2025-01-31", end_date="today")],
- )
- response = client.run_report(request)
- # [END analyticsdata_json_credentials_run_report]
-
- print("Report result:")
- for row in response.rows:
- print(row.dimension_values[0].value, row.metric_values[0].value)
-
-
- # [END analyticsdata_json_credentials_quickstart]
-
-
- if __name__ == "__main__":
- sample_run_report()
-
这个代码的作用是获取,2月起,每个城市的活跃用户数。
将Property ID和秘钥替换成你自己的:
运行后数据如下:
延伸阅读:Python连接Google Analytics 4 API获取数据
R
R的主要是在代理上难以走通,不建议使用。