Klienta można skonfigurować na wiele sposobów.
Konfiguracja uwierzytelniania
Istnieje kilka sposobów zarządzania danymi logowania OAuth potrzebnymi do uzyskania dostępu do interfejsu Google Ads API. Wybrana metoda wpłynie na to, których pól konfiguracji będziesz używać. Więcej informacji znajdziesz w naszym przewodniku po uwierzytelnianiu.
Konfigurowanie za pomocą pliku YAML
Podczas inicjowania klienta możesz określić plik YAML, który zawiera niezbędne informacje do wysyłania żądań do interfejsu Google Ads API. 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żkę przekazaną do metody i zmienną środowiskową – 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 w Pythonie. 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.
Uwierzytelnianie
Używaj tylko jednej z tych grup pól, w zależności od stosowanego podejścia do uwierzytelniania:
- Jeden użytkownik z domyślnymi danymi logowania aplikacji (dokumentacja)
use_application_default_credentials: czy biblioteka ma używać domyślnych danych logowania aplikacji (ADC) do uwierzytelniania.
- Jeden użytkownik z tokenami OAuth (dokumentacja)
client_id: identyfikator klienta OAuth.client_secret: tajny klucz klienta OAuth.refresh_token: token odświeżania OAuth.
- Konto usługi (dokumentacja)
json_key_file_path: Ścieżka do lokalnego pliku klucza prywatnego. Jest on używany do uwierzytelniania za pomocą konta usługi.
Działanie biblioteki
Te pola określają działanie biblioteki:
logging: wyświetl szczegóły konfiguracji rejestrowania.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.
Konfiguracja na poziomie żądania
developer_token: WYMAGANY Twój token dewelopera umożliwiający dostęp do interfejsu API.linked_customer_id: zapoznaj się z dokumentacją dotyczącą identyfikatora klienta połączonego.login_customer_id: zapoznaj się z dokumentacją dotyczącą identyfikatora klienta logowania.
Zmienne środowiskowe
Aby skonfigurować bibliotekę za pomocą zmiennych środowiskowych, użyj tego kodu:
GOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_DEVELOPER_TOKENGOOGLE_ADS_HTTP_PROXYGOOGLE_ADS_JSON_KEY_FILE_PATHGOOGLE_ADS_LINKED_CUSTOMER_IDGOOGLE_ADS_LOGIN_CUSTOMER_IDGOOGLE_ADS_LOGGINGGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_USE_PROTO_PLUSGOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS
Konfiguracja logowania
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.