Отчеты о доступе к данным можно создавать с помощью метода runAccessReport Admin API версии 1. В этом отчете показано, когда пользователь читает данные Google Аналитики. Записи о доступе к данным хранятся до двух лет. Отчеты о доступе к данным доступны только пользователям с ролью Администратор.
Как запросить отчет о доступе к данным с помощью клиентской библиотеки
Самый быстрый способ начать работу с отчетами о доступе к данным – использовать клиентские библиотеки.
Инструкции по установке и настройке клиентских библиотек Google Аналитики приведены в кратком руководстве.
Ниже приведен пример использования клиентской библиотеки 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 версии 1, метод runAccessReport Google Analytics Admin API версии 1 требует, чтобы идентификатор ресурса Google Аналитики был указан в пути запроса URL в формате properties/GA_PROPERTY_ID, например:
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
Отчет о доступе к данным создается на основе записей о доступе к данным Google Аналитики для указанного ресурса Google Аналитики.
Если вы используете одну из клиентских библиотек Admin API, вам не нужно вручную изменять путь URL запроса. Большинство клиентов API предоставляют параметр property, который ожидает строку в форме properties/GA_PROPERTY_ID. Пример использования клиентских библиотек приведен в фрагменте кода в начале этой страницы.
Как выбрать параметры и показатели
Параметры описывают и группируют данные о доступе к ресурсу. Например, параметр userEmail указывает адрес электронной почты пользователя, который получил доступ к данным отчетов.
Значения параметров в ответах отчетов являются строками.
Показатели – это количественные значения в отчете. Показатель accessCount возвращает общее количество записей о доступе к данным.
Полный список названий параметров и показателей, доступных в запросах отчетов о доступе к данным, приведен в схеме доступа к данным.
Как запросить отчет
Чтобы запросить отчеты о доступе к данным, создайте объект RunAccessReportRequest. Рекомендуем начать с этих параметров запроса:
- Хотя бы одна запись в поле date ranges.
- Хотя бы одна действительная запись в поле dimensions.
- Если параметр
epochTimeMicrosне используется, в поле metrics должна быть хотя бы одна действительная запись, чтобы получать количественные данные для каждой комбинации значений параметров в отчете.
Ниже приведен пример запроса с рекомендуемыми полями. Этот запрос создаст список адресов электронной почты пользователей, время их последнего доступа к указанному ресурсу за последние семь дней и количество соответствующих доступов.
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"
}
]
}
Прочитайте ответ.
Ответ на запрос отчета о доступе к данным состоит в основном из заголовка и строк. Заголовок состоит из следующих элементов:
AccessDimensionHeaders
и
AccessMetricHeaders
в которых перечислены столбцы отчета.
Каждая строка отчета о доступе состоит из AccessDimensionValues и AccessMetricValues для столбцов в отчете. Порядок столбцов в запросе, заголовке и каждой строке одинаковый.
Ниже приведен пример ответа на запрос, указанный выше.
{
"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
}
Как фильтровать записи о доступе
Используйте поле dimensionFilter объекта RunAccessReportRequest, чтобы ограничить ответ отчета определенными значениями параметров, которые соответствуют фильтру.
В следующем примере создается отчет на основе отдельных записей доступа к данным с фильтрацией по записям доступа одного пользователя с адресом электронной почты 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"
}
}
}
}
Аналогично, поле metricFilter объекта RunAccessReportRequest можно использовать, чтобы ограничить ответ отчета определенными значениями показателей, которые соответствуют фильтру.
В следующем примере создается отчет, содержащий адреса электронной почты и количество обращений всех пользователей, которые обращались к указанному ресурсу более 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:
| Время последнего доступа, выраженное в микросекундах с начала отсчета | Адрес электронной почты пользователя | Количество операций доступа |
|---|---|---|
| 1525220215025371 | Bola@example.net | 5 |
| 1525220215028361 | Alex@example.net | 36 |
| 1525220215027671 | Charlie@example.net | 1153 |
| 1525220215027341 | Mahan@example.net | 1 |
Этот отчет можно создать, запросив параметры mostRecentAccessEpochTimeMicros,
userEmail и accessCount показатель. Отчет содержит по одной строке для каждого пользователя. Параметр mostRecentAccessEpochTimeMicros агрегирует записи о доступе к данным для каждого пользователя, который обращался к ресурсу, и возвращает время последнего доступа (в микросекундах с начала эпохи Unix) для каждой строки.
Разбивка доступа пользователей
Ещё один полезный отчет – это разбивка доступа пользователей по параметру "Способ доступа" (например, интерфейс Google Аналитики, API и т.д.).
| Время последнего доступа, выраженное в микросекундах с начала отсчета | Адрес электронной почты пользователя | Способ доступа | Количество операций доступа |
|---|---|---|---|
| 1525220215028367 | Alex@example.net | Firebase | 31 |
| 1525220215555778 | Alex@example.net | Пользовательский интерфейс Google Аналитики | 1 |
| 1525220215022378 | Bola@example.net | Пользовательский интерфейс Google Аналитики | 65 |
| 1525220215026389 | Bola@example.net | Google Analytics API | 894 |
| 1525220215025631 | Charlie@example.net | Google Analytics API | 67 |
| 1525220215068325 | Mahan@example.net | Google Реклама | 3 |
Этот отчет можно создать, запросив параметры mostRecentAccessEpochTimeMicros, userEmail, accessMechanism и показатель accessCount.
В отчете содержится по одной строке для каждой комбинации пользователя и механизма доступа. Параметр mostRecentAccessEpochTimeMicros содержит информацию о последнем времени доступа пользователя к ресурсу с помощью указанного механизма.
Общие сведения о доступе к ресурсу
Можно создать отчет для ресурса без разбивки по отдельным пользователям. Например, в следующем отчете указано, как часто к ресурсу обращаются с помощью разных механизмов доступа:
| Идентификатор ресурса, к которому был получен доступ | Название ресурса, к которому был получен доступ | Способ доступа | Количество операций доступа |
|---|---|---|---|
| 12345678 | DemoApp | Firebase | 31 |
| 12345678 | DemoApp | Пользовательский интерфейс Google Аналитики | 624 |
| 12345678 | DemoApp | Google Реклама | 83 |
| 12345678 | DemoApp | Google Analytics API | 1744 |
Этот отчет можно создать, запросив параметры accessedPropertyId, accessedPropertyName, accessMechanism и показатель accessCount.
В отчете содержится по одной строке для каждой комбинации идентификатора ресурса и механизма доступа.
Доступ к отдельным данным
Чтобы создать отчет, в котором каждая строка основана на отдельной записи доступа к данным, удалите из запроса параметр mostRecentAccessEpochTimeMicros и используйте параметр epochTimeMicros. Запрашивать показатель accessCount не нужно, поскольку каждая строка отчета содержит информацию об одном случае доступа к данным.
В отчете ниже приведена подробная информация о каждом случае доступа пользователя к указанному ресурсу.
| Unix-время в микросекундах | Адрес электронной почты пользователя | Идентификатор ресурса, к которому был получен доступ | Название ресурса, к которому был получен доступ | IP-адрес пользователя | Способ доступа | Возвращенные данные о расходах | Возвращенные данные о доходе |
|---|---|---|---|---|---|---|---|
| 1525220215025371 | Bola@example.net | 12345678 | DemoApp | 1.2.3.1 | Пользовательский интерфейс Google Аналитики | true | true |
| 1525220645645645 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Пользовательский интерфейс Google Аналитики | false | false |
| 1525220211312322 | Bola@example.net | 12345678 | DemoApp | 11.22.33.11 | Google Реклама | 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 Реклама | false | false |
| 1525220214234231 | Mahan@example.net | 12345678 | DemoApp | 11.22.33.55 | Google Реклама | 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 Реклама | true | true |
Этот отчет можно создать, запросив параметры epochTimeMicros, userEmail, accessedPropertyId, accessedPropertyName, userIP, accessMechanism, costDataReturned, revenueDataReturned.