Sie können die Python-Clientbibliothek mit einer YAML-Datei, Umgebungsvariablen, einem YAML-String oder einem dict konfigurieren.
Authentifizierungskonfiguration
Es gibt mehrere Möglichkeiten, die OAuth-Anmeldedaten zu verwalten, die für den Zugriff auf die Google Ads API erforderlich sind. Der gewählte Ansatz wirkt sich darauf aus, welche Konfigurationsfelder Sie verwenden. Weitere Informationen finden Sie im Leitfaden zur Authentifizierung.
Konfiguration mit YAML-Datei
Sie können eine YAML-Datei angeben, die beim Initialisieren des Clients verwendet werden soll. Diese Datei muss die erforderlichen Informationen für Anfragen an die Google Ads API enthalten. Auf diese Datei wird zugegriffen, wenn ein Client mit der Methode load_from_storage initialisiert wird. Am einfachsten lässt sich diese Datei generieren, indem Sie das Beispiel google-ads.yaml aus dem GitHub-Repository kopieren und so ändern, dass es Ihre Anmeldedaten enthält, einschließlich Aktualisierungstoken, Client-ID und Clientschlüssel.
Wenn Sie keinen Pfad angeben, sucht die Bibliothek im Verzeichnis $HOME nach der Datei:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Wenn Sie einen Speicherort für die Datei google-ads.yaml angeben möchten, können Sie den Pfad beim Aufrufen der Methode als String übergeben:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
Sie können den Pfad auch angeben, indem Sie eine bestimmte Umgebungsvariable definieren:
import os
from google.ads.googleads.client import GoogleAdsClient
os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
client = GoogleAdsClient.load_from_storage()
Wenn beide Werte angegeben sind (ein Pfad wird an die Methode übergeben und die Umgebungsvariable ist vorhanden), priorisiert die Bibliothek den an die Methode übergebenen Pfad.
Konfiguration mit Umgebungsvariablen
Sie können die gesamte Clientkonfiguration als Umgebungsvariablen speichern, die beim Verwenden der Methode load_from_env des Clients gelesen werden. Umgebungsvariablen sollten denselben Namen wie die in der Datei google-ads.yaml definierten Variablen haben, müssen aber in Großbuchstaben geschrieben sein und das Präfix GOOGLE_ADS_ haben. Beispiel: client_id sollte als GOOGLE_ADS_CLIENT_ID gespeichert werden.
Umgebungsvariablen werden häufig in einer Bash-Konfigurationsdatei wie einer .bashrc- oder .bash_profile-Datei im Verzeichnis $HOME definiert. Sie können auch über die Befehlszeile definiert werden.
Hier sind einige grundlegende Schritte zum Definieren einer Umgebungsvariablen mit einer .bashrc-Datei in einem Terminal:
# Append the line "export GOOGLE_ADS_CLIENT_ID=1234567890" to
# the bottom of your .bashrc file.
echo "export GOOGLE_ADS_CLIENT_ID=1234567890" >> ~/.bashrc
# Update your bash environment to use the most recently updated
# version of your .bashrc file.
source ~/.bashrc
Umgebungsvariablen können auch direkt über die Befehlszeile in Ihrer Terminalinstanz festgelegt werden:
export GOOGLE_ADS_CLIENT_ID=1234567890
echo $GOOGLE_ADS_CLIENT_ID
Die Methode load_from_env lädt Konfigurationsdaten aus dem Attribut environ im integrierten Python-Modul os. Beispiel:
os.environ["GOOGLE_ADS_CLIENT_ID"]
Hier sehen Sie ein Beispiel für die Initialisierung einer Clientinstanz mit der Konfiguration aus Umgebungsvariablen:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Wenn Sie logging über Umgebungsvariablen konfigurieren möchten, muss der Konfigurationswert ein JSON-Objekt sein, das der Struktur der YAML-Schlüssel in der Beispielkonfigurationsdatei google-ads.yaml entspricht.
Hier ein Beispiel dafür, wie dies mit einer .bashrc-Datei festgelegt werden kann:
export GOOGLE_ADS_LOGGING='{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"default_fmt": {
"format": "[%(asctime)s - %(levelname)s] %(message).5000s",
"datefmt": "%Y-%m-%d %H:%M:%S"
}
},
"handlers": {
"default_handler": {
"class": "logging.StreamHandler",
"formatter": "default_fmt"
}
},
"loggers": {
"": {
"handlers": ["default_handler"],
"level": "INFO"
}
}
}'
Wichtiger Hinweis: Wenn die Umgebungsvariable GOOGLE_ADS_CONFIGURATION_FILE_PATH beim Aufruf der Methode load_from_env festgelegt ist, werden die Konfigurationswerte aus der Datei google-ads.yaml im angegebenen Pfad abgerufen und nicht aus den zuvor beschriebenen Umgebungsvariablen.
Konfiguration mit einem YAML-String
Wenn Sie eine YAML-Datei in den Arbeitsspeicher eingelesen haben, können Sie sie bei der Initialisierung direkt an den Client übergeben. Verwenden Sie dazu die Methode load_from_string:
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "r", encoding="utf-8") as handle:
yaml_content = handle.read()
client = GoogleAdsClient.load_from_string(yaml_content)
Konfiguration mit einem dict
Sie können einen dict direkt an die Methode load_from_dict übergeben. Beispiel:
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"refresh_token": "YOUR_REFRESH_TOKEN",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
Konfigurationsfelder
Die Konfiguration der Clientbibliothek unterstützt die folgenden Felder.
Authentifizierung
Verwenden Sie je nach Authentifizierungsansatz nur eine dieser Feldgruppen:
- Einzelner Nutzer mit Standardanmeldedaten für Anwendungen (Dokumentation)
use_application_default_credentials: Gibt an, ob die Bibliothek Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) für die Authentifizierung verwenden soll (unterstützt ingoogle-adsv28.3.0und höher).
- Einzelner Nutzer mit OAuth-Tokens (Dokumentation)
client_id: Ihre OAuth-Client-ID.client_secret: Ihr OAuth-Clientschlüssel.refresh_token: Ihr OAuth-Aktualisierungstoken.
- Dienstkonto (Dokumentation)
json_key_file_path: Ein Pfad zu einer lokalen privaten Schlüsseldatei. Dies wird für die Authentifizierung mit einem Dienstkonto verwendet.impersonated_email: Optionale E-Mail-Adresse des Kontos, dessen Identität bei der Verwendung der domainweiten Delegierung von Google Workspace übernommen werden soll.
Bibliotheksverhalten
Diese Felder bestimmen das Verhalten der Bibliothek:
logging: Weitere Informationen finden Sie unter Logkonfiguration.http_proxy: Weitere Informationen finden Sie in der Proxy-Dokumentation.use_proto_plus: Erforderlich. Gibt an, ob Proto-Plus-Nachrichten (TrueoderFalse) verwendet werden sollen. Weitere Informationen finden Sie in der Dokumentation zu Protobuf-Nachrichten.
Konfiguration auf Anfrageebene
linked_customer_id: Weitere Informationen finden Sie in der Dokumentation zu „linked-customer-id“.login_customer_id: Weitere Informationen finden Sie in der Dokumentation zu „login-customer-id“.endpoint: Optionale alternative Google Ads API-Endpunktadresse.ads_assistant: Optionale Kennung für den Header des Google Ads API-Assistenten.
Umgebungsvariablen
So konfigurieren Sie die Bibliothek mit Umgebungsvariablen:
GOOGLE_ADS_ADS_ASSISTANTGOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_ENDPOINTGOOGLE_ADS_HTTP_PROXYGOOGLE_ADS_IMPERSONATED_EMAILGOOGLE_ADS_JSON_KEY_FILE_PATHGOOGLE_ADS_LINKED_CUSTOMER_IDGOOGLE_ADS_LOGIN_CUSTOMER_IDGOOGLE_ADS_LOGGINGGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_USE_PROTO_PLUSGOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS(unterstützt abv28.3.0)
Logkonfiguration
Logfelder, also Felder unter dem Konfigurationsfeld logging, werden direkt aus dem integrierten Modul logging.config abgeleitet, da die Bibliothek alle Felder unter dem Namespace logging direkt an die Methode logging.config.dictConfig übergibt. Ausführliche Informationen finden Sie im Logging-Leitfaden.
version: Ein Ganzzahlwert, der eine Schemaversion darstellt.disable_existing_loggers: Gibt an, ob Logger, die an anderer Stelle in der Anwendung konfiguriert sind, deaktiviert werden sollen.formatters: Wörterbücher, die verschiedene Arten von Formatierern definieren.handlers: Wörterbücher, die verschiedene Handler definieren, die steuern, wohin Logs geschrieben werden und welche Formatierer verwendet werden sollen.loggers: Wörterbücher, die verschiedene Arten von Loggern definieren, einschließlich eines Handlers und einer Logebene.