Konfiguration

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, der die erforderlichen Authentifizierungsinformationen enthält, die zum Senden von Anfragen erforderlich sind. Auf diese Datei wird zugegriffen, wenn ein Client mit der Methode load_from_storage initialisiert wird. Die einfachste Methode zum Generieren dieser Datei besteht darin, das Beispiel google-ads.yaml aus dem GitHub-Repository zu kopieren und es so zu ändern, dass Ihre Anmeldedaten einschließlich des Entwicklertokens, Aktualisierungstokens, Client-ID und Clientschlüssels enthalten sind.

Wenn Sie einen Speicherort für die Datei google-ads.yaml angeben möchten, können Sie den Pfad als String an die Methode übergeben, wenn Sie die Datei aufrufen:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")

Sie können auch den Pfad 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 sind und ein Pfad an die Methode übergeben wird und die obige Umgebungsvariable vorhanden ist, 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 gelesen wird, wenn Sie die load_from_env-Methode des Clients verwenden. Umgebungsvariablen sollten den gleichen Namen wie in der Datei google-ads.yaml haben, sollten jedoch in Großbuchstaben geschrieben sein und das Präfix GOOGLE_ADS_ haben. Beispielsweise sollte client_id als GOOGLE_ADS_CLIENT_ID gespeichert werden.

Umgebungsvariablen werden häufig in einer Bash-Konfigurationsdatei definiert, z. B. einer .bashrc- oder .bash_profile-Datei im Verzeichnis $HOME. 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 die Dokumentation zum Festlegen von Umgebungsvariablen in der verwendeten Shell lesen.

Hier sind einige grundlegende Schritte zum Definieren einer Umgebungsvariablen mit einer .bashrc-Datei mithilfe eines Terminals:

# 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 in der Terminalinstanz auch direkt über die Befehlszeile 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 os-Modul von Python 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 mit der Struktur der YAML-Schlüssel in der Beispieldatei google-ads.yaml übereinstimmt.

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"
    }
  }
}'

Konfiguration mit einem YAML-String

Wenn Sie eine YAML-Datei in den Arbeitsspeicher gelesen haben, können Sie sie dem Client direkt bei der Initialisierung zur Verfügung stellen. Verwenden Sie dazu 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 einem dict

Sie können ein 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

Die Konfiguration der Clientbibliothek unterstützt die folgenden Felder.

Allgemeine Felder. Diese Namen sind für eine YAML- oder Dikt-Konfiguration identisch:

  • refresh_token: Ihr OAuth-Aktualisierungstoken.
  • client_id: Ihre 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 zu „login-customer-id“.
  • linked_customer_id: Weitere Informationen finden Sie in der Dokumentation zu verknüpfter-Kunden-ID.
  • json_key_file_path (früher path_to_private_key_file): Ein Pfad zu einer lokalen privaten Schlüsseldatei. Dieser wird für die Authentifizierung über ein Dienstkonto verwendet. Weitere Informationen finden Sie in der OAuth2-Dienstkontodokumentation.
  • impersonated_email (früher delegate_account): Eine Konto-E-Mail-Adresse, die als Bevollmächtigter verwendet wird. Dies wird für die Authentifizierung über ein Dienstkonto verwendet. Weitere Informationen finden Sie in der OAuth2-Dienstkontodokumentation.
  • logging: Logging-Konfiguration. Logging-Felder werden unten beschrieben.
  • http_proxy: Weitere Informationen finden Sie in der Proxydokumentation.
  • use_proto_plus: Gibt an, ob Proto-Plus-Nachrichten verwendet werden sollen oder nicht. 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üher GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE)
  • GOOGLE_ADS_IMPERSONATED_EMAIL (früher GOOGLE_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. Weitere Informationen finden Sie im Logging-Leitfaden.

  • version: Ganzzahlwert, der eine Schemaversion darstellt.
  • disable_existing_loggers: Gibt an, ob Logger, die an anderer Stelle in der Anwendung konfiguriert wurden, deaktiviert werden sollen.
  • formatters: Wörterbücher, die verschiedene Arten von Formatierern definieren.
  • handlers: Wörterbücher, die verschiedene Handler definieren. Sie bestimmen, wo Logs geschrieben und welche Formatierungsprogramme verwendet werden.
  • loggers: Wörterbücher, die verschiedene Arten von Loggern definieren. Dazu gehören ein Handler und eine Logebene.