La versión 1 de la API de Google Analytics Admin te permite acceder a los informes con
el runAccessReport
. El informe proporciona registros de cada vez que un usuario lee Google Analytics.
de datos de informes. Los registros de acceso se conservan por un máximo de 2 años. Acceso a los datos
Los informes solo están disponibles para los usuarios que tienen el rol de Administrador.
Cómo crear un informe de acceso a los datos
Los informes de acceso a los datos se proporcionan runAccessReport.
Funciones compartidas con los informes principales
Las solicitudes de informes de acceso a los datos tienen la misma semántica con el informe principal solicitudes, para muchas funciones compartidas. Por ejemplo: Las especificaciones de Paginación, Filtros de dimensiones y Períodos se comportan igual en los informes de acceso a los datos como informes principales.
Familiarícese con la descripción general de la funcionalidad principal de informes de la API de datos v1, ya que el resto de este se centrará en las funciones específicas de las solicitudes de informe de acceso a los datos.
Cómo seleccionar una entidad denunciante
Al igual que en la sección Informes principales,
funcionalidad de la
Versión 1 de la API de datos, runAccessReport
de la API de Admin de Google Analytics v1 requiere la cuenta de Google Analytics
identificador de propiedad que se especificará
Una ruta de solicitud de URL con el formato properties/GA_PROPERTY_ID
, por ejemplo:
POST https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runAccessReport
El informe de acceso a los datos resultante se generará en función de la API de registros de acceso a datos para la propiedad de Google Analytics especificada.
Si usas una de las bibliotecas cliente de la API de Admin,
no es necesario manipular la ruta de la URL de solicitud de forma manual. La mayoría de los clientes de API
proporciona un parámetro property
que espera una cadena en la forma de
properties/GA_PROPERTY_ID
Consulta el fragmento de código en la
final de esta guía para ver un ejemplo del uso de las bibliotecas cliente.
Dimensiones y métricas
Dimensiones
describir y agrupar los datos de acceso de tu propiedad. Por ejemplo, la dimensión
userEmail
indica el correo electrónico del usuario que accedió a los datos de los informes.
Los valores de dimensión en las respuestas del informe son cadenas.
Métricas
representan las mediciones cuantitativas de un informe. La métrica accessCount
devuelve el número total de registros de acceso a los datos.
Consulta el Esquema de acceso a los datos para obtener una lista completa de las dimensiones y de métricas disponibles en las solicitudes de informes de acceso a los datos.
Solicitud de informe de acceso a los datos
Para solicitar informes de acceso a los datos, crea un objeto RunAccessReportRequest. Mié se recomienda comenzar con estos parámetros de solicitud:
- Al menos una entrada válida en la fecha rangos .
- Al menos una entrada válida en el dimensiones .
- Si no usas la dimensión
epochTimeMicros
, debes ingresar al menos una entrada válida en el métricas para recibir datos cuantitativos de cada combinación de valores de dimensión en un informe.
Esta es una solicitud de ejemplo con los campos recomendados. Esta consulta generará un lista de correos electrónicos de los usuarios, la hora más reciente en la que accedieron a la propiedad especificada durante el rango de los últimos 7 días y el recuento de acceso correspondiente.
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"
}
]
}
Denunciar respuesta
Es conceptualmente similar a los informes principales
funcionalidad de la API de datos v1,
el Informe de acceso a los datos
Respuesta de la
una solicitud de informe de acceso es principalmente un encabezado y filas. El encabezado consiste en
AccessDimensionHeaders
y
AccessMetricHeaders
que enumeran las columnas del informe.
Cada informe de acceso
fila consta de lo siguiente:
AccessDimensionValues
y
AccessMetricValues
para las columnas del informe. El orden de las columnas es coherente en la
la solicitud, el encabezado y cada fila.
A continuación, se muestra una respuesta de ejemplo para la solicitud de ejemplo anterior:
{
"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
}
Filtra los registros de acceso
Usa el dimensionFilter campo de la RunAccessReportRequest restringir la respuesta del informe a valores de dimensión específicos que coincidan con el filtro.
En el siguiente ejemplo, se genera un informe basado en el acceso a datos individuales
de acceso, filtrando los registros de acceso de un único usuario con correo electrónico
Alex@example.net
El informe contiene la hora de cada registro de acceso, la duración
correo electrónico y dirección 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"
}
}
}
}
De forma similar, el
metricFilter
campo de la
RunAccessReportRequest
El objeto se puede usar para restringir la respuesta del informe a valores de métricas específicos,
coincidan con el filtro.
El siguiente ejemplo genera un informe que contiene correos electrónicos y recuentos de acceso de Todos los usuarios que accedieron a la propiedad especificada más de 100 veces
HTTP
{
"dateRanges": [
{
"startDate": "7daysAgo",
"endDate": "today"
}
],
"dimensions": [
{
"dimensionName": "userEmail"
}
],
"metricFilter": {
"accessFilter": {
"numericFilter": {
"operation": "GREATER_THAN",
"value": {
"int64Value": 100
}
},
"fieldName": "accessCount"
}
},
"metrics": [
{
"metricName": "accessCount"
}
]
}
Informes de ejemplo
Estos son algunos informes de muestra que puedes probar.
Informe de acceso por usuario más reciente
El siguiente informe de acceso de muestra que se puede crear con runAccessReport
:
Tiempo del período de acceso más reciente en micrómetros | Correo electrónico del usuario | Recuento de accesos |
---|---|---|
1525220215025371 | Bola@example.net | 5 |
1525220215028361 | Alex@example.net | 36 |
1525220215027671 | Charlie@example.net | 1153 |
1525220215027341 | Mahan@example.net | 1 |
Este informe se puede generar a través de consultas
dimensiones mostRecentAccessEpochTimeMicros
,
userEmail
y la métrica accessCount
. El
el informe contiene una fila por cada usuario: mostRecentAccessEpochTimeMicros
agrega registros de acceso a los datos para cada usuario que accede a la propiedad
y devuelve la hora del último acceso (en microsegundos de Unix desde la
época) para cada fila.
Informe de desglose de acceso de los usuarios
Otro ejemplo de un informe útil es el desglose de los accesos de los usuarios por tipo de acceso. Mecanismo (p. ej., interfaz de usuario de Google Analytics, API, etcétera)
Tiempo de época de acceso más reciente en micrómetros | Correo electrónico del usuario | Mecanismo de acceso | Recuento de accesos |
---|---|---|---|
1525220215028367 | Alex@example.net | Firebase | 31 |
1525220215555778 | Alex@example.net | Interfaz de usuario de Google Analytics | 1 |
1525220215022378 | Bola@example.net | Interfaz de usuario de Google Analytics | 65 |
1525220215026389 | Bola@example.net | API de Google Analytics | 894 |
1525220215025631 | Charlie@example.net | API de Google Analytics | 67 |
1525220215068325 | Mahan@example.net | Google Ads | 3 |
Este informe se puede generar a través de consultas
dimensiones mostRecentAccessEpochTimeMicros
,
userEmail
, accessMechanism
y accessCount
métrica.
El informe contiene una fila por cada combinación de usuario y mecanismo de acceso. El
mostRecentAccessEpochTimeMicros
dimensión contiene la última vez que un usuario
accedió a la propiedad con el mecanismo de acceso especificado.
Informe de descripción general de acceso a la propiedad
Es posible generar un informe de una propiedad sin desglosar los datos usuarios individuales. Por ejemplo, el siguiente informe indica la frecuencia con la que una propiedad se accede a través de diferentes mecanismos de acceso:
ID de propiedad a la que se accedió | Nombre de la propiedad a la que se accedió | Mecanismo de acceso | Recuento de accesos |
---|---|---|---|
12345678 | DemoApp | Firebase | 31 |
12345678 | DemoApp | Interfaz de usuario de Google Analytics | 624 |
12345678 | DemoApp | Google Ads | 83 |
12345678 | DemoApp | API de Google Analytics | 1744 |
Este informe se puede generar a través de consultas
dimensiones accessedPropertyId
,
accessedPropertyName
, accessMechanism
y accessCount
métrica.
El informe contiene una fila por cada combinación de ID de propiedad y mecanismo de acceso.
Informe de accesos a datos individuales
Para generar un informe en el que cada fila se base en un acceso a datos individual
omite la dimensión mostRecentAccessEpochTimeMicros
de una consulta y
usa la dimensión epochTimeMicros
en su lugar. No es necesario consultar
accessCount
, ya que cada fila del informe contiene información sobre un
único caso de acceso a los datos.
El siguiente informe contiene información detallada sobre cada vez que un usuario accedió a la propiedad especificada.
Tiempo de la época Unix en micrómetros | Correo electrónico del usuario | ID de propiedad a la que se accedió | Nombre de la propiedad a la que se accedió | IP del usuario | Mecanismo de acceso | Datos de costos mostrados | Datos de ingresos obtenidos |
---|---|---|---|---|---|---|---|
1525220215025371 | Bola@example.net | 12345678 | DemoApp | 1.2.3.1 | Interfaz de usuario de Google Analytics | verdadero | verdadero |
1525220645645645 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Interfaz de usuario de Google Analytics | falso | falso |
1525220211312322 | Bola@example.net | 12345678 | DemoApp | 11.22.33.11 | Google Ads | verdadero | falso |
1525220210234221 | Alex@example.net | 12345678 | DemoApp | 11.22.33.22 | Firebase | falso | falso |
1525220215028368 | Alex@example.net | 12345678 | DemoApp | 1.2.3.2 | Google Ads | falso | falso |
1525220214234231 | Mahan@example.net | 12345678 | DemoApp | 11.22.33.55 | Google Ads | verdadero | verdadero |
1525220423423452 | Charlie@example.net | 12345678 | DemoApp | 1.2.3.3 | API de Google Analytics | verdadero | falso |
1525220132312333 | Mahan@example.net | 12345678 | DemoApp | 1.2.3.5 | Google Ads | verdadero | verdadero |
Este informe se puede generar a través de consultas
dimensiones epochTimeMicros
, userEmail
accessedPropertyId
, accessedPropertyName
, userIP
, accessMechanism
,
costDataReturned
, revenueDataReturned
.
Bibliotecas cliente
Consulta la Guía de inicio rápido para obtener una explicación sobre a instalar y configurar bibliotecas cliente.
Este es un ejemplo en el que se usa la biblioteca cliente de Python que ejecuta una consulta de acceso a los datos e imprime la respuesta.
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}")