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 und die erforderlichen Authentifizierungsinformationen für Anfragen enthält. Auf diese Datei wird zugegriffen, 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 so ändern, dass es Ihre Anmeldedaten enthält, einschließlich Entwicklertoken, Aktualisierungstoken, Client-ID und Client-Secret.

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 den Speicherort der google-ads.yaml-Datei 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

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 wird an die Methode übergeben und die oben genannte Umgebungsvariable ist vorhanden –, priorisiert die Bibliothek den an die Methode übergebenen Pfad.

Konfiguration mithilfe von Umgebungsvariablen

Sie können die gesamte Clientkonfiguration als Umgebungsvariablen speichern, die bei Verwendung der load_from_env-Methode des Clients gelesen werden. Umgebungsvariablen sollten denselben Namen wie die in der Datei google-ads.yaml definierten Variablen haben, aber in Großbuchstaben geschrieben und mit dem Namespace GOOGLE_ADS_ vorangestellt werden. Beispielsweise sollte client_id als GOOGLE_ADS_CLIENT_ID gespeichert werden.

Umgebungsvariablen werden in der Regel in einer Bash-Konfigurationsdatei wie einer .bashrc- oder .bash_profile-Datei im Verzeichnis $HOME definiert. Sie können auch über die Befehlszeile definiert werden. Bei dieser Anleitung wird davon ausgegangen, dass Sie bash verwenden. Wenn Sie eine andere Shell verwenden, müssen Sie möglicherweise die Dokumentation zur Festlegung von Umgebungsvariablen in der von Ihnen verwendeten Shell lesen.

So definieren Sie eine Umgebungsvariable mit 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 in der Terminalinstanz ü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 des integrierten os-Moduls von Python. 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()

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 das 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 bei der Initialisierung direkt an den Client weitergeben. 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 einer dict

Sie können einen 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 Clientbibliothekskonfiguration unterstützt die folgenden Felder.

Allgemeine Felder (diese Namen sind unabhängig davon identisch, ob Sie eine YAML- oder eine Dictionary-Konfiguration 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: Siehe Dokumentation zu „login-customer-id“.
  • linked_customer_id: Weitere Informationen finden Sie in der Dokumentation zur verknüpften Kundennummer.
  • json_key_file_path (früher path_to_private_key_file): Pfad zu einer lokalen privaten Schlüsseldatei. Dieser wird für die Authentifizierung mit einem Dienstkonto verwendet. Weitere Informationen finden Sie in der Dokumentation zu OAuth2-Dienstkonten.
  • impersonated_email (früher delegate_account): Eine E-Mail-Adresse des Kontos, die als delegierte Adresse verwendet wird. Dieser wird für die Authentifizierung mit einem Dienstkonto verwendet. Weitere Informationen finden Sie in der Dokumentation zu OAuth2-Dienstkonten.
  • logging: Logging-Konfiguration. Protokollierungsfelder werden unten beschrieben.
  • http_proxy: Siehe Proxy-Dokumentation.
  • use_proto_plus: 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, 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 weitergibt. Ausführliche Informationen finden Sie in der Anleitung zum Logging.

  • version: Ein Ganzzahlwert, der eine Schemaversion darstellt.
  • disable_existing_loggers: Gibt an, ob an anderer Stelle in der Anwendung konfigurierte Logger deaktiviert werden sollen.
  • formatters: Wörterbücher, in denen verschiedene Formatierungsarten definiert sind.
  • handlers: Wörterbücher, die verschiedene Handler definieren, die steuern, wo Protokolle geschrieben werden und welche Formate verwendet werden sollen.
  • loggers: Wörterbücher, in denen verschiedene Arten von Protokollern definiert werden, einschließlich eines Handlers und einer Protokollebene.