Las auditorías del historial de consultas te permiten generar un informe de todos los trabajos ejecutados con tu cuenta del Centro de Datos de Anuncios. Esto te permite responder preguntas relacionadas con quién accedió a tus datos y cuándo lo hizo.
Las auditorías del historial de consultas se escriben como tablas de BigQuery que contienen entradas de registro de todas las consultas ejecutadas con su cuenta del Centro de Datos de Anuncios. Para ver las auditorías del historial de consultas de tu cuenta, primero debes generar el informe a través de una API. Cada registro de auditoría contiene los datos de 1 día. Puedes generar un registro de auditoría para cualquier día de los últimos 30 días.
Las auditorías del historial de consultas solo están disponibles para los superusuarios. Más información sobre el acceso basado en roles
Formato de auditoría del historial de consultas
Cada auditoría del historial de consultas usa el siguiente esquema:
Nombre del campo | Descripción |
---|---|
customer_id | El ID de cliente del Centro de Datos de Anuncios |
ads_customer_id | El ID de la cuenta secundaria, si se utiliza (de lo contrario, será idéntico a customer_id) |
match_table_customer_id | El ID de la cuenta que contiene la tabla de coincidencias, si se utiliza (de lo contrario, será idéntico a customer_id) |
user_email | Dirección de correo electrónico del usuario que ejecutó la consulta |
query_start_time | El momento en el que comenzó a ejecutarse la consulta |
query_end_time | La hora a la que terminó de ejecutarse la consulta |
query_type | Diferencia entre las consultas de análisis y las consultas de público. |
query_resource_id | El ID asociado con la consulta |
query_text | El SQL de la consulta |
query_parameters | |
query_parameters.name | El nombre del parámetro de la consulta |
query_parameters.value | El valor que se pasa por medio del parámetro de la consulta rows_merge_summary |
row_merge_summary.column_name | El nombre de la columna |
row_merge_summary.merge_type | El tipo de resumen de combinación de filas |
row_merge_summary.constant_value | El valor del conjunto de constantes (será nulo si no se usa ninguna constante) |
destination_table | La ubicación (en BigQuery) en la que se escribió la consulta |
Accede a las auditorías del historial de consultas
Para acceder a las auditorías del historial de consultas, deberás llamar a la API. Encuentra el código de muestra para llamar a la API a continuación o consulta la documentación de referencia y escribe tu propia consulta.
Los resultados de la solicitud a la API se escribirán en el conjunto de datos de BigQuery que especifiques en el cuerpo de la solicitud a la API.
"""This sample shows how to create a query history audit.
For the program to execute successfully, ensure that you run it using Python 3.
"""
from __future__ import print_function
from json import dumps
from google_auth_oauthlib import flow
from googleapiclient.discovery import build
appflow = flow.InstalledAppFlow.from_client_secrets_file(
# Replace client_secrets.json with your own client secret file.
'client_secrets.json',
scopes=['https://www.googleapis.com/auth/adsdatahub'])
appflow.run_local_server()
credentials = appflow.credentials
developer_key = input('Developer key: ').strip()
service = build('adsdatahub', 'v1', credentials=credentials,
developerKey=developer_key)
def pprint(x):
print(dumps(x, sort_keys=True, indent=4))
customer_id = input('Customer ID (e.g. "customers/123"): ').strip()
bq_project = input('Destination BigQuery project ID (e.g. "your-project"): ').strip()
dataset_id = input('Destination BigQuery dataset (e.g. "your-dataset"): ').strip()
start = input('The start date for your query history audit. Formatted as "mm/dd/yyyy": ').strip().split('/')
end = input('The end date for your query history audit. Should be 1 day later than start_date. Formatted as "mm/dd/yyyy": ').strip().split('/')
choice = input("Do you want to enter a timezone? Defaults to UTC otherwise. (y/n) ")
if choice.lower() == 'y':
timezone = input("Timezone (e.g. 'UTC'): ")
else:
timezone = 'UTC'
body = {
'project_id': bq_project,
'dataset': dataset_id,
'start_date': {
'year': start[2],
'day': start[1],
'month': start[0]
},
'end_date': {
'year': end[2],
'day': end[1],
'month': end[0]
},
'time_zone': timezone
}
pprint(service.customers().exportJobHistory(customer=customer_id, body=body).execute())