API Quản trị của Google Analytics phiên bản 1 cho phép bạn truy cập vào dữ liệu bằng cách sử dụng
runAccessReport
. Báo cáo này cung cấp bản ghi về mỗi lần người dùng đọc Google Analytics
dữ liệu báo cáo. Hồ sơ truy cập sẽ được lưu giữ trong tối đa 2 năm. Quyền truy cập dữ liệu
báo cáo chỉ được cung cấp cho người dùng có vai trò Quản trị viên.
Tạo báo cáo về quyền truy cập dữ liệu
Báo cáo Quyền truy cập dữ liệu được cung cấp bởi runAccessReport.
Các tính năng được chia sẻ với báo cáo cốt lõi
Các yêu cầu báo cáo Quyền truy cập dữ liệu có cùng ngữ nghĩa với Báo cáo chính cho nhiều tính năng dùng chung. Ví dụ: Các thông số kỹ thuật về Phân trang, Bộ lọc phương diện, Phạm vi ngày hoạt động như nhau trong Báo cáo truy cập dữ liệu dưới dạng Báo cáo chính.
Tìm hiểu thông tin tổng quan về chức năng Báo cáo chính của Data API phiên bản 1 làm phần còn lại của sẽ tập trung vào các tính năng dành riêng cho yêu cầu báo cáo Quyền truy cập dữ liệu.
Chọn đối tượng báo cáo
Tương tự như Báo cáo chính
chức năng của
Data API phiên bản 1, runAccessReport
của Google Analytics Admin API v1 yêu cầu Google Analytics
mã nhận dạng thuộc tính sẽ được chỉ định bên trong.
một đường dẫn yêu cầu URL ở dạng properties/GA_PROPERTY_ID
, chẳng hạn như:
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
Báo cáo kết quả về quyền truy cập dữ liệu sẽ được tạo dựa trên dữ liệu của Google Analytics bản ghi quyền truy cập dữ liệu cho tài sản Google Analytics được chỉ định.
Nếu bạn đang dùng một trong các thư viện ứng dụng API Quản trị,
bạn không cần thao tác đường dẫn URL yêu cầu theo cách thủ công. Hầu hết ứng dụng API
cung cấp tham số property
mong đợi một chuỗi ở dạng
properties/GA_PROPERTY_ID
Xem đoạn mã ở
ở cuối hướng dẫn này để xem ví dụ về cách sử dụng thư viện ứng dụng.
Thứ nguyên và chỉ số
Phương diện
mô tả và nhóm các dữ liệu về quyền truy cập cho tài sản của mình. Ví dụ: phương diện
userEmail
cho biết email của người dùng đã truy cập vào dữ liệu báo cáo.
Giá trị phương diện trong phản hồi của báo cáo là các chuỗi.
Chỉ số
thể hiện các số đo định lượng của báo cáo. Chỉ số accessCount
sẽ trả về tổng số bản ghi truy cập dữ liệu.
Xem Giản đồ truy cập dữ liệu để biết danh sách đầy đủ các phương diện và phương diện có sẵn trong yêu cầu báo cáo truy cập dữ liệu.
Yêu cầu báo cáo quyền truy cập dữ liệu
Để yêu cầu báo cáo truy cập dữ liệu, hãy tạo đối tượng RunAccessReportRequest. T4 khuyên bạn nên bắt đầu với các thông số yêu cầu sau:
- Ít nhất một mục hợp lệ trong ngày phạm vi .
- Ít nhất một mục hợp lệ trong phương diện .
- Nếu không sử dụng phương diện
epochTimeMicros
, có ít nhất một mục hợp lệ trong thời gian chỉ số để nhận dữ liệu định lượng cho từng tổ hợp giá trị phương diện trong một báo cáo.
Dưới đây là yêu cầu mẫu với các trường được đề xuất. Truy vấn này sẽ tạo một danh sách email người dùng, lần gần đây nhất họ truy cập vào tài sản được chỉ định trong phạm vi 7 ngày qua và số lượt truy cập tương ứng.
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"
}
]
}
Phản hồi báo cáo
Về mặt lý thuyết, tương tự như Báo cáo chính
chức năng của Data API phiên bản 1,
Báo cáo quyền truy cập vào dữ liệu
Câu trả lời của
yêu cầu báo cáo truy cập chủ yếu là tiêu đề và các hàng. Tiêu đề bao gồm
AccessDimensionHeaders
và
AccessMetricHeaders
liệt kê các cột trong Báo cáo.
Mỗi báo cáo quyền truy cập
hàng bao gồm
AccessDimensionValues
và
AccessMetricValues
cho các cột trong báo cáo. Thứ tự của các cột là nhất quán trong
yêu cầu, tiêu đề và mỗi hàng.
Dưới đây là phản hồi mẫu cho yêu cầu mẫu trước đó:
{
"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
}
Lọc các bản ghi truy cập
Sử dụng dimensionFilter trường của RunAccessReportRequest để hạn chế phản hồi của báo cáo cho các giá trị thứ nguyên cụ thể khớp với .
Ví dụ sau đây sẽ tạo một báo cáo dựa trên quyền truy cập dữ liệu của từng cá nhân
các bản ghi, lọc các bản ghi truy cập của một người dùng riêng lẻ có email
Alex@example.net
. Báo cáo này chứa thời gian của mỗi bản ghi truy cập,
email và địa chỉ 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"
}
}
}
}
Tương tự,
metricFilter
trường của
RunAccessReportRequest
Bạn có thể sử dụng đối tượng này để hạn chế phản hồi của báo cáo đối với các giá trị chỉ số cụ thể
khớp với bộ lọc.
Ví dụ sau đây sẽ tạo một báo cáo chứa email và số lượt truy cập của tất cả người dùng đã truy cập vào tài sản được chỉ định hơn 100 lần.
HTTP
{
"dateRanges": [
{
"startDate": "7daysAgo",
"endDate": "today"
}
],
"dimensions": [
{
"dimensionName": "userEmail"
}
],
"metricFilter": {
"accessFilter": {
"numericFilter": {
"operation": "GREATER_THAN",
"value": {
"int64Value": 100
}
},
"fieldName": "accessCount"
}
},
"metrics": [
{
"metricName": "accessCount"
}
]
}
Báo cáo mẫu
Dưới đây là một số báo cáo mẫu mà bạn có thể dùng thử.
Báo cáo lần truy cập gần đây nhất của mỗi người dùng
Bạn có thể tạo báo cáo quyền truy cập mẫu sau đây bằng runAccessReport
:
Phần trăm thời gian truy cập gần đây nhất | Email người dùng | Số lượt truy cập |
---|---|---|
1525220215025371 | Bola@example.net | 5 |
1525220215028361 | Alex@example.net | 36 |
1525220215027671 | Charlie@example.net | 1153 |
1525220215027341 | Mahan@example.net | 1 |
Báo cáo này có thể được tạo bằng cách truy vấn
thứ nguyên mostRecentAccessEpochTimeMicros
,
userEmail
và accessCount
chỉ số. Chiến lược phát hành đĩa đơn
báo cáo chứa một hàng cho mỗi người dùng: mostRecentAccessEpochTimeMicros
Phương diện tổng hợp các bản ghi quyền truy cập dữ liệu cho mỗi người dùng truy cập vào tài sản
và trả về thời gian truy cập gần đây nhất (tính bằng Unix micrô giây kể từ khi
epoch) cho mỗi hàng.
Báo cáo thông tin chi tiết về quyền truy cập của người dùng
Một ví dụ khác về báo cáo hữu ích là bảng chi tiết về lượt truy cập của người dùng theo Quyền truy cập Cơ chế (ví dụ: Giao diện người dùng Google Analytics, API, v.v.).
Phần trăm thời gian truy cập gần đây nhất | Email người dùng | Cơ chế truy cập | Số lượt truy cập |
---|---|---|---|
1525220215028367 | Alex@example.net | Firebase | 31 |
1525220215555778 | Alex@example.net | Giao diện người dùng Google Analytics | 1 |
1525220215022378 | Bola@example.net | Giao diện người dùng Google Analytics | 65 |
1525220215026389 | Bola@example.net | API Google Analytics | 894 |
1525220215025631 | Charlie@example.net | API Google Analytics | 67 |
1525220215068325 | Mahan@example.net | Google Ads | 3 |
Báo cáo này có thể được tạo bằng cách truy vấn
thứ nguyên mostRecentAccessEpochTimeMicros
,
userEmail
, accessMechanism
và accessCount
chỉ số.
Báo cáo này chứa một hàng cho mỗi tổ hợp cơ chế người dùng/quyền truy cập. Chiến lược phát hành đĩa đơn
Phương diện mostRecentAccessEpochTimeMicros
cho biết lần gần đây nhất người dùng sử dụng
đã truy cập vào thuộc tính bằng Cơ chế truy cập được chỉ định.
Báo cáo tổng quan về quyền truy cập vào tài sản
Bạn có thể tạo báo cáo cho một tài sản mà không cần chia nhỏ người dùng cá nhân. Ví dụ: báo cáo sau đây cho biết tần suất một tài sản được truy cập qua các Cơ chế truy cập khác nhau:
Mã tài sản được truy cập | Tên thuộc tính được truy cập | Cơ chế truy cập | Số lượt truy cập |
---|---|---|---|
12345678 | DemoApp | Firebase | 31 |
12345678 | DemoApp | Giao diện người dùng Google Analytics | 624 |
12345678 | DemoApp | Google Ads | 83 |
12345678 | DemoApp | API Google Analytics | 1744 |
Báo cáo này có thể được tạo bằng cách truy vấn
thứ nguyên accessedPropertyId
,
accessedPropertyName
, accessMechanism
và accessCount
chỉ số.
Báo cáo này chứa một hàng cho mỗi tổ hợp mã tài sản/cơ chế truy cập.
Báo cáo về quyền truy cập vào dữ liệu của từng cá nhân
Để tạo báo cáo trong đó mỗi hàng dựa trên quyền truy cập dữ liệu riêng lẻ
bản ghi, bỏ phương diện mostRecentAccessEpochTimeMicros
khỏi truy vấn và
hãy sử dụng phương diện epochTimeMicros
. Bạn không cần phải truy vấn
accessCount
, bởi vì mỗi hàng của báo cáo đều chứa thông tin về
lần xuất hiện truy cập dữ liệu đơn lẻ.
Báo cáo sau đây chứa thông tin chi tiết về mỗi lần người dùng đã truy cập vào thuộc tính được chỉ định.
Phần mềm Unix Epoch Time Micros | Email người dùng | Mã tài sản được truy cập | Tên thuộc tính được truy cập | IP người dùng | Cơ chế truy cập | Dữ liệu chi phí được trả về | Dữ liệu doanh thu được trả về |
---|---|---|---|---|---|---|---|
1525220215025371 | Bola@example.net | 12345678 | DemoApp | 1.2.3.1 | Giao diện người dùng Google Analytics | đúng | đúng |
1525220645645645 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Giao diện người dùng Google Analytics | false | false |
1525220211312322 | Bola@example.net | 12345678 | DemoApp | 11.22.33.11 | Google Ads | đúng | 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 | đúng | đúng |
1525220423423452 | Charlie@example.net | 12345678 | DemoApp | 1.2.3.3 | API Google Analytics | đúng | false |
1525220132312333 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Google Ads | đúng | đúng |
Báo cáo này có thể được tạo bằng cách truy vấn
phương diện epochTimeMicros
, userEmail
,
accessedPropertyId
, accessedPropertyName
, userIP
, accessMechanism
,
costDataReturned
, revenueDataReturned
.
Thư viện ứng dụng
Xem Hướng dẫn bắt đầu nhanh để được giải thích về cách cài đặt và định cấu hình thư viện ứng dụng.
Dưới đây là một ví dụ về cách sử dụng thư viện ứng dụng Python để chạy một truy vấn quyền truy cập dữ liệu và in phản hồi.
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}")