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_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śniejGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
)GOOGLE_ADS_IMPERSONATED_EMAIL
(wcześniejGOOGLE_ADS_DELEGATE_ACCOUNT
)GOOGLE_ADS_LOGGING
GOOGLE_ADS_HTTP_PROXY
GOOGLE_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.