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ącego niezbędnych danych uwierzytelniających do wysyłania żądań. Ten plik jest dostęp, gdy klient został zainicjowany przy użyciu metody load_from_storage. Najprostszym sposobem wygenerowania tego pliku jest skopiowanie google-ads.yaml z repozytorium GitHub i zmodyfikuj go, tak aby zawierał Twoje dane logowania, w tym token programisty, token odświeżania, identyfikator klienta i tajny klucz klienta.

Jeśli nie podasz ścieżki, biblioteka poszuka w katalogu $HOME. dla pliku:

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

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

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 do metody jest przekazywana ścieżka zmienna środowiskowa – biblioteka nadaje priorytet ścieżce, przekazywane do metody.

Konfigurowanie przy użyciu zmiennych środowiskowych

Możesz przechowywać całą konfigurację klienta jako zmienne środowiskowe, które zostanie odczytany podczas korzystania z metody load_from_env klienta. Środowisko zmienne powinny mieć taką samą nazwę jak te zdefiniowane w polu google-ads.yaml ale wszystkie muszą być wielkimi literami i poprzedzone znakiem GOOGLE_ADS_. przestrzeni nazw. Na przykład client_id powinna być przechowywana jako GOOGLE_ADS_CLIENT_ID.

Zmienne środowiskowe są często zdefiniowane w pliku konfiguracji bash, np. jako plik .bashrc lub .bash_profile znajdujący się w katalogu $HOME. Ta można również zdefiniować za pomocą wiersza poleceń. Pamiętaj, że podane tu instrukcje zakładamy, że używasz bash. Jeśli używasz innej powłoki, być może zapoznaj się z dokumentacją dotyczącą ustawiania zmiennych środowiskowych w powłoki, której używasz.

Oto kilka podstawowych czynności, które należy wykonać, aby zdefiniować zmienną środowiskową za pomocą parametru .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ć bezpośrednio w instancji terminala w wierszu poleceń:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

Metoda load_from_env wczytuje dane konfiguracji z environ we wbudowanym module os Pythona. 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, musi być obiektem JSON pasującym do struktury kluczy YAML w pliku przykład 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 odczytasz plik YAML z pamięci, możesz go przesłać bezpośrednio do klienta podczas inicjowania. 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 pliku YAML czy dyktafonu). konfiguracji):

  • 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: Zobacz login-customer-id.
  • linked_customer_id: zobacz połączony-identyfikator-klienta dokumentacji.
  • json_key_file_path (dawniej path_to_private_key_file): ścieżka do lokalnego klucza prywatnego. Służy do uwierzytelniania za pomocą usługi koncie. Zapoznaj się z dokumentacją konta usługi OAuth2.
  • impersonated_email (dawniej delegate_account): używany adres e-mail konta jako delegata. Służy do uwierzytelniania za pomocą konta usługi. Zobacz 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 Dokumentacja 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, będące polami pod konfiguracją logging są pobierane bezpośrednio z modułu wbudowanego logging.config. ponieważ biblioteka przekazuje wszystkie pola w przestrzeni nazw logging bezpośrednio do 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 rejestratorzy są skonfigurowani w innym miejscu aplikacja powinna być wyłączona.
  • formatters: słowniki definiujące różne rodzaje elementów formatujących.
  • handlers: słowniki definiowanie różnych modułów obsługi, które określają, gdzie w których zapisywane są logi i które elementy formatujące mają być używane.
  • loggers: słowniki definiujące różne typy rejestratorów, takie jak modułu obsługi i poziomu rejestrowania.