使用Python的Google Analytics 4 API指南
使用 Python 的 Google Analytics 4 API 指南
1:解鎖 GA4 API
設置 Google Cloud 項目
添加并啟用 API
創(chuàng)建 GCP 服務帳號
下載私鑰 JSON 文件
在 GA4 中授予用戶權限
2:Python 代碼
導入庫
定義屬性 ID 和日期
配置 Google 憑據(jù)
向 GA4 API 發(fā)送請求
為最終結果創(chuàng)建數(shù)據(jù)框
導出到電子表格
結論:通過 API 制作 GA4 報告
Google Analytics 4(或 GA4)有一個 API,可提供對頁面瀏覽量、流量來源和其他數(shù)據(jù)點等數(shù)據(jù)的訪問。使用此 API,可以構建自定義儀表板、自動生成報告并與其他應用程序集成。
API 響應是使用編程語言訪問的。本指南重點介紹如何使用 Python 訪問和導出數(shù)據(jù)。我們將介紹訪問 GA4 中常見數(shù)據(jù)的基本方法。如果您愿意,您還可以訪問GA4 并將其導入 Google 表格。
但首先,需要從 API 獲取數(shù)據(jù)。這需要一系列步驟。
要求 1:解鎖 GA4 API
讓我們開始通過 Google Cloud Platform 訪問 API。Google Cloud Platform(或 GCP)是 Google 的一個計算服務平臺,您可以在其中構建和部署應用程序。這是一項要求,因為所有 API 設置都是在此平臺上完成的。
轉到Google Cloud并使用您的 Google 帳戶或右上角的 Gmail 登錄。
另外,單擊屏幕截圖可放大它們。
谷歌云
設置 Google Cloud 項目
首先建立一個 Google Cloud 項目。登錄后,創(chuàng)建一個項目。
1:點擊頁面左上角的選擇項目。
2:單擊*“新建項目”*。
3:給項目命名。在此示例中,輸入ga4-project。至于位置,暫時選擇無組織。然后點擊創(chuàng)建。
4:您的新項目現(xiàn)已在 GCP 中創(chuàng)建。選擇您剛剛創(chuàng)建的項目,您將被重定向到 GCP 的工作區(qū)。
添加并啟用 API
這是訪問 API 的額外(且必需)步驟。您將選擇要使用的 API。
1:在工作區(qū)中,轉到左側導航面板并單擊以下內容:
1 漢堡圖標(3 條水平線) > 2 API 和服務> 3啟用的 API 和服務。
2:在啟用的 API 和服務內,單擊*+ 啟用 API 和服務*。您將被重定向到 API 庫
3:在 API 庫內,在搜索字段中搜索Google Analytics Data API 。
4:選擇Google Analytics 數(shù)據(jù) API。其他API都在這里,但嚴格選擇Google Analytics Data API。
5:在產(chǎn)品詳細信息中,單擊*“啟用”*。這將啟用 API 或獲得 GCP 的認可。
啟用 API 已完成!
創(chuàng)建 GCP 服務帳號
接下來要做的就是創(chuàng)建一個服務帳戶。這是另一個要求,因為創(chuàng)建了電子郵件地址。此新電子郵件地址已添加到具有權限的 GA4 屬性中。
1:在工作區(qū)中,轉到左側導航面板并單擊以下內容:
1 漢堡圖標(3 條水平線)> 2 IAM 和管理 > 3 服務帳戶。
2:在*“服務帳戶”*內,單擊“ + 創(chuàng)建服務帳戶”。
3:提供服務帳戶信息。為了簡單起見,請按照下面的屏幕截圖進行操作。
輸入名稱。在此示例中,只需輸入
ga4-api.服務帳戶 ID是自動填充的。
輸入可選的描述
暫時跳過授予此服務對項目的訪問權限并授予用戶對此服務帳戶的訪問權限。
4:單擊*“完成”*。
這將創(chuàng)建一個[email protected]電子郵件地址。請記住此電子郵件地址并記下以備后用。
創(chuàng)建服務帳戶完成!
下載私鑰 JSON 文件
接下來是創(chuàng)建并下載 JSON 文件。該 JSON 文件包含私鑰和其他 ID。
1:單擊服務帳戶電子郵件地址,如上面的屏幕截圖所示。
2:在*“服務帳戶詳細信息”內,單擊選項卡中的“密鑰” 。*
3:單擊*“添加密鑰”,然后單擊“創(chuàng)建新密鑰”*。
4:在彈出的窗口中選擇JSON。然后點擊創(chuàng)建。
JSON 文件將下載到您的計算機上。記住文件名和文件位置。這些東西在后面的編碼部分很重要。文件名類似于ga4-project-XXXXXX-XXXXXXXXXXXX.json
創(chuàng)建并下載私鑰文件已完成!
在 GA4 中授予用戶權限
接下來是在 GA4 中授予用戶對服務帳戶電子郵件地址的權限。這允許電子郵件地址查看您網(wǎng)站的 Google Analytics 4 屬性。
1:返回服務帳戶。記下您之前創(chuàng)建的服務帳戶電子郵件地址。(例如[email protected])。
2:轉到您選擇的 Google Analytics 4 屬性。注意:請自行決定要使用哪個 GA4 媒體資源。
3:在*“管理”下,單擊“財產(chǎn)訪問管理”*。
4:在屬性訪問管理中,單擊+圖標,然后單擊添加用戶。
5:在添加角色和數(shù)據(jù)限制中,輸入服務帳戶電子郵件地址,然后授予查看者訪問權限。
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
導入這些庫以繼續(xù)。pip install如果您的計算機或筆記本電腦上尚未安裝這些庫,請通過以下方式在您的計算機上安裝這些庫 。
os庫用于配置憑據(jù)。pandas 庫用于數(shù)據(jù)幀。itertools用于查詢原始數(shù)據(jù)并將其格式化為電子表格格式。
定義屬性 ID 和日期
property_id = "xxxxxxxxx"
starting_date = "8daysAgo"
ending_date = "yesterday"
接下來是為 GA4 媒體資源 ID 和日期分配值。還記得您之前記下的 GA4 屬性嗎?在變量中分配該 id property_id。至于日期,starting_dateis8daysAgo和ending_dateis yesterday。以最近 7 天為例。如果您愿意,您可以稍后更改日期值。
配置 Google 憑據(jù)
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'ga4-project-xxxxxx-xxxxxxxxxxxx.json'
還記得您之前下載的密鑰和 JSON 文件嗎?在此賦值。要正確進行身份驗證,請將 JSON 文件名分配給GOOGLE_APPLICATION_CREDENTIALS.
上面的示例代碼假設您的代碼文件與 JSON 文件位于同一文件夾中。如果 JSON 文件位于計算機中的另一個文件夾中,則分配的值會有所不同。如果您重命名 JSON 文件本身,該值也會更改。
向 GA4 API 發(fā)送請求
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 獲取原始數(shù)據(jù)。我們要運行RunReportRequest.
landingPagePlusQueryString上面的請求是從維度和指標中獲取數(shù)據(jù)sessions。您不需要更改property_id、starting_date和 ,ending_date因為您之前已為它們分配了值。需要更改的只是維度或指標的名稱。
如果您想添加更多維度或指標,請在代碼中添加新行,并確保添加逗號等語法正確。您可以參考Google文檔的API Dimensions & Metrics schema來了解您需要哪個維度或指標。
例子:Dimension(name="sessionSource") Metric(name="conversions")
此時,您已從 GA4 API 獲取了原始數(shù)據(jù)。如果您輸入并運行response,它會從 API 返回原始數(shù)據(jù)。耶!
為最終結果創(chuàng)建數(shù)據(jù)框
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)
既然您擁有原始數(shù)據(jù),就可以將數(shù)據(jù)格式化為電子表格。上面的函數(shù)可以解決這個問題。不要更改代碼中的任何內容。任何其他維度或指標仍然可以使用上述函數(shù),因此請嘗試對其進行測試。
數(shù)據(jù)現(xiàn)在采用電子表格格式。如果您輸入并運行query_data(response),結果現(xiàn)在應該是可讀的。
導出到電子表格
final_data = query_data(response)
final_data.to_csv('file.csv', index=False)
為了結束本練習,上面的代碼將數(shù)據(jù)幀導出到 CSV 文件。CSV 文件保存在代碼文件的同一文件夾位置。完畢!
如果您按照上述說明操作,但沒有返回結果,則有多種原因:
您輸入的維度或指標不存在。請參閱API 文檔。
您的實際 GA4 媒體資源沒有數(shù)據(jù)。
維度和公制組合無效。這是 Google Analytics 問題,而不是代碼問題。
如果您需要幫助或遇到錯誤,請聯(lián)系我

結論:通過 API 制作 GA4 報告
如果您希望在不受用戶界面任何限制的情況下解析 GA4 數(shù)據(jù),則訪問 API 是一個很好的解決方法。使用 API 允許任何營銷人員在需要時自定義其工作流程。
將 API 與其他應用程序結合使用以創(chuàng)建強大的集成。使用 API 的結果是可以更全面地了解 Google Analytics 數(shù)據(jù)。有了這些知識,您就可以就營銷策略做出更明智的決策。
入骨相思知不知
玲瓏骰子安紅豆
入我相思門,知我相思苦,長相思兮長相憶,短相思兮無窮極。
