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):
refresh_token
: token odświeżania OAuth.client_id
: identyfikator klienta OAuth.client_secret
: tajny klucz klienta OAuth.developer_token
: token programisty dostępu do interfejsu API.login_customer_id
: zobacz dokumentację identyfikatora klienta.linked_customer_id
: zapoznaj się z dokumentacją dotyczącą połączonego identyfikatora klienta.json_key_file_path
(dawniejpath_to_private_key_file
): ścieżka do lokalnego pliku klucza prywatnego. Służy do uwierzytelniania przy użyciu konta usługi. Zobacz dokumentację konta usługi OAuth2.impersonated_email
(dawniejdelegate_account
): adres e-mail konta używany jako przedstawiciel. Służy do uwierzytelniania przy użyciu konta usługi. Zajrzyj do dokumentacji konta usługi OAuth2.logging
: konfiguracja logowania. Poniżej znajdziesz opis pól logowania.http_proxy
: zapoznaj się z dokumentacją serwera proxy.use_proto_plus
: określa, czy należy używać wiadomości proto-plus. Zapoznaj się z dokumentacją wiadomości 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
(dawniejGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
)GOOGLE_ADS_IMPERSONATED_EMAIL
(dawniejGOOGLE_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.