Konfiguration

Es gibt mehrere Möglichkeiten, den Client zu konfigurieren.

Konfiguration mit YAML-Datei

Sie können beim Initialisieren des Clients eine YAML-Datei angeben, die die erforderlichen Authentifizierungsinformationen für Anfragen enthält. Der Zugriff auf diese Datei erfolgt, wenn ein Client mit der Methode load_from_storage initialisiert wird. Am einfachsten generieren Sie diese Datei, indem Sie das Beispiel google-ads.yaml aus dem GitHub-Repository kopieren und Ihre Anmeldedaten einschließlich Ihres Entwickler-Tokens, des Aktualisierungstokens, der Client-ID und des Clientschlüssels hinzufügen.

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 durch Definieren einer bestimmten Umgebungsvariable angeben:

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 – 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 in Ihrem $HOME-Verzeichnis nach der Datei:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()

Konfiguration mit Umgebungsvariablen

Sie können die gesamte Clientkonfiguration als Umgebungsvariablen speichern, die bei Verwendung der Methode load_from_env des Clients gelesen werden. Umgebungsvariablen müssen denselben Namen wie in der Datei google-ads.yaml definiert haben, sollten aber großgeschrieben und dem Namespace GOOGLE_ADS_ vorangestellt werden. client_id sollte beispielsweise 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. Beachten Sie, dass in dieser Anleitung davon ausgegangen wird, 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 Umgebungsvariable mithilfe der Datei .bashrc ü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 in der Terminalinstanz auch direkt über die Befehlszeile festgelegt werden:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

Die Methode load_from_env lädt Konfigurationsdaten aus dem Attribut environ im integrierten Python-Modul os. Beispiel: os.environ["GOOGLE_ADS_CLIENT_ID"]

Das folgende Beispiel zeigt, wie eine Clientinstanz mit einer Konfiguration aus Umgebungsvariablen initialisiert wird:

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 Beispielkonfigurationsdatei 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 eingelesen 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 einem 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

In der Konfiguration der Clientbibliothek werden die folgenden Felder unterstützt.

Allgemeine Felder (diese Namen sind unabhängig davon, ob Sie eine YAML- oder Wörterbuchkonfiguration verwenden):

  • 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 zur Kunden-ID-Anmeldung.
  • linked_customer_id: Weitere Informationen finden Sie in der Dokumentation zur verknüpften Kunden-ID.
  • json_key_file_path (früher path_to_private_key_file): Ein Pfad zu einer lokalen privaten Schlüsseldatei. Dieser wird zur Authentifizierung über ein Dienstkonto verwendet. Weitere Informationen finden Sie in der Dokumentation zu OAuth2-Dienstkonten.
  • 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 Dokumentation zu OAuth2-Dienstkonten.
  • logging: Logging-Konfiguration. 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ü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 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 ganzzahliger Wert, 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, in denen verschiedene Arten von Formatierern definiert werden.
  • handlers: Wörterbücher, mit denen verschiedene Handler definiert werden und die steuern, wo Logs geschrieben werden und welche Formatierer verwendet werden.
  • loggers: Wörterbücher, in denen verschiedene Arten von Loggern definiert werden, darunter ein Handler und eine Logebene.