Les audits de l'historique des requêtes vous permettent de générer un rapport concernant toutes les tâches exécutées à l'aide de votre compte Ads Data Hub. Cela vous permet de savoir qui a accédé à vos données et quand.
Les audits de l'historique des requêtes sont écrits sous forme de tables BigQuery contenant les entrées de journal de toutes les requêtes exécutées via votre compte Ads Data Hub. Pour afficher les audits de l'historique des requêtes dans votre compte, vous devez d'abord générer le rapport via une API. Chaque journal d'audit contient les données d'une journée. Vous pouvez générer un journal d'audit pour n'importe lequel des 30 derniers jours.
Les audits de l'historique des requêtes ne sont disponibles que pour les super-utilisateurs. En savoir plus sur l'accès basé sur les rôles
Format d'audit de l'historique des requêtes
Chaque audit de l'historique des requêtes contient les éléments suivants :
Nom du champ | Description |
---|---|
customer_id | Numéro client Ads Data Hub |
ads_customer_id | ID du sous-compte, s'il est utilisé (sinon, il sera identique à customer_id) |
match_table_customer_id | ID du compte contenant le tableau de correspondance, s'il est utilisé (sinon, il sera identique à customer_id) |
user_email | Adresse e-mail de l'utilisateur ayant exécuté la requête |
query_start_time | Heure de début de l'exécution de la requête |
query_end_time | Heure de fin de l'exécution de la requête |
query_type | Distingue les requêtes d'analyse des requêtes d'audience |
query_resource_id | ID associé à la requête |
query_text | Code SQL de la requête |
query_parameters | |
query_parameters.name | Nom du paramètre de la requête |
query_parameters.value | Valeur transmise via le paramètre "row_merge_summary" de la requête |
row_merge_summary.column_name | Nom de la colonne |
row_merge_summary.merge_type | Type de résumé de la fusion des lignes |
row_merge_summary.constant_value | Valeur de l'ensemble de constantes (nulle si aucune constante n'est utilisée) |
destination_table | Emplacement (dans BigQuery) dans lequel la requête a été écrite |
Accéder aux audits de l'historique des requêtes
Pour accéder aux audits de l'historique des requêtes, vous devez appeler l'API. Pour ce faire, un exemple de code est disponible ci-dessous. Vous pouvez également consulter la documentation de référence et rédiger votre propre requête.
Les résultats de la requête API seront écrits dans l'ensemble de données BigQuery que vous spécifiez dans le corps de la requête 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())