Veja auditorias do histórico de consultas

As auditorias do histórico de consultas permitem gerar um relatório de todas as tarefas executadas com a conta do Ads Data Hub. Isto permite determinar, por exemplo, quem acedeu aos seus dados e quando o fizeram.

As auditorias do histórico de consultas são escritas como tabelas do BigQuery que contêm entradas do registo para todas as consultas executadas com a conta do Ads Data Hub. Para ver as auditorias do histórico de consultas da conta, primeiro precisa de gerar o relatório através de uma API. Cada registo de auditoria contém dados relativos a 1 dia. Pode gerar um registo de auditoria para qualquer dia nos últimos 30 dias.

As auditorias do histórico de consultas só estão disponíveis para superutilizadores. Saiba mais acerca do acesso com base em funções

Formato das auditorias do histórico de consultas

As auditorias do histórico de consultas usam 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 usada (caso contrário, será igual a customer_id)
match_table_customer_id O ID da conta que contém a tabela de correspondência, se usada (caso contrário, será igual a customer_id)
user_email O endereço de email do utilizador que executou a consulta
query_start_time A hora em que a consulta começou a ser executada
query_end_time A hora em que a consulta terminou
query_type Distingue entre consultas de análise e consultas de públicos-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 através do parâmetro da consulta line_merge_summary
row_merge_summary.column_name O nome da coluna
row_merge_summary.merge_type O tipo de resumo da união de linhas
row_merge_summary.constant_value O valor do conjunto de constantes (será nulo se não for usada uma constante)
destination_table A localização (no BigQuery) na qual a consulta foi escrita

Aceder às auditorias do histórico de consultas

Para aceder às auditorias do histórico de consultas, precisa de chamar a API. Consulte o exemplo de código para chamar a API abaixo ou veja a documentação de referência e escreva a sua própria consulta.

Os resultados do pedido API serão escritos no conjunto de dados do BigQuery especificado no corpo do pedido 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())