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 für die Anfragen erforderlichen Authentifizierungsinformationen enthalten. Diese Datei ist Der Zugriff erfolgt, wenn ein Client mit der Methode load_from_storage initialisiert wird. Am einfachsten erstellen Sie diese Datei, indem Sie den google-ads.yaml aus dem GitHub-Repository abrufen und Ihre Anmeldedaten, einschließlich Entwicklertoken, Aktualisierungstoken, Client-ID und Clientschlüssel.

Wenn Sie keinen Pfad angeben, sucht die Bibliothek im Verzeichnis $HOME. für die Datei:

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

Um einen Speicherort anzugeben, an dem sich die Datei google-ads.yaml befindet, können Sie den Pfad als String für die Methode an, wenn sie aufgerufen wird:

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, wird ein Pfad an die Methode und an die obige Methode übergeben. vorhanden ist, priorisiert die Bibliothek den Pfad. an die Methode übergeben.

Konfiguration mithilfe von Umgebungsvariablen

Sie können Ihre gesamte Clientkonfiguration als Umgebungsvariablen speichern, wird gelesen, wenn die load_from_env-Methode des Clients verwendet wird. Umgebung Variablen sollten denselben Namen haben wie die in google-ads.yaml definierten Variablen. -Datei, sollte aber aus Großbuchstaben bestehen und das Präfix GOOGLE_ADS_ haben -Namespace auf sie zugegriffen werden. Beispiel: client_id sollte als GOOGLE_ADS_CLIENT_ID gespeichert werden.

Umgebungsvariablen werden üblicherweise in einer Bash-Konfigurationsdatei definiert, als .bashrc- oder .bash_profile-Datei im Verzeichnis $HOME. Sie können auch über die Befehlszeile definiert werden. Beachten Sie, dass diese Anleitung nehmen Sie an, Sie nutzen bash. Bei einer anderen Shell in der Dokumentation zum Festlegen von Umgebungsvariablen die Sie verwenden.

Hier sind einige grundlegende Schritte zum Definieren einer Umgebungsvariable mithilfe eines .bashrc-Objekts. 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 Ihrer Terminalinstanz festgelegt werden über die Befehlszeile ein:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

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

Hier ein Beispiel für die Initialisierung einer Clientinstanz mit Konfigurationseinstellungen aus Umgebungsvariablen:

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

Damit logging über Umgebungsvariablen konfiguriert werden kann, muss die Konfiguration muss ein JSON-Objekt sein, das der Struktur der YAML-Schlüssel im Beispiel google-ads.yaml Konfigurationsdatei.

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 direkt dem bei der Initialisierung des Clients. 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-Datei oder ein Wörterbuch verwenden) Konfiguration):

  • 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: Sehen Sie sich die Dokumentation zur Log-in-Kundennummer.
  • linked_customer_id: Sehen Sie sich die Verknüpfte Kundennummer an. Dokumentation.
  • json_key_file_path (früher path_to_private_key_file): Ein Pfad zu einem lokale private Schlüsseldatei. Dies wird für die Authentifizierung mit einem Dienst verwendet Konto. Weitere Informationen finden Sie in der Dokumentation zum OAuth2-Dienstkonto.
  • impersonated_email (früher delegate_account): Eine Konto-E-Mail-Adresse, die verwendet wird als Bevollmächtigter. Dies wird für die Authentifizierung mit einem Dienstkonto verwendet. Weitere Informationen finden Sie unter in der Dokumentation zum OAuth2-Dienstkonto
  • 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ü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 der logging-Konfiguration sind werden direkt aus dem integrierten logging.config-Modul abgeleitet, da die Bibliothek alle Felder unter dem Namespace logging übergibt. direkt in den logging.config.dictConfig . Ausführliche Informationen finden Sie im Logging-Leitfaden.

  • version: ein ganzzahliger Wert, der eine Schemaversion darstellt.
  • disable_existing_loggers: Gibt an, ob Protokollierungen an anderer Stelle im sollte deaktiviert sein.
  • formatters: Wörterbücher, die verschiedene Arten von Formatierern definieren.
  • handlers: Wörterbücher, die verschiedene Handler definieren, mit denen gesteuert wird, wo in welche Logs geschrieben werden und welche Formatierer verwendet werden sollen.
  • loggers: Wörterbücher, die verschiedene Arten von Protokollierungen definieren, darunter: einen Handler und eine Logebene.