Konfiguracja

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

Konfigurowanie za pomocą pliku YAML

Możesz określić plik YAML, który będzie używany podczas inicjowania klienta i który zawiera niezbędne informacje uwierzytelniające potrzebne do wysyłania żądań. Dostęp do tego pliku jest uzyskiwany, gdy klient jest inicjowany za pomocą metody load_from_storage. Najłatwiej jest wygenerować ten plik, kopiując przykład z repozytorium GitHub i modyfikując go tak, aby zawierał Twoje dane logowania, w tym token dewelopera, token odświeżania, identyfikator klienta i klucz tajny klienta.google-ads.yaml

Jeśli nie podasz ścieżki, biblioteka będzie szukać pliku w katalogu $HOME:

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

Aby określić lokalizację pliku google-ads.yaml, możesz przekazać ścieżkę jako ciąg tekstowy do metody podczas jej wywoływania:

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 – ścieżka zostanie przekazana do metody i powyższa zmienna środowiskowa będzie obecna – biblioteka nada priorytet ścieżce przekazanej do metody.

Konfiguracja za pomocą zmiennych środowiskowych

Całą konfigurację klienta możesz przechowywać jako zmienne środowiskowe, które będą odczytywane podczas korzystania z metody load_from_env klienta. Zmienne środowiskowe powinny mieć takie same nazwy jak te zdefiniowane w pliku google-ads.yaml, ale powinny być pisane wielkimi literami i mieć przedrostek GOOGLE_ADS_. Na przykład wartość client_id powinna być przechowywana jako GOOGLE_ADS_CLIENT_ID.

Zmienne środowiskowe są zwykle definiowane w pliku konfiguracyjnym powłoki Bash, np. w pliku .bashrc lub .bash_profile znajdującym się w katalogu $HOME. Można je też zdefiniować za pomocą wiersza poleceń. Pamiętaj, że te instrukcje zakładają, że używasz bash. Jeśli używasz innej powłoki, może być konieczne zapoznanie się z dokumentacją, aby dowiedzieć się, jak ustawić zmienne środowiskowe w używanej powłoce.

Oto podstawowe czynności, które należy wykonać, aby zdefiniować zmienną środowiskową za pomocą pliku .bashrc w terminalu:

# 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żna też ustawić bezpośrednio w instancji terminala z wiersza poleceń:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

Metoda load_from_env wczytuje dane konfiguracyjne z atrybutu environ wbudowanego modułu os Pythona. Na przykład:os.environ["GOOGLE_ADS_CLIENT_ID"]

Oto przykład inicjowania instancji klienta z konfiguracją z zmiennych środowiskowych:

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

Aby skonfigurować logging za pomocą zmiennych środowiskowych, wartość konfiguracji musi być obiektem JSON, który pasuje do struktury kluczy YAML w przykładowym pliku konfiguracji google-ads.yaml.

Oto przykład konfiguracji 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 za pomocą ciągu YAML

Jeśli plik YAML został wczytany do pamięci, możesz go przekazać bezpośrednio do klienta podczas inicjowania. Wystarczy, że użyjesz 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ą 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 te pola.

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

  • refresh_token: token odświeżania OAuth.
  • client_id: identyfikator klienta OAuth.
  • client_secret: tajny klucz klienta OAuth.
  • developer_token: token dewelopera umożliwiający dostęp do interfejsu API.
  • login_customer_id: zapoznaj się z dokumentacją dotyczącą identyfikatora klienta logowania.
  • linked_customer_id: zapoznaj się z dokumentacją dotyczącą identyfikatora klienta połączonego.
  • json_key_file_path (wcześniej 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 (wcześniej delegate_account): adres e-mail konta używany jako przedstawiciel. Służy do uwierzytelniania za pomocą konta usługi. Zapoznaj się z dokumentacją konta usługi OAuth2.
  • logging: konfiguracja logowania. Pola logowania zostały opisane poniżej.
  • http_proxy: zapoznaj się z dokumentacją serwera proxy.
  • use_proto_plus: czy używać wiadomości proto-plus. Zapoznaj się z dokumentacją wiadomości Protobuf.

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

Pola rejestrowania, czyli pola znajdujące się pod polem konfiguracji logging, są wyprowadzane bezpośrednio z wbudowanego modułu logging.config, ponieważ biblioteka przekazuje wszystkie pola w przestrzeni nazw logging bezpośrednio do metody logging.config.dictConfig. Szczegółowe informacje znajdziesz w przewodniku po logowaniu.

  • version: Liczba całkowita reprezentująca wersję schematu.
  • disable_existing_loggers: określa, czy rejestratory skonfigurowane w innych miejscach aplikacji mają być wyłączone.
  • formatters: słowniki definiujące różne rodzaje formatowania.
  • handlers: słowniki definiujące różne moduły obsługi, które określają, gdzie mają być zapisywane logi i które formaty mają być używane.
  • loggers: słowniki definiujące różne typy rejestratorów, które obejmują moduł obsługi i poziom rejestrowania.