Audit-Logs zum Abfrageverlauf abrufen

Mithilfe von Audit-Logs zum Abfrageverlauf können Sie Berichte zu allen Jobs erstellen, die über Ihr Ads Data Hub-Konto ausgeführt werden. So sehen Sie, wer wann auf Ihre Daten zugegriffen hat.

Audit-Logs zum Abfrageverlauf werden als BigQuery-Tabellen geschrieben, die Logeinträge für alle Abfragen enthalten, die über Ihr Ads Data Hub-Konto ausgeführt werden. Wenn Sie Audit-Logs zum Abfrageverlauf für Ihr Konto abrufen möchten, müssen Sie zuerst über eine API den Bericht generieren. Jedes Audit-Log enthält die Daten eines Tages. Sie können ein Audit-Log für jeden Tag innerhalb der letzten 30 Tage erstellen.

Audit-Logs zum Abfrageverlauf sind nur für Superuser verfügbar. Weitere Informationen zum rollenbasierten Zugriff

Format von Audit-Logs zum Abfrageverlauf

Für Audit-Logs zum Abfrageverlauf wird das folgende Schema verwendet:

Feldname Beschreibung
customer_id Ads Data Hub-Kundennummer
ads_customer_id ID des Unterkontos, falls verwendet; andernfalls entspricht die ID der customer_id
match_table_customer_id ID des Kontos mit der Match-Table, falls verwendet; andernfalls entspricht die ID der customer_id
user_email E-Mail-Adresse des Nutzers, der die Abfrage ausgeführt hat
query_start_time Zeitpunkt des Abfragebeginns
query_end_time Zeitpunkt des Abfrageendes
query_type Es wird zwischen Analyse- und Zielgruppenabfragen unterschieden
query_resource_id ID, die der Abfrage zugeordnet ist
query_text SQL der Abfrage
query_parameters
query_parameters.name Name des Abfrageparameters
query_parameters.value Der Wert, der über den Abfrageparameter „row_merge_summary“ übergeben wird
row_merge_summary.column_name Name der Spalte
row_merge_summary.merge_type Typ der Zeilenzusammenfassung
row_merge_summary.constant_value Wert der Konstanten (ist null, wenn keine Konstante verwendet wird)
destination_table Ort (in BigQuery), an dem die Abfrage gespeichert wurde

Auf Audit-Logs zum Abfrageverlauf zugreifen

Wenn Sie auf die Audit-Logs zum Abfrageverlauf zugreifen möchten, müssen Sie die API aufrufen. Beispielcode zum API-Aufruf finden Sie unten. Sie können sich aber auch die Referenzdokumentation ansehen und eine eigene Abfrage schreiben.

Die Ergebnisse der API-Anfrage werden in das BigQuery-Dataset geschrieben, das Sie im Text der API-Anfrage angeben.


"""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())