Xem nhật ký truy vấn

Tính năng kiểm tra nhật ký truy vấn cho phép bạn tạo báo cáo về tất cả các công việc đã chạy bằng tài khoản Ads Data Hub của mình. Nhờ đó, bạn có thể trả lời các câu hỏi liên quan đến việc ai đã truy cập vào dữ liệu của bạn và thời điểm họ truy cập.

Bản kiểm tra nhật ký truy vấn được viết dưới dạng bảng BigQuery chứa các mục nhập nhật ký cho tất cả các truy vấn chạy bằng tài khoản Ads Data Hub của bạn. Để xem kết quả kiểm tra nhật ký truy vấn cho tài khoản của mình, trước tiên, bạn cần tạo báo cáo thông qua một API. Mỗi nhật ký kiểm tra chứa dữ liệu trong 1 ngày. Bạn có thể tạo nhật ký kiểm tra cho bất kỳ ngày nào trong vòng 30 ngày qua.

Tính năng kiểm tra nhật ký truy vấn chỉ dành cho siêu người dùng. Tìm hiểu thêm về quyền truy cập dựa trên vai trò

Định dạng kiểm tra nhật ký truy vấn

Mỗi lượt kiểm tra nhật ký truy vấn đều sử dụng giản đồ sau:

Tên trường Mô tả
customer_id Mã khách hàng Ads Data Hub
ads_customer_id Mã của tài khoản phụ, nếu được sử dụng (nếu không, sẽ giống với customer_id)
match_table_customer_id Mã của tài khoản chứa bảng so khớp, nếu được sử dụng (nếu không, sẽ giống với customer_id)
user_email Địa chỉ email của người dùng đã chạy truy vấn
query_start_time Thời gian truy vấn bắt đầu chạy
query_end_time Thời gian truy vấn chạy xong
query_type Phân biệt giữa truy vấn phân tích và truy vấn đối tượng
query_resource_id Mã nhận dạng được liên kết với cụm từ tìm kiếm
query_text SQL của truy vấn
query_parameters
query_parameters.name Tên của tham số truy vấn
query_parameters.value Giá trị được chuyển qua thông số Row_merge_summary của truy vấn
row_merge_summary.column_name Tên cột
row_merge_summary.merge_type Loại tóm tắt hợp nhất hàng
row_merge_summary.constant_value Giá trị của tập hợp hằng số (sẽ là rỗng nếu không sử dụng hằng số)
destination_table Vị trí (trong BigQuery) mà truy vấn được ghi vào

Truy cập vào kết quả kiểm tra nhật ký truy vấn

Để truy cập các kết quả kiểm tra nhật ký truy vấn, bạn cần gọi API. Tìm mã mẫu để gọi API ở bên dưới, hoặc xem tài liệu tham khảo và viết truy vấn của riêng bạn.

Kết quả của yêu cầu API sẽ được ghi vào tập dữ liệu BigQuery mà bạn chỉ định trong phần nội dung của yêu cầu 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())