Konfiguracja

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

Konfiguracja za pomocą pliku YAML

Podczas inicjowania klienta możesz podać plik YAML zawierający niezbędne informacje uwierzytelniające potrzebne do wysyłania żądań. Dostęp do tego pliku jest uzyskiwany podczas inicjowania klienta za pomocą metody load_from_storage. Najprostszym sposobem wygenerowania tego pliku jest skopiowanie przykładu google-ads.yaml z repozytorium GitHub i zmodyfikowanie go tak, aby zawierał Twoje dane logowania, w tym token dewelopera, token odświeżania, identyfikator klienta i obiekt tajny klienta.

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 znaków do metody podczas jej wywołania:

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

Ścieżkę możesz też określić, 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żkę przekazaną do metody oraz zmienną środowiskową – 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ć te same nazwy co zmienne zdefiniowane w pliku google-ads.yaml, ale powinny być pisane wielkimi literami i mieć prefiks GOOGLE_ADS_. Na przykład wartość client_id powinna być przechowywana jako GOOGLE_ADS_CLIENT_ID.

Zmienne środowiskowe są zwykle definiowane w pliku konfiguracyjnym bash, takim jak plik .bashrc lub .bash_profile znajdujący 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 innego powłoki, zapoznaj się z dokumentacją dotyczącą ustawiania zmiennych środowiskowych w powłoce, której używasz.

Oto kilka podstawowych czynności związanych z definiowaniem zmiennej środowiskowej 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ć w terminalu bezpośrednio z wiersza poleceń:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

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

Oto przykład inicjowania instancji klienta z konfiguracją z użyciem 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 odpowiadającym strukturze kluczy YAML w przykładowym pliku konfiguracji google-ads.yaml.

Oto przykład ustawienia tego parametru 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 znaków YAML

Jeśli plik YAML został odczytany do pamięci, możesz go przekazać bezpośrednio klientowi podczas inicjalizacji. 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ą dict

Możesz przekazać dict bezpośrednio metodzie 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 tych pól są takie same niezależnie od tego, czy używasz konfiguracji YAML czy dict):

  • refresh_token: Twój token odświeżania OAuth.
  • client_id: identyfikator klienta OAuth.
  • client_secret: tajny klucz klienta OAuth.
  • developer_token: Twój token dewelopera umożliwiający dostęp do interfejsu API.
  • login_customer_id: zapoznaj się z dokumentacją login-customer-id.
  • linked_customer_id: zapoznaj się z dokumentacją dotyczącą połączonego identyfikatora klienta.
  • json_key_file_path (wcześniej path_to_private_key_file): ścieżka do lokalnego pliku klucza prywatnego. Służy on do uwierzytelniania za pomocą konta usługi. Zapoznaj się z dokumentacją dotyczącą konta usługi OAuth2.
  • impersonated_email (wcześniej delegate_account): adres e-mail konta używany przez przedstawiciela. Służy on do uwierzytelniania za pomocą konta usługi. Zapoznaj się z dokumentacją dotyczącą konta usługi OAuth2.
  • logging: konfiguracja logowania. Pola rejestrowania zostały opisane poniżej.
  • http_proxy: zapoznaj się z dokumentacją serwera proxy.
  • use_proto_plus: określa, czy mają być używane wiadomości proto-plus. Zapoznaj się z dokumentacją dotyczącą 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 w ramach pola konfiguracji logging, są pobierane 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 rejestrowaniu danych.

  • version: wartość całkowita reprezentująca wersję schema.
  • disable_existing_loggers: czy skonfigurowane w innym miejscu w aplikacji rejestratory mają być wyłączone.
  • formatters: słowniki definiujące różne typy formaterów.
  • handlers: słowniki definiujące różne moduły obsługi, które określają, dokąd mają być zapisywane dzienniki i które formatowanie należy stosować.
  • loggers: słowniki definiujące różne typy rejestratorów, które obejmują: element obsługi i poziom logowania.