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的主要是在代理上难以走通,不建议使用。