您可以使用報表工作,啟動長時間執行的非同步要求,建立 Google Analytics 事件資料的自訂報表。
所有具備 Google Analytics 資源讀取權限的使用者,都可以透過這項要求產生的報表工作資源,存取自訂報表。
自訂報表準備就緒後,效期為 72 小時。這段時間過後,系統會自動刪除對應的報表工作資源及其內容。
建立報表工作
Google Analytics Data API 第 1 版採用非同步方法建立報表工作。首先,您必須對 reportTasks.create 方法發出要求,才能建立報表工作。接著,系統會使用 reportTasks.query 方法擷取產生的自訂報表。
此外,您可以使用 reportTasks.get 擷取特定報表工作的設定中繼資料,並使用 reportTasks.list 列出資源的所有報表工作。
選取報表實體
所有 Data API v1 方法都必須在網址要求路徑中指定Google Analytics 資源 ID,格式為 properties/GA_PROPERTY_ID,例如:
POST https://analyticsdata.googleapis.com/v1alpha/properties/GA_PROPERTY_ID/reportTasks
這份報表是根據指定 Google Analytics 資源中收集到的 Google Analytics 事件資料產生。
如果您使用資料 API 用戶端程式庫,就不需要手動操控要求網址路徑。大多數 API 用戶端都會提供 property 參數,該參數預期會收到 properties/GA_PROPERTY_ID 形式的字串。如需使用用戶端程式庫的範例,請參閱快速入門指南。
要求建立報表工作
如要建立報表工作,請在要求中使用 ReportTask 物件,呼叫 reportTasks.create 方法。以下是必要參數:
reportDefinition欄位,用來描述自訂報表的定義。這個參數的結構與核心報表方法使用的報表定義類似。
建立報表工作要求的範例:
HTTP 要求
POST https://analyticsdata.googleapis.com/v1alpha/properties/1234567/reportTasks
{
"reportDefinition": {
"dateRanges": [{ "startDate": "2024-05-01"", "endDate": "2024-05-15" }],
"dimensions": [{ "name": "country" }],
"metrics": [{ "name": "activeUsers" }]
}
}
reportTasks.create 方法的回應會在 name 欄位中包含報表工作名稱 (例如 properties/1234567/reportTasks/123),可用於後續查詢,以取得報表工作的狀態並擷取產生的報表。
HTTP 回應
{
"response": {
"@type": "type.googleapis.com/google.analytics.data.v1alpha.ReportTask",
"name": "properties/1234567/reportTasks/123",
"reportDefinition": {
"dimensions": [
{
"name": "country"
}
],
"metrics": [
{
"name": "activeUsers"
}
],
"dateRanges": [
{
"startDate": "2024-05-01",
"endDate": "2024-05-15"
}
]
},
"reportMetadata": {
"state": "CREATING",
"beginCreatingTime": "2024-05-16T00:00:01.133612336Z"
}
}
}
取得報表工作就緒狀態
通話結束後,系統可能需要幾分鐘才能生成報告。reportTasks.create您可以呼叫 reportTasks.get 方法,取得 Report Task 的就緒狀態。
使用從 reportTasks.create 回應收到的「Report Task」名稱 (例如 properties/1234567/reportTasks/123),指定「Report Task」。
範例:
HTTP 要求
GET https://analyticsdata.googleapis.com/v1alpha/properties/1234567/reportTasks/123
回應的 state 欄位會傳回報表工作的就緒狀態。報表產生完成後,報表工作狀態會從 CREATING 變更為 ACTIVE。
reportMetadata 欄位包含所產生報表的高階資訊,例如列數和配額權杖的費用。
HTTP 回應
{
"reportDefinition": {
"dimensions": [
{
"name": "country"
}
],
"metrics": [
{
"name": "activeUsers"
}
],
"dateRanges": [
{
"startDate": "2024-05-01",
"endDate": "2024-05-15"
}
]
},
"reportMetadata": {
"state": "ACTIVE",
"beginCreatingTime": "2024-05-16T00:00:01.133612336Z",
"creationQuotaTokensCharged": 6,
"taskRowCount": 167,
"errorMessage": "",
"totalRowCount": 167
}
}
您可以呼叫 reportTasks.list 方法,取得所有報表工作狀態。
擷取生成的報表
使用 reportTasks.create 方法建立報表工作後,請呼叫 reportTasks.query 方法,並指定報表工作名稱 (例如 properties/1234567/reportTasks/123)。
HTTP 要求
POST https://analyticsdata.googleapis.com/v1alpha/properties/1234567/reportTasks/123:query
如果報表工作已完成,系統會傳回包含所產生報表的回應:
HTTP 回應
{
"dimensionHeaders": [
{
"name": "country"
}
],
"metricHeaders": [
{
"name": "activeUsers",
"type": "TYPE_INTEGER"
}
],
"rows": [
...
],
"rowCount": 167,
"metadata": {
"currencyCode": "USD",
"timeZone": "America/Los_Angeles"
}
}