Google Analytics Admin API v1 позволяет получать доступ к отчетам с помощью метода runAccessReport
. В отчете представлены записи каждый раз, когда пользователь читает данные отчетов Google Analytics. Записи о доступе сохраняются до 2 лет. Отчеты о доступе к данным доступны только пользователям с ролью администратора .
Создание отчета о доступе к данным
Отчеты о доступе к данным предоставляются методом runAccessReport .
Общие функции с основными отчетами
Запросы отчетов о доступе к данным имеют ту же семантику, что и запросы основных отчетов , для многих общих функций. Например, разбиение на страницы , фильтры измерений и спецификации диапазонов дат ведут себя в отчетах о доступе к данным так же, как и в основных отчетах.
Ознакомьтесь с обзором основных функций отчетности Data API v1 , поскольку оставшаяся часть этого документа будет посвящена функциям, специфичным для запросов отчетов о доступе к данным.
Выбор отчитывающейся организации
Подобно основной функции отчетности Data API v1, метод runAccessReport Google Analytics Admin API v1 требует, чтобы идентификатор свойства Google Analytics был указан внутри пути запроса URL-адреса в форме properties/GA_PROPERTY_ID
, например:
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
Результирующий отчет о доступе к данным будет создан на основе записей доступа к данным Google Analytics для указанного ресурса Google Analytics.
Если вы используете одну из клиентских библиотек Admin API , нет необходимости вручную изменять путь URL-адреса запроса. Большинство клиентов API предоставляют параметр property
, который ожидает строку в виде properties/GA_PROPERTY_ID
. См. фрагмент кода в конце этого руководства, где приведен пример использования клиентских библиотек.
Размеры и показатели
Размеры описывают и группируют данные доступа к вашему ресурсу. Например, измерение userEmail
указывает адрес электронной почты пользователя, который получил доступ к данным отчетов. Значения измерений в ответах отчета представляют собой строки.
Метрики представляют собой количественные измерения отчета. Метрика accessCount
возвращает общее количество записей доступа к данным.
Полный список названий параметров и показателей, доступных в запросах отчетов о доступе к данным, см. в схеме доступа к данным .
Запрос отчета о доступе к данным
Чтобы запросить отчеты о доступе к данным, создайте объект RunAccessReportRequest . Мы рекомендуем начать со следующих параметров запроса:
- По крайней мере одна действительная запись в поле диапазонов дат .
- По крайней мере одна действительная запись в поле размеров .
- Если измерение
epochTimeMicros
не используется, по крайней мере одна действительная запись в поле метрики для получения количественных данных для каждой комбинации значений измерения в отчете.
Вот пример запроса с рекомендуемыми полями. Этот запрос создаст список адресов электронной почты пользователей, время последнего доступа к указанному ресурсу в течение последних 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"
}
]
}
Сообщить об ответе
Концептуально аналогично основной функции отчетности Data API v1, ответ отчета о доступе к данным на запрос отчета о доступе представляет собой в основном заголовок и строки. Заголовок состоит из 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 | Бола@example.net | 5 |
1525220215028361 | Алекс@example.net | 36 |
1525220215027671 | Чарли@example.net | 1153 |
1525220215027341 | Махан@example.net | 1 |
Этот отчет можно создать путем запроса измеренийmostRecentAccessEpochTimeMicros userEmail
mostRecentAccessEpochTimeMicros
метрики accessCount
. Отчет содержит одну строку для каждого пользователя: измерение mostRecentAccessEpochTimeMicros
объединяет записи доступа к данным для каждого пользователя, обращающегося к свойству, и возвращает время последнего доступа (в микросекундах Unix с момента epoch ) для каждой строки.
Отчет о доступе пользователей
Еще одним примером полезного отчета является разбивка доступа пользователей по механизмам доступа (например, пользовательский интерфейс Google Analytics, API и т. д.).
Микросхемы последнего доступа к эпохе времени | Электронная почта пользователя | Механизм доступа | Количество доступов |
---|---|---|---|
1525220215028367 | Алекс@example.net | Огневая база | 31 |
1525220215555778 | Алекс@example.net | Пользовательский интерфейс Google Analytics | 1 |
1525220215022378 | Бола@example.net | Пользовательский интерфейс Google Analytics | 65 |
1525220215026389 | Бола@example.net | API Google Аналитики | 894 |
1525220215025631 | Чарли@example.net | API Google Аналитики | 67 |
1525220215068325 | Махан@example.net | Google Реклама | 3 |
Этот отчет можно создать путем запроса измеренийmostRecentAccessEpochTimeMicros userEmail
mostRecentAccessEpochTimeMicros
accessMechanism
и метрики accessCount
.
Отчет содержит одну строку для каждой комбинации пользователя/механизма доступа. mostRecentAccessEpochTimeMicros
содержит информацию о том, когда пользователь в последний раз обращался к свойству с использованием указанного механизма доступа.
Обзорный отчет о доступе к собственности
Можно создать отчет по ресурсу, не разбивая его по отдельным пользователям. Например, в следующем отчете указано, как часто осуществляется доступ к свойству с использованием различных механизмов доступа:
Идентификатор доступного ресурса | Имя доступного свойства | Механизм доступа | Количество доступов |
---|---|---|---|
12345678 | Демо-приложение | Огневая база | 31 |
12345678 | Демо-приложение | Пользовательский интерфейс Google Analytics | 624 |
12345678 | Демо-приложение | Google Реклама | 83 |
12345678 | Демо-приложение | API Google Аналитики | 1744 г. |
Этот отчет можно создать путем запроса измерений accessedPropertyId
, accessedPropertyName
, accessMechanism
и метрики accessCount
.
Отчет содержит одну строку для каждой комбинации идентификатора свойства и механизма доступа.
Отчет об индивидуальном доступе к данным
Чтобы создать отчет, в котором каждая строка основана на отдельной записи доступа к данным, опустите mostRecentAccessEpochTimeMicros
из запроса и используйте вместо него измерение epochTimeMicros
. Нет необходимости запрашивать метрику accessCount
, поскольку каждая строка отчета содержит информацию об одном случае доступа к данным.
Следующий отчет содержит подробную информацию о каждом доступе пользователя к указанному свойству.
Unix Epoch Time Micros | Электронная почта пользователя | Идентификатор доступного ресурса | Имя доступного свойства | IP-адрес пользователя | Механизм доступа | Данные о затратах возвращены | Данные о доходах возвращены |
---|---|---|---|---|---|---|---|
1525220215025371 | Бола@example.net | 12345678 | Демо-приложение | 1.2.3.1 | Пользовательский интерфейс Google Analytics | истинный | истинный |
1525220645645645 | Махан@example.net | 12345678 | Демо-приложение | 1.2.3.5 | Пользовательский интерфейс Google Analytics | ЛОЖЬ | ЛОЖЬ |
1525220211312322 | Бола@example.net | 12345678 | Демо-приложение | 22.11.33.11 | Google Реклама | истинный | ЛОЖЬ |
1525220210234221 | Алекс@example.net | 12345678 | Демо-приложение | 22.11.33.22 | Огневая база | ЛОЖЬ | ЛОЖЬ |
1525220215028368 | Алекс@example.net | 12345678 | Демо-приложение | 1.2.3.2 | Google Реклама | ЛОЖЬ | ЛОЖЬ |
1525220214234231 | Махан@example.net | 12345678 | Демо-приложение | 22.11.33.55 | Google Реклама | истинный | истинный |
1525220423423452 | Чарли@example.net | 12345678 | Демо-приложение | 1.2.3.3 | API Google Аналитики | истинный | ЛОЖЬ |
1525220132312333 | Махан@example.net | 12345678 | Демо-приложение | 1.2.3.5 | Google Реклама | истинный | истинный |
Этот отчет можно создать путем запроса измерений epochTimeMicros
, userEmail
, accessedPropertyId
, accessedPropertyName
, userIP
, accessMechanism
, costDataReturned
, revenueDataReturned
.
Клиентские библиотеки
Подробную информацию о том, как установить и настроить клиентские библиотеки , см. в кратком руководстве.
Вот пример использования клиентской библиотеки 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}")