Klienta można skonfigurować na kilka sposobów.
Konfiguracja przy użyciu pliku YAML
Możesz określić plik YAML do inicjowania klienta, który zawiera niezbędne informacje uwierzytelniające potrzebne do wysyłania żądań. Dostęp do tego pliku jest możliwy po inicjowaniu klienta za pomocą metody load_from_storage
.
Najprostszym sposobem wygenerowania 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
, podczas wywoływania metody możesz przekazać do metody ścieżkę jako ciąg znaków:
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 jest przekazywana do metody oraz występuje ta zmienna środowiskowa, biblioteka nadaje priorytet ścieżce przekazywanej do metody.
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()
Konfiguracja ze zmiennymi środowiskowymi
Całą konfigurację klienta możesz przechowywać w postaci zmiennych środowiskowych, które będą odczytywane przy użyciu metody load_from_env
klienta. Zmienne środowiskowe powinny mieć taką samą nazwę jak zdefiniowane w pliku google-ads.yaml
, ale być zapisane wielkimi literami i mieć przedrostek przestrzeni nazw GOOGLE_ADS_
. Na przykład zapis client_id
powinien być zapisany jako GOOGLE_ADS_CLIENT_ID
.
Zmienne środowiskowe zwykle definiuje się w pliku konfiguracji bash, takim jak plik .bashrc
lub .bash_profile
, który znajduje się w katalogu $HOME
. Można je też definiować za pomocą wiersza poleceń. Pamiętaj, że te instrukcje przyjęto, że używasz bash
. Jeśli używasz innej powłoki, być może trzeba będzie zapoznać się z dokumentacją dotyczącą ustawiania zmiennych środowiskowych w używanej powłoce.
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 konfiguracji z atrybutu environ
we wbudowanym module os
Pythona. Na przykład:os.environ["GOOGLE_ADS_CLIENT_ID"]
Oto przykład zainicjowania 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
przy użyciu zmiennych środowiskowych, wartość konfiguracji musi być obiektem JSON zgodnym ze strukturą kluczy YAML w przykładowym pliku konfiguracji 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 plik YAML został odczytany w pamięci, możesz przekazać go bezpośrednio klientowi 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 przy użyciu dodatku dict
Obiekt dict
możesz przekazać 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 konfiguracji YAML czy dykta):
refresh_token
: Twój token odświeżania OAuth.client_id
: Twój identyfikator klienta OAuth.client_secret
: Twój tajny klucz klienta OAuth.developer_token
: token programisty umożliwiający dostęp do interfejsu API.login_customer_id
: zapoznaj się z dokumentacją dotyczącą identyfikatora klienta loginu.linked_customer_id
: zapoznaj się z dokumentacją identyfikatora powiązanego klienta.json_key_file_path
(dawniejpath_to_private_key_file
): ścieżka do pliku lokalnego klucza prywatnego. Służy do uwierzytelniania za pomocą konta usługi. Zapoznaj się z dokumentacją konta usługi OAuth2.impersonated_email
(dawniejdelegate_account
): adres e-mail konta używany jako osoba z przekazanym dostępem. 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
: przeczytaj 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 logowania, które są polami znajdującymi się pod polem konfiguracji logging
, pochodzą bezpośrednio z modułu wbudowanego logging.config
, ponieważ biblioteka przekazuje wszystkie pola z przestrzeni nazw logging
bezpośrednio do metody logging.config.dictConfig
. Szczegółowe informacje znajdziesz w przewodniku dotyczącym rejestrowania.
version
: wartość całkowita określająca wersję schematu.disable_existing_loggers
: określa, czy rejestratory skonfigurowane w innym miejscu aplikacji mają zostać 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óre moduły formatujące mają być używane.loggers
: słowniki definiujące różne typy rejestratorów, m.in. moduł obsługi i poziom logu.