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