Konfiguracja

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

Możesz skonfigurować klienta na kilka różnych 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 uwierzytelniające niezbędne do wysłania żądania. Ten plik jest dostępny po zainicjowaniu klienta za pomocą metody load_from_storage. Najprostszym sposobem na wygenerowanie tego pliku jest skopiowanie przykładu 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 wywołać ścieżkę jako ciąg 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 określoną 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 jest przekazywana do metody oraz powyższa zmienna środowiskowa, to biblioteka określa priorytet ścieżki przekazywanej do metody.

Jeśli nie podasz ścieżki, biblioteka będzie w katalogu $HOME znaleźć ten plik:

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

Konfiguracja ze zmiennymi środowiskowymi

Całą konfigurację klienta możesz przechowywać jako zmienne środowiskowe, które zostaną odczytane, gdy użyjesz metody load_from_env klienta. Zmienne środowiskowe powinny mieć tę samą nazwę, co zostały zdefiniowane w pliku google-ads.yaml, ale powinny zawierać tylko wielkie litery i poprzedzone spacjami GOOGLE_ADS_. Na przykład plik client_id powinien być przechowywany 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ż definiować za pomocą wiersza poleceń. Pamiętaj, że w instrukcjach przyjęliśmy, że używasz bash, jeśli używasz innej powłoki, może być konieczne zapoznanie się z dokumentacją dotyczącą ustawiania zmiennych środowiskowych w powłoce, której używasz.

Oto podstawowe czynności pozwalające 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 poziomu 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 osPythona&#39. 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 konfiguracji 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 z użyciem 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 z użyciem dict

Możesz przekazać dict 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 (są to te same nazwy 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 rejestrowania, czyli pola poniżej pola 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 logowania.

  • version: wartość w formie liczby całkowitej reprezentująca wersję schematu.
  • disable_existing_loggers: określa, czy rejestratory skonfigurowane w aplikacji są 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ą miejsce zapisywania logów oraz formaty, których mają używać.
  • loggers: słowniki definiujące różne typy rejestratorów, obejmujące moduł obsługi i poziom rejestrowania.