Konfiguracja

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

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

Konfiguracja z użyciem pliku YAML

Możesz określić plik YAML, który będzie używany podczas inicjowania klienta zawierającego informacje o uwierzytelnianiu niezbędne do wysyłania żądań. Ten plik jest dostępny po zainicjowaniu klienta za pomocą metody load_from_storage. Najprostszym sposobem na wygenerowanie tego pliku jest skopiowanie przykładowego repozytorium google-ads.yaml z repozytorium GitHub i zmodyfikowanie go w celu dodania do niego swoich danych logowania, w tym tokena programisty, tokena odświeżania, identyfikatora klienta oraz tajnego klucza klienta.

Aby określić lokalizację pliku google-ads.yaml, możesz wywoływać ścieżkę w postaci ciągu znaków przy wywołaniu tej metody:

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 będzie przekazywana do metody oraz zmienna środowiskowa, priorytet ścieżki będzie wskazywać priorytet ścieżki przekazywanej do metody.

Jeśli nie podasz ścieżki, plik będzie znajdować się w katalogu $HOME pliku:

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

Konfiguracja przy użyciu zmiennych środowiskowych

Całą konfigurację klienta możesz zapisać jako zmienne środowiskowe, które będą odczytane przy użyciu metody load_from_env klienta. Zmienne środowiskowe powinny mieć taką samą nazwę jak zdefiniowane w pliku google-ads.yaml, ale powinny być zapisane wielkimi literami i poprzedzone przestrzenią nazw GOOGLE_ADS_. Na przykład client_id powinien być zapisany jako GOOGLE_ADS_CLIENT_ID.

Zmienne środowiskowe są zwykle definiowane w pliku konfiguracji bash, takim jak plik .bashrc lub .bash_profile w katalogu $HOME. Można je też określać za pomocą wiersza poleceń. Pamiętaj, że w instrukcjach używasz bash, jeśli używasz innej powłoki, sprawdź dokumentację dotyczącą ustawiania zmiennych środowiskowych w używanej powłoce.

Oto kilka podstawowych kroków, które pozwolą Ci 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żna też ustawić w instancji terminala bezpośrednio 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 we wbudowanym module os w Pythonie. Na przykład: os.environ["GOOGLE_ADS_CLIENT_ID"]

Oto przykład inicjowania instancji klienta z konfiguracją 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, który można skonfigurować 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 odczytałeś plik YAML w pamięci, możesz go udostępnić bezpośrednio klientowi 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 przy użyciu dict

dict można przekazać bezpośrednio do metody load_from_dict. 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 następujące pola.

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

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, które są polami poniżej pola konfiguracji logging, pochodzą 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 rejestrowania.

  • version: liczba całkowita reprezentująca wersję schematu.
  • disable_existing_loggers: określa, czy rejestratory skonfigurowane w innym miejscu aplikacji powinny być wyłączone.
  • formatters: słowniki definiujące różne rodzaje formatów.
  • handlers: słowniki definiujące różne moduły obsługi, które określają, gdzie są zapisywane logi i których formatów należy używać.
  • loggers: słowniki definiujące różne typy rejestratorów, które obejmują moduł obsługi i poziom rejestrowania.