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śniejpath_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śniejdelegate_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_PATHGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_DEVELOPER_TOKENGOOGLE_ADS_LOGIN_CUSTOMER_IDGOOGLE_ADS_LINKED_CUSTOMER_IDGOOGLE_ADS_JSON_KEY_FILE_PATH(wcześniejGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE)GOOGLE_ADS_IMPERSONATED_EMAIL(wcześniejGOOGLE_ADS_DELEGATE_ACCOUNT)GOOGLE_ADS_LOGGINGGOOGLE_ADS_HTTP_PROXYGOOGLE_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.