Konfiguracja

Klienta można skonfigurować na kilka sposobów.

Konfiguracja w pliku YAML

Możesz określić plik YAML, który będzie używany do inicjowania klienta, zawierający niezbędne informacje uwierzytelniające potrzebne do wysyłania żądań. Dostęp do tego pliku jest możliwy, gdy klient zostanie zainicjowany przy użyciu metody load_from_storage. Najprostszym sposobem wygenerowania tego pliku jest skopiowanie przykładowego pliku google-ads.yaml z repozytorium GitHub i zmodyfikowanie go, tak aby zawierał Twoje dane logowania, w tym token programisty, token odświeżania, identyfikator klienta i tajny klucz klienta.

Aby określić lokalizację, w której znajduje się plik google-ads.yaml, możesz przekazać do metody ścieżkę w postaci ciągu znaków:

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

Możesz też określić ścieżkę, definiując konkretną zmienną środowiskową:

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()

Jeśli podasz obie wartości – do metody i obecna jest powyższa zmienna środowiskowa – biblioteka nadaje priorytet ścieżce przekazywanej do metody.

Jeśli nie podasz ścieżki, biblioteka wyszuka plik w katalogu $HOME:

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

Konfigurowanie przy użyciu zmiennych środowiskowych

Możesz przechowywać całą konfigurację klienta jako zmienne środowiskowe, które będą odczytywane podczas korzystania z metody load_from_env klienta. Zmienne środowiskowe powinny mieć taką samą nazwę jak zdefiniowane w pliku google-ads.yaml, ale wszystkie powinny być pisane wielkimi literami i poprzedzone przestrzenią nazw GOOGLE_ADS_. Na przykład client_id powinna być przechowywana jako GOOGLE_ADS_CLIENT_ID.

Zmienne środowiskowe są zwykle zdefiniowane w pliku konfiguracji bash, np. w pliku .bashrc lub .bash_profile, który znajduje się w katalogu $HOME. Można je też zdefiniować za pomocą wiersza poleceń. W tych instrukcjach przyjęto, że używasz bash. Jeśli używasz innej powłoki, zapoznaj się z dokumentacją dotyczącą ustawiania zmiennych środowiskowych w używanej powłoce.

Oto kilka podstawowych czynności, które pozwalają zdefiniować zmienną środowiskową za pomocą pliku .bashrc za pomocą terminala:

# 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

Zmienne środowiskowe możesz też ustawić w instancji terminala bezpośrednio z poziomu wiersza poleceń:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

Metoda load_from_env wczytuje dane konfiguracji z atrybutu environ we wbudowanym module os w Pythonie. Na przykład:os.environ["GOOGLE_ADS_CLIENT_ID"]

Oto przykład inicjowania instancji klienta przy użyciu konfiguracji ze zmiennych środowiskowych:

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

Aby można było skonfigurować logging za pomocą zmiennych środowiskowych, wartość konfiguracji musi być obiektem JSON zgodnym ze strukturą kluczy YAML w przykładowym pliku konfiguracji google-ads.yaml.

Oto przykład, jak można to ustawić za pomocą pliku .bashrc:

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

Konfiguracja przy użyciu ciągu znaków YAML

Jeśli plik YAML został odczytany w pamięci, można go przekazać bezpośrednio do klienta przy inicjowaniu. Aby to zrobić, użyj metody 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)

Konfiguracja za pomocą interfejsu dict

Możesz przekazać dict bezpośrednio do metody load_from_dict. Na przykład:

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)

Pola konfiguracji

Konfiguracja biblioteki klienta obsługuje poniższe pola.

Pola ogólne (te nazwy są takie same niezależnie od tego, czy używasz konfiguracji YAML czy dyktowania):

  • refresh_token: token odświeżania OAuth.
  • client_id: identyfikator klienta OAuth.
  • client_secret: tajny klucz klienta OAuth.
  • developer_token: token programisty pozwalający na dostęp do interfejsu API.
  • login_customer_id: zapoznaj się z dokumentacją login-customer-id.
  • linked_customer_id: zapoznaj się z dokumentacją połączonych-customer-id.
  • json_key_file_path (dawniej path_to_private_key_file): ścieżka do lokalnego pliku klucza prywatnego. Służy do uwierzytelniania za pomocą konta usługi. Zapoznaj się z dokumentacją konta usługi OAuth2.
  • impersonated_email (dawniej delegate_account): adres e-mail używany na koncie przedstawiciela. Służy do uwierzytelniania za pomocą konta usługi. Zapoznaj się z dokumentacją konta usługi OAuth2.
  • logging: konfiguracja logowania. Pola logowania opisano poniżej.
  • http_proxy: więcej informacji znajdziesz w dokumentacji serwera proxy.
  • use_proto_plus: określa, czy mają być używane wiadomości protoplus. Zobacz dokumentację komunikatów buforów protokołu.

Pola ogólne jako zmienne środowiskowe:

  • 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 (dawniej GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE)
  • GOOGLE_ADS_IMPERSONATED_EMAIL (dawniej GOOGLE_ADS_DELEGATE_ACCOUNT)
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_USE_PROTO_PLUS

Pola logowania, które są polami w polu konfiguracji logging, są pobierane bezpośrednio z wbudowanego modułu logging.config, ponieważ biblioteka przekazuje wszystkie pola z przestrzeni nazw logging bezpośrednio do metody logging.config.dictConfig. Szczegółowe informacje znajdziesz w przewodniku dotyczącym logowania.

  • version: wartość całkowita określająca wersję schematu.
  • disable_existing_loggers: określa, czy rejestratory skonfigurowane w innym miejscu aplikacji powinny zostać wyłączone.
  • formatters: słowniki definiujące różne rodzaje elementów formatujących.
  • handlers: słowniki definiujące różne moduły obsługi, które określają, gdzie zapisywane są dzienniki i które elementy formatujące mają być używane.
  • loggers: słowniki definiujące różne typy rejestratorów, które obejmują moduł obsługi i poziom logowania.