Com esse tipo de auditoria, é possível gerar um relatório de todos os trabalhos executados usando sua conta do Ads Data Hub. Assim, você pode responder a perguntas sobre quem acessou seus dados e quando.
As auditorias do histórico de consultas são gravadas como tabelas do BigQuery que contêm entradas de registro de todas as consultas executadas usando sua conta do Ads Data Hub. Para conferir as auditorias do histórico de consultas da sua conta, primeiro é necessário gerar o relatório usando uma API. Cada registro de auditoria contém dados referentes a um dia. Você pode gerar um registro de auditoria para qualquer um dos últimos 30 dias.
As auditorias do histórico de consultas estão disponíveis apenas para superusuários. Saiba mais sobre o acesso com base em papéis.
Formato de auditoria do histórico de consultas
Cada auditoria usa o seguinte esquema:
Nome do campo | Descrição |
---|---|
customer_id | O ID de cliente do Ads Data Hub. |
ads_customer_id | O ID da subconta, se usado (idêntico a customer_id). |
match_table_customer_id | O ID da conta que inclui a tabela de correspondências, se usado (idêntico a customer_id). |
user_email | Endereço de e-mail do usuário que executou a consulta. |
query_start_time | Hora em que a consulta começou a ser executada. |
query_end_time | Hora em que a execução da consulta terminou. |
query_type | Diferencia entre consultas de análise e de público-alvo. |
query_resource_id | O ID associado à consulta. |
query_text | O SQL da consulta. |
query_parameters | |
query_parameters.name | O nome do parâmetro da consulta. |
query_parameters.value | O valor transmitido pela linha row_merge_summary do parâmetro da consulta. |
row_merge_summary.column_name | O nome da coluna. |
row_merge_summary.merge_type | O tipo de resumo da mesclagem de linhas. |
row_merge_summary.constant_value | O valor do conjunto de constantes ("nulo" se nenhuma constante for usada). |
destination_table | O local (no BigQuery) em que a consulta foi criada. |
Acessar auditorias do histórico de consultas
Para acessar as auditorias do histórico de consultas, chame a API. Confira abaixo um exemplo de código para chamar a API ou consulte a documentação de referência e crie sua própria consulta.
Os resultados da solicitação de API vão ser gravados no conjunto de dados do BigQuery que você especificar no corpo da solicitação.
"""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())