資料存取報表 (original) (raw)

您可以使用 Admin API v1 runAccessReport 方法建立資料存取報表。這份報表會顯示每次使用者讀取 Google Analytics 資料的情形。資料存取記錄最多會保留 2 年。只有具備管理員角色的使用者,才能查看資料存取報表。

使用用戶端程式庫要求資料存取報表

如要開始使用資料存取報表,最快的方法就是使用用戶端程式庫

如要瞭解如何安裝及設定 Google Analytics 用戶端程式庫,請參閱快速入門指南

以下是使用 Python 用戶端程式庫的範例,該程式庫會執行資料存取查詢並顯示回應。

Python

from datetime import datetime

from google.analytics.admin import AnalyticsAdminServiceClient from google.analytics.admin_v1alpha.types import ( AccessDateRange, AccessDimension, AccessMetric, RunAccessReportRequest, )

def run_sample(): """Runs the sample.""" # TODO(developer): Replace this variable with your Google Analytics 4 # property ID (e.g. "123456") before running the sample. property_id = "YOUR-GA4-PROPERTY-ID" run_access_report(property_id)

def run_access_report(property_id: str, transport: str = None): """ Runs an access report for a Google Analytics property. The report will aggregate over dimensions userEmail, accessedPropertyId, reportType, revenueDataReturned, costDataReturned, userIP, and return the access count, as well as the most recent access time for each combination. See https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema for the description of each field used in a data access report query. Args: property_id(str): The Google Analytics Property ID. transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) request = RunAccessReportRequest( entity=f"properties/{property_id}", dimensions=[ AccessDimension(dimension_name="userEmail"), AccessDimension(dimension_name="accessedPropertyId"), AccessDimension(dimension_name="reportType"), AccessDimension(dimension_name="revenueDataReturned"), AccessDimension(dimension_name="costDataReturned"), AccessDimension(dimension_name="userIP"), AccessDimension(dimension_name="mostRecentAccessEpochTimeMicros"), ], metrics=[AccessMetric(metric_name="accessCount")], date_ranges=[AccessDateRange(start_date="yesterday", end_date="today")], )

access_report = client.run_access_report(request)

print("Result:")
print_access_report(access_report)

def print_access_report(response): """Prints the access report.""" print(f"{response.row_count} rows received") for dimensionHeader in response.dimension_headers: print(f"Dimension header name: {dimensionHeader.dimension_name}") for metricHeader in response.metric_headers: print(f"Metric header name: {metricHeader.metric_name})")

for rowIdx, row in enumerate(response.rows):
    print(f"\nRow {rowIdx}")
    for i, dimension_value in enumerate(row.dimension_values):
        dimension_name = response.dimension_headers[i].dimension_name
        if dimension_name.endswith("Micros"):
            # Convert microseconds since Unix Epoch to datetime object.
            dimension_value_formatted = datetime.utcfromtimestamp(
                int(dimension_value.value) / 1000000
            )
        else:
            dimension_value_formatted = dimension_value.value
        print(f"{dimension_name}: {dimension_value_formatted}")

    for i, metric_value in enumerate(row.metric_values):
        metric_name = response.metric_headers[i].metric_name
        print(f"{metric_name}: {metric_value.value}")

資料存取報表要求的語意與許多常見功能的核心報表要求相同。舉例來說,分頁維度篩選器日期範圍在兩種報表類型中都會以相同方式運作。

請先參閱 Data API v1 中核心報表的總覽,然後返回本頁面,進一步瞭解資料存取報表。

建立資料存取報表

使用 runAccessReport 方法要求資料存取報表。

選取報表實體

與 Data API v1 的核心報表功能類似,Google Analytics Admin API v1 的 runAccessReport 方法需要在網址要求路徑中以 properties/GA_PROPERTY_ID 的形式指定 Google Analytics 資源 ID,例如:

  POST  https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport

系統會根據指定 Google Analytics 資源的 Google Analytics 資料存取記錄,產生最終的資料存取報表。

如果您使用的是 Admin API 用戶端程式庫,就不需要手動操作要求網址路徑。大多數 API 用戶端都會提供 property 參數,該參數預期字串格式為 properties/GA_PROPERTY_ID。如需用戶端程式庫的使用範例,請參閱本頁開頭的程式碼片段

選擇維度和指標

維度可描述及分組資源的存取資料。舉例來說,維度 userEmail 會指出存取報表資料的使用者電子郵件地址。報表回應中的維度值為字串。

指標代表報表的量化評估資料,accessCount 指標會傳回資料存取記錄的總數。

如要查看資料存取報表要求中可用的維度和指標名稱完整清單,請參閱「資料存取架構」。

索取報表

如要要求資料存取報表,請建構 RunAccessReportRequest 物件。建議您先從下列要求參數開始:

以下是含有建議欄位的示例要求。這項查詢會產生使用者電子郵件清單、使用者在過去 7 天內最近一次存取指定資源的時間,以及對應的存取次數。

HTTP

POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
{
  "dateRanges": [
    {
      "startDate": "7daysAgo",
      "endDate": "today"
    }
  ],
  "dimensions": [
    {
      "dimensionName": "mostRecentAccessEpochTimeMicros"
    },
    {
      "dimensionName": "userEmail"
    }
  ],
  "metrics": [
    {
      "metricName": "accessCount"
    }
  ]
}

閱讀回應

資料存取報表回應主要包含標頭和資料列。標頭包含 AccessDimensionHeadersAccessMetricHeaders,列出報表中的資料欄。

每個存取報表資料列都包含報表中資料欄的 AccessDimensionValuesAccessMetricValues。要求、標頭和每個資料列中的資料欄排序都一致。

以下是上述範例要求的回應範例:

{
  "dimensionHeaders": [
    {
      "dimensionName": "mostRecentAccessEpochTimeMicros"
    },
    {
      "dimensionName": "userEmail"
    }
  ],
  "metricHeaders": [
    {
      "metricName": "accessCount"
    }
  ],
  "rows": [
    {
      "dimensionValues": [
        {
          "value": "1667591408427733"
        },
        {
          "value": "Bola@example.net"
        }
      ],
      "metricValues": [
        {
          "value": "1238"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "1667710959827161"
        },
        {
          "value": "Alex@example.net"
        }
      ],
      "metricValues": [
        {
          "value": "475"
        }
      ]
    },
    {
      "dimensionValues": [
        {
          "value": "1667868650762743"
        },
        {
          "value": "Mahan@example.net"
        }
      ],
      "metricValues": [
        {
          "value": "96"
        }
      ]
    }
  ],
  "rowCount": 3
}

依存取記錄篩選

使用 RunAccessReportRequest 物件的 dimensionFilter 欄位,將報表回應限制為符合篩選器的特定維度值。

以下範例會根據個別資料存取記錄產生報表,並篩選電子郵件為 Alex@example.net 的單一使用者存取記錄。這份報表包含每筆存取記錄的時間、使用者的電子郵件和 IP 位址。

HTTP

POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
{
  "dateRanges": [
    {
      "startDate": "7daysAgo",
      "endDate": "today"
    }
  ],
  "dimensions": [
    {
      "dimensionName": "epochTimeMicros"
    },
    {
      "dimensionName": "userEmail"
    },
    {
      "dimensionName": "userIP"
    }
  ],
  "dimensionFilter": {
    "accessFilter": {
      "fieldName": "userEmail",
      "stringFilter": {
        "matchType": "EXACT",
        "value": "Alex@example.net"
      }
    }
  }
}

同樣地,RunAccessReportRequest 物件的 metricFilter 欄位可用來限制報表回應,只顯示符合篩選器的特定指標值。

以下範例會產生報表,其中包含電子郵件和存取次數,這些資料來自存取指定資源超過 100 次的所有使用者。

HTTP

{
  "dateRanges": [
    {
      "startDate": "7daysAgo",
      "endDate": "today"
    }
  ],
  "dimensions": [
    {
      "dimensionName": "userEmail"
    }
  ],
  "metricFilter": {
    "accessFilter": {
      "numericFilter": {
        "operation": "GREATER_THAN",
        "value": {
          "int64Value": 100
        }
      },
      "fieldName": "accessCount"
    }
  },
  "metrics": [
    {
      "metricName": "accessCount"
    }
  ]
}

範例報表

以下是一些您可以嘗試的範例報表。

最近存取

以下是可使用 runAccessReport 建立的範例存取報表:

最近一次存取的 Unix Epoch 時間 (以微秒為單位) 使用者電子郵件地址 存取次數
1525220215025371 Bola@example.net 5
1525220215028361 Alex@example.net 36
1525220215027671 Charlie@example.net 1153
1525220215027341 Mahan@example.net 1

您可以查詢維度 mostRecentAccessEpochTimeMicrosuserEmailaccessCount 指標來產生這份報表。這份報表會為每位使用者提供一列資料:mostRecentAccessEpochTimeMicros 維度會匯總每位存取資源的使用者資料存取記錄,並傳回每個資料列的上次存取時間 (以 Unix 微秒自紀元開始計算)。

使用者存取權細目

另一個實用的報表範例,是依據存取機制 (例如 Google Analytics 使用者介面、API 等) 細分使用者存取情況。

最近一次存取的 Unix Epoch 時間 (以微秒為單位) 使用者電子郵件地址 存取機制 存取次數
1525220215028367 Alex@example.net Firebase 31
1525220215555778 Alex@example.net Google Analytics 使用者介面 1
1525220215022378 Bola@example.net Google Analytics 使用者介面 65
1525220215026389 Bola@example.net Google Analytics API 894
1525220215025631 Charlie@example.net Google Analytics API 67
1525220215068325 Mahan@example.net Google Ads 3

您可以查詢維度 mostRecentAccessEpochTimeMicrosuserEmailaccessMechanismaccessCount 指標,產生這份報表。

報表中會列出每個使用者/存取機制組合的資料列。mostRecentAccessEpochTimeMicros 維度包含使用者上次使用指定存取機制存取資源的時間。

資源存取權總覽

您可以為資源產生報表,而不需要細分個別使用者。舉例來說,下列報表會說明使用不同存取機制存取資源的頻率:

存取的資源 ID 存取的資源名稱 存取機制 存取次數
12345678 DemoApp Firebase 31
12345678 DemoApp Google Analytics 使用者介面 624
12345678 DemoApp Google Ads 83
12345678 DemoApp Google Analytics API 1744

您可以查詢維度 accessedPropertyIdaccessedPropertyNameaccessMechanismaccessCount 指標,產生這份報表。

報表中每個資源 ID/存取機制組合都會包含一列。

個人資料存取權

如要產生每個資料列皆根據個別資料存取記錄的報表,請在查詢中省略 mostRecentAccessEpochTimeMicros 維度,改用 epochTimeMicros 維度。由於報表的每列都包含單一資料存取事件的相關資訊,因此您不必查詢 accessCount 指標。

下列報表包含使用者每次存取指定資源的詳細資訊。

Unix 紀元時間 (以微秒為單位) 使用者電子郵件地址 存取的資源 ID 存取的資源名稱 使用者 IP 存取機制 傳回的費用資料 傳回的收益資料
1525220215025371 Bola@example.net 12345678 DemoApp 1.2.3.1 Google Analytics 使用者介面 true true
1525220645645645 Mahan@example.net 12345678 DemoApp 1.2.3.5 Google Analytics 使用者介面 false false
1525220211312322 Bola@example.net 12345678 DemoApp 11.22.33.11 Google Ads true false
1525220210234221 Alex@example.net 12345678 DemoApp 11.22.33.22 Firebase false false
1525220215028368 Alex@example.net 12345678 DemoApp 1.2.3.2 Google Ads false false
1525220214234231 Mahan@example.net 12345678 DemoApp 11.22.33.55 Google Ads true true
1525220423423452 Charlie@example.net 12345678 DemoApp 1.2.3.3 Google Analytics API true false
1525220132312333 Mahan@example.net 12345678 DemoApp 1.2.3.5 Google Ads true true

您可以查詢維度 epochTimeMicrosuserEmailaccessedPropertyIdaccessedPropertyNameuserIPaccessMechanismcostDataReturnedrevenueDataReturned,產生這份報表。