Wyświetlanie wyników kontroli historii zapytań

Kontrole historii zapytań umożliwiają generowanie raportów o wszystkich zadaniach uruchomionych na Twoim koncie Centrum danych reklam. Dzięki temu możesz się dowiedzieć, kto i kiedy miał dostęp do Twoich danych.

Wyniki kontroli historii zapytań są zapisywane jako tabele BigQuery, które zawierają wpisy logu dotyczące wszystkich zapytań wykonywanych na Twoim koncie Centrum danych reklam. Aby wyświetlić na koncie kontrole historii zapytań, musisz najpierw wygenerować raport za pomocą interfejsu API. Każdy log kontrolny zawiera dane z jednego dnia. Log kontrolny możesz wygenerować dla każdego z ostatnich 30 dni.

Kontrole historii zapytań są dostępne tylko dla superużytkowników. Więcej informacji o dostępie na podstawie roli

Format kontroli historii zapytań

Każda kontrola historii zapytań używa tego schematu:

Nazwa pola Opis
customer_id Identyfikator klienta Centrum danych reklam
ads_customer_id Identyfikator subkonta, jeśli jest używane (w przeciwnym razie zawartość tego pola będzie taka sama jak pola customer_id)
match_table_customer_id Identyfikator konta zawierającego tabelę odpowiedników, jeśli jest używana (w przeciwnym razie zawartość tego pola będzie taka sama jak pola customer_id)
user_email Adres e-mail użytkownika, który wykonał zapytanie
query_start_time Czas początku realizacji zapytania
query_end_time Czas zakończenia realizacji zapytania
query_type Rozróżnienie między zapytaniami na potrzeby analizy a zapytaniami o odbiorców
query_resource_id Identyfikator powiązany z zapytaniem
query_text Kod SQL zapytania
query_parameters
query_parameters.name Nazwa parametru zapytania
query_parameters.value Wartość przekazywana przez parametr row_merge_summary zapytania
row_merge_summary.column_name Nazwa kolumny
row_merge_summary.merge_type Typ podsumowania scalania wierszy
row_merge_summary.constant_value Wartość zestawu stałych (jeśli nie są używane żadne stałe, będzie to wartość null)
destination_table Lokalizacja (w BigQuery), w której zostało zapisane zapytanie

Dostęp do kontroli historii zapytań

Aby uzyskać dostęp do kontroli historii zapytań, musisz wywołać interfejs API. Poniżej znajdziesz przykładowy kod do wywoływania interfejsu API. Możesz też zapoznać się z dokumentacją i utworzyć własne zapytanie.

Wyniki żądania do interfejsu API będą zapisywane w zbiorze danych BigQuery wskazanym w treści żądania.


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