Sorgu geçmişi denetimlerini görüntüleme

Sorgu geçmişi denetimleri, Ads Data Hub hesabınızı kullanarak çalışan tüm işlerin raporunu oluşturmanıza olanak tanır. Bu sayede verilerinize kimin ne zaman eriştiğiyle ilgili soruları yanıtlayabilirsiniz.

Sorgu geçmişi denetimleri, Ads Data Hub hesabınız kullanılarak çalıştırılan tüm sorgular için günlük girişleri içeren BigQuery tabloları olarak yazılır. Hesabınızın sorgu geçmişi denetimlerini görüntülemek için ilk olarak raporu bir API aracılığıyla oluşturmanız gerekir. Her denetleme günlüğü 1 günlük veri içerir. Son 30 gün içinde herhangi bir gün için denetleme günlüğü oluşturabilirsiniz.

Sorgu geçmişi denetimleri yalnızca süper kullanıcıların erişimine açıktır. Rol tabanlı erişim hakkında daha fazla bilgi edinin.

Sorgu geçmişi denetim biçimi

Her sorgu geçmişi denetimi aşağıdaki şemayı kullanır:

Alan adı Açıklama
customer_id Ads Data Hub müşteri kimliği
ads_customer_id Alt hesabın kimliği (kullanılıyorsa customer_id ile aynı olur)
match_table_customer_id Kullanılıyorsa, eşleşme tablosunu içeren hesabın kimliği (aksi takdirde customer_id ile aynı olur)
user_email Sorguyu çalıştıran kullanıcının e-posta adresi
query_start_time Sorgunun çalışmaya başladığı saat
query_end_time Sorgunun tamamlandığı saat
query_type Analiz sorguları ve kitle sorguları arasındaki farklar
query_resource_id Sorguyla ilişkilendirilen kimlik
query_text Sorgunun SQL'i
query_parameters
query_parameters.name Sorgu parametresinin adı
query_parameters.value Sorgunun row_merge_summary parametresi aracılığıyla iletilen değer
row_merge_summary.column_name Sütunun adı
row_merge_summary.merge_type Satır birleştirme özetinin türü
row_merge_summary.constant_value Sabit değerin değeri (sabit değer kullanılmazsa boş olur)
destination_table Sorgunun yazıldığı konum (BigQuery'de)

Sorgu geçmişi denetimlerine erişme

Sorgu geçmişi denetimlerine erişmek için API'yi çağırmanız gerekir. Aşağıda API'yi çağırmaya yönelik örnek kodu bulun veya referans dokümanları inceleyip kendi sorgunuzu yazın.

API isteğinin sonuçları, API isteğinin gövdesinde belirttiğiniz BigQuery veri kümesine yazılır.


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