Es gibt mehrere Möglichkeiten, den Client zu konfigurieren.
Konfiguration mit YAML-Datei
Sie können eine YAML-Datei angeben, die beim Initialisieren des Clients verwendet werden soll und die erforderlichen Authentifizierungsinformationen zum Senden von Anfragen enthält. Auf diese Datei wird zugegriffen, wenn ein Client mit der Methode load_from_storage
initialisiert wird.
Die einfachste Möglichkeit zum Generieren dieser Datei besteht darin, das Beispiel google-ads.yaml
aus dem GitHub-Repository zu kopieren und so zu ändern, dass es Ihre Anmeldedaten enthält, einschließlich Entwickler-Token, Aktualisierungstoken, Client-ID und Clientschlüssel.
Wenn Sie einen Speicherort angeben möchten, an dem sich die Datei google-ads.yaml
befindet, können Sie den Pfad beim Aufruf als String an die Methode ü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
os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Wenn beide Werte angegeben werden – ein Pfad wird an die Methode übergeben und die obige Umgebungsvariable ist vorhanden –, priorisiert die Bibliothek den an die Methode übergebenen Pfad.
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()
Konfiguration mithilfe von Umgebungsvariablen
Sie können Ihre gesamte Clientkonfiguration als Umgebungsvariablen speichern, die bei Verwendung der Methode load_from_env
des Clients gelesen werden. Umgebungsvariablen sollten denselben Namen wie die in der Datei google-ads.yaml
definierten Namen haben, aber alle Großbuchstaben und dem Namespace GOOGLE_ADS_
vorangestellt. Beispiel: client_id
sollte als GOOGLE_ADS_CLIENT_ID
gespeichert werden.
Umgebungsvariablen werden üblicherweise in einer Bash-Konfigurationsdatei wie der Datei .bashrc
oder .bash_profile
im Verzeichnis $HOME
definiert. Sie können auch über die Befehlszeile definiert werden. In dieser Anleitung wird davon ausgegangen, dass Sie bash
verwenden. Wenn Sie eine andere Shell verwenden, müssen Sie möglicherweise in der Dokumentation zum Festlegen von Umgebungsvariablen in der verwendeten Shell nachsehen.
Hier sind einige grundlegende Schritte zum Definieren einer Umgebungsvariable mithilfe einer .bashrc
-Datei über ein 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.
$ src ~/.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
1234567890
Mit der Methode load_from_env
werden Konfigurationsdaten aus dem Attribut environ
in das integrierte Python-Modul os
geladen. Beispiel:
os.environ["GOOGLE_ADS_CLIENT_ID"]
Hier ein Beispiel für die Initialisierung einer Clientinstanz mit einer Konfiguration aus Umgebungsvariablen:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Zum Konfigurieren von logging
über Umgebungsvariablen muss der Konfigurationswert ein JSON-Objekt sein, das der Struktur der YAML-Schlüssel in der Beispieldatei google-ads.yaml
entspricht.
Hier ein Beispiel, 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"
}
}
}'
Konfiguration mit einem YAML-String
Wenn Sie eine YAML-Datei in den Arbeitsspeicher gelesen haben, können Sie sie dem Client bei der Initialisierung direkt zur Verfügung stellen. Dazu verwenden Sie einfach die Methode load_from_string
.
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "rb") as handle:
yaml = handle.read()
client = GoogleAdsClient.load_from_string(yaml)
Konfiguration mit dict
Sie können dict
direkt an die Methode load_from_dict
übergeben. Beispiel:
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"developer_token": "abcdef123456",
"refresh_token": "1//0abcdefghijklABCDEF",
"client_id": "123456-abcdef.apps.googleusercontent.com",
"client_secret": "aBcDeFgHiJkL"}
client = GoogleAdsClient.load_from_dict(credentials)
Konfigurationsfelder
Bei der Konfiguration der Clientbibliothek werden die folgenden Felder unterstützt.
Allgemeine Felder (diese Namen sind unabhängig davon, ob Sie eine YAML- oder Dict-Konfiguration verwenden):
refresh_token
: Ihr OAuth-Aktualisierungstoken.client_id
: Deine OAuth-Client-ID.client_secret
: Ihr OAuth-Clientschlüssel.developer_token
: Ihr Entwicklertoken für den Zugriff auf die API.login_customer_id
: Weitere Informationen finden Sie in der Dokumentation zur Log-in-Kundennummer.linked_customer_id
: Weitere Informationen finden Sie in der Dokumentation zur verknüpften Kundennummer.json_key_file_path
(früherpath_to_private_key_file
): Ein Pfad zu einer lokalen privaten Schlüsseldatei. Dies wird für die Authentifizierung mit einem Dienstkonto verwendet. Weitere Informationen finden Sie in der Dokumentation zum OAuth2-Dienstkonto.impersonated_email
(früherdelegate_account
): Eine Konto-E-Mail-Adresse, die als Bevollmächtigter verwendet wird. Dies wird für die Authentifizierung mit einem Dienstkonto verwendet. Weitere Informationen finden Sie in der Dokumentation zu OAuth2-Dienstkonten.logging
: Logging-Konfiguration. Die Logging-Felder werden unten beschrieben.http_proxy
: Weitere Informationen finden Sie in der Proxy-Dokumentation.use_proto_plus
: Gibt an, ob Proto-Plus-Nachrichten verwendet werden sollen. Weitere Informationen finden Sie in der Dokumentation zu Protobuf-Nachrichten.
Allgemeine Felder als Umgebungsvariablen:
GOOGLE_ADS_CONFIGURATION_FILE_PATH
GOOGLE_ADS_REFRESH_TOKEN
GOOGLE_ADS_CLIENT_ID
GOOGLE_ADS_CLIENT_SECRET
GOOGLE_ADS_DEVELOPER_TOKEN
GOOGLE_ADS_LOGIN_CUSTOMER_ID
GOOGLE_ADS_LINKED_CUSTOMER_ID
GOOGLE_ADS_JSON_KEY_FILE_PATH
(früherGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
)GOOGLE_ADS_IMPERSONATED_EMAIL
(früherGOOGLE_ADS_DELEGATE_ACCOUNT
)GOOGLE_ADS_LOGGING
GOOGLE_ADS_HTTP_PROXY
GOOGLE_ADS_USE_PROTO_PLUS
Logging-Felder, die Felder unter dem Konfigurationsfeld logging
sind, 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 ganzzahliger Wert, der eine Schemaversion darstellt.disable_existing_loggers
: Gibt an, ob Protokollierungen, 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, wo Logs geschrieben und welche Formatierer verwendet werden sollen.loggers
: Wörterbücher, mit denen verschiedene Protokollierungstypen definiert werden, darunter ein Handler und eine Logebene.