使用Python的Google Analytics 4 API指南
使用 Python 的 Google Analytics 4 API 指南
1:解锁 GA4 API
设置 Google Cloud 项目
添加并启用 API
创建 GCP 服务帐号
下载私钥 JSON 文件
在 GA4 中授予用户权限
2:Python 代码
导入库
定义属性 ID 和日期
配置 Google 凭据
向 GA4 API 发送请求
为最终结果创建数据框
导出到电子表格
结论:通过 API 制作 GA4 报告
Google Analytics 4(或 GA4)有一个 API,可提供对页面浏览量、流量来源和其他数据点等数据的访问。使用此 API,可以构建自定义仪表板、自动生成报告并与其他应用程序集成。
API 响应是使用编程语言访问的。本指南重点介绍如何使用 Python 访问和导出数据。我们将介绍访问 GA4 中常见数据的基本方法。如果您愿意,您还可以访问GA4 并将其导入 Google 表格。
但首先,需要从 API 获取数据。这需要一系列步骤。
要求 1:解锁 GA4 API
让我们开始通过 Google Cloud Platform 访问 API。Google Cloud Platform(或 GCP)是 Google 的一个计算服务平台,您可以在其中构建和部署应用程序。这是一项要求,因为所有 API 设置都是在此平台上完成的。
转到Google Cloud并使用您的 Google 帐户或右上角的 Gmail 登录。
另外,单击屏幕截图可放大它们。

谷歌云
设置 Google Cloud 项目
首先建立一个 Google Cloud 项目。登录后,创建一个项目。
1:点击页面左上角的选择项目。

2:单击*“新建项目”*。

3:给项目命名。在此示例中,输入ga4-project
。至于位置,暂时选择无组织。然后点击创建。

4:您的新项目现已在 GCP 中创建。选择您刚刚创建的项目,您将被重定向到 GCP 的工作区。

添加并启用 API
这是访问 API 的额外(且必需)步骤。您将选择要使用的 API。
1:在工作区中,转到左侧导航面板并单击以下内容:
1 汉堡图标(3 条水平线) > 2 API 和服务> 3启用的 API 和服务。

2:在启用的 API 和服务内,单击*+ 启用 API 和服务*。您将被重定向到 API 库

3:在 API 库内,在搜索字段中搜索Google Analytics Data API 。

4:选择Google Analytics 数据 API。其他API都在这里,但严格选择Google Analytics Data API。

5:在产品详细信息中,单击*“启用”*。这将启用 API 或获得 GCP 的认可。

启用 API 已完成!
创建 GCP 服务帐号
接下来要做的就是创建一个服务帐户。这是另一个要求,因为创建了电子邮件地址。此新电子邮件地址已添加到具有权限的 GA4 属性中。
1:在工作区中,转到左侧导航面板并单击以下内容:
1 汉堡图标(3 条水平线)> 2 IAM 和管理 > 3 服务帐户。

2:在*“服务帐户”*内,单击“ + 创建服务帐户”。

3:提供服务帐户信息。为了简单起见,请按照下面的屏幕截图进行操作。
输入名称。在此示例中,只需输入
ga4-api
.服务帐户 ID是自动填充的。
输入可选的描述
暂时跳过授予此服务对项目的访问权限并授予用户对此服务帐户的访问权限。

4:单击*“完成”*。
这将创建一个ga4-api@ga4-project-XXXXXX.iam.gserviceaccount.com
电子邮件地址。请记住此电子邮件地址并记下以备后用。

创建服务帐户完成!
下载私钥 JSON 文件
接下来是创建并下载 JSON 文件。该 JSON 文件包含私钥和其他 ID。
1:单击服务帐户电子邮件地址,如上面的屏幕截图所示。
2:在*“服务帐户详细信息”内,单击选项卡中的“密钥” 。*

3:单击*“添加密钥”,然后单击“创建新密钥”*。

4:在弹出的窗口中选择JSON。然后点击创建。

JSON 文件将下载到您的计算机上。记住文件名和文件位置。这些东西在后面的编码部分很重要。文件名类似于ga4-project-XXXXXX-XXXXXXXXXXXX.json

创建并下载私钥文件已完成!
在 GA4 中授予用户权限
接下来是在 GA4 中授予用户对服务帐户电子邮件地址的权限。这允许电子邮件地址查看您网站的 Google Analytics 4 属性。
1:返回服务帐户。记下您之前创建的服务帐户电子邮件地址。(例如ga4-api@ga4-project-XXXXXX.iam.gserviceaccount.com
)。

2:转到您选择的 Google Analytics 4 属性。注意:请自行决定要使用哪个 GA4 媒体资源。
3:在*“管理”下,单击“财产访问管理”*。

4:在属性访问管理中,单击+图标,然后单击添加用户。

5:在添加角色和数据限制中,输入服务帐户电子邮件地址,然后授予查看者访问权限。

6:点击添加保存。
另一件事:您还需要记住 Google Analytics 4 媒体资源的媒体资源 ID。这对于后面的编码部分至关重要。
4:在*“管理”下,单击“属性设置”*。

5:记住并记下右侧的属性 ID。

用户权限已完成!
上述一系列步骤可以用 PHP、Java、Node.js 和 .NET 进行编码。恰好本指南适用于 Python。
回顾一下,您应该记住编码部分的以下内容:
JSON 文件名
GA4 媒体资源 ID
要求 2:Python 代码
您可以使用其他编程语言。 对于本指南,它是 Python。我推荐使用 Jupyter 笔记本。 但如果您愿意,也可以使用任何文本编辑器,例如 Visual Studio Code 或 Atom。
导入库
import os
import pandas as pd
import itertools


导入这些库以继续。pip install
如果您的计算机或笔记本电脑上尚未安装这些库,请通过以下方式在您的计算机上安装这些库 。
os
库用于配置凭据。pandas
库用于数据帧。itertools
用于查询原始数据并将其格式化为电子表格格式。
定义属性 ID 和日期
property_id = "xxxxxxxxx"
starting_date = "8daysAgo"
ending_date = "yesterday"

接下来是为 GA4 媒体资源 ID 和日期分配值。还记得您之前记下的 GA4 属性吗?在变量中分配该 id property_id
。至于日期,starting_date
is8daysAgo
和ending_date
is yesterday
。以最近 7 天为例。如果您愿意,您可以稍后更改日期值。
配置 Google 凭据
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'ga4-project-xxxxxx-xxxxxxxxxxxx.json'

还记得您之前下载的密钥和 JSON 文件吗?在此赋值。要正确进行身份验证,请将 JSON 文件名分配给GOOGLE_APPLICATION_CREDENTIALS
.
上面的示例代码假设您的代码文件与 JSON 文件位于同一文件夹中。如果 JSON 文件位于计算机中的另一个文件夹中,则分配的值会有所不同。如果您重命名 JSON 文件本身,该值也会更改。
向 GA4 API 发送请求
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import (
DateRange,
Dimension,
Metric,
RunReportRequest,
)
client = BetaAnalyticsDataClient()
request_api = RunReportRequest(
property=f"properties/{property_id}",
dimensions=[
Dimension(name="landingPagePlusQueryString")
],
metrics=[
Metric(name="sessions")
],
date_ranges=[DateRange(start_date=starting_date, end_date=ending_date)],
)
response = client.run_report(request_api)

本指南的主要目的:从 API 获取原始数据。我们要运行RunReportRequest
.
landingPagePlusQueryString
上面的请求是从维度和指标中获取数据sessions
。您不需要更改property_id
、starting_date
和 ,ending_date
因为您之前已为它们分配了值。需要更改的只是维度或指标的名称。
如果您想添加更多维度或指标,请在代码中添加新行,并确保添加逗号等语法正确。您可以参考Google文档的API Dimensions & Metrics schema来了解您需要哪个维度或指标。
例子:Dimension(name="sessionSource") Metric(name="conversions")
此时,您已从 GA4 API 获取了原始数据。如果您输入并运行response
,它会从 API 返回原始数据。耶!

为最终结果创建数据框
def query_data(api_response):
dimension_headers = [header.name for header in api_response.dimension_headers]
metric_headers = [header.name for header in api_response.metric_headers]
dimensions = []
metrics = []
for i in range(len(dimension_headers)):
dimensions.append([row.dimension_values[i].value for row in api_response.rows])
dimensions
for i in range(len(metric_headers)):
metrics.append([row.metric_values[i].value for row in api_response.rows])
headers = dimension_headers, metric_headers
headers = list(itertools.chain.from_iterable(headers))
data = dimensions, metrics
data = list(itertools.chain.from_iterable(data))
df = pd.DataFrame(data)
df = df.transpose()
df.columns = headers
return df
query_data(response)

既然您拥有原始数据,就可以将数据格式化为电子表格。上面的函数可以解决这个问题。不要更改代码中的任何内容。任何其他维度或指标仍然可以使用上述函数,因此请尝试对其进行测试。
数据现在采用电子表格格式。如果您输入并运行query_data(response)
,结果现在应该是可读的。

导出到电子表格
final_data = query_data(response)
final_data.to_csv('file.csv', index=False)

为了结束本练习,上面的代码将数据帧导出到 CSV 文件。CSV 文件保存在代码文件的同一文件夹位置。完毕!
如果您按照上述说明操作,但没有返回结果,则有多种原因:
您输入的维度或指标不存在。请参阅API 文档。
您的实际 GA4 媒体资源没有数据。
维度和公制组合无效。这是 Google Analytics 问题,而不是代码问题。
如果您需要帮助或遇到错误,请联系我
结论:通过 API 制作 GA4 报告
如果您希望在不受用户界面任何限制的情况下解析 GA4 数据,则访问 API 是一个很好的解决方法。使用 API 允许任何营销人员在需要时自定义其工作流程。
将 API 与其他应用程序结合使用以创建强大的集成。使用 API 的结果是可以更全面地了解 Google Analytics 数据。有了这些知识,您就可以就营销策略做出更明智的决策。

入骨相思知不知
玲珑骰子安红豆



入我相思门,知我相思苦,长相思兮长相忆,短相思兮无穷极。


