Klienta można skonfigurować na kilka różnych sposobów.
Konfiguracja za pomocą pliku YAML
Podczas inicjowania klienta możesz podać plik YAML zawierający niezbędne informacje uwierzytelniające potrzebne do wysyłania żądań. Dostęp do tego pliku jest uzyskiwany podczas inicjowania 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 dewelopera, token odświeżania, identyfikator klienta i obiekt tajny klienta.
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 znaków do metody podczas jej wywołania:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
Ścieżkę możesz też określić, 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 oraz 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ć te same nazwy co zmienne zdefiniowane w pliku google-ads.yaml
, ale powinny być pisane wielkimi literami i mieć prefiks GOOGLE_ADS_
. Na przykład wartość client_id
powinna być przechowywana jako GOOGLE_ADS_CLIENT_ID
.
Zmienne środowiskowe są zwykle definiowane w pliku konfiguracyjnym bash, takim jak plik .bashrc
lub .bash_profile
znajdujący 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 innego powłoki, zapoznaj się z dokumentacją dotyczącą ustawiania zmiennych środowiskowych w powłoce, której używasz.
Oto kilka podstawowych czynności związanych z definiowaniem zmiennej środowiskowej 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ć w terminalu bezpośrednio z wiersza poleceń:
$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890
Metoda load_from_env
wczytuje dane konfiguracji z atrybutu environ
w wbudowanym module os
w Pythonie. Na przykład:os.environ["GOOGLE_ADS_CLIENT_ID"]
Oto przykład inicjowania instancji klienta z konfiguracją z użyciem 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 odpowiadającym strukturze kluczy YAML w przykładowym pliku konfiguracji google-ads.yaml
.
Oto przykład ustawienia tego parametru 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 znaków YAML
Jeśli plik YAML został odczytany do pamięci, możesz go przekazać bezpośrednio klientowi podczas inicjalizacji. 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 za pomocą dict
Możesz przekazać dict
bezpośrednio metodzie 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 tych pól są takie same niezależnie od tego, czy używasz konfiguracji YAML czy dict):
refresh_token
: Twój token odświeżania OAuth.client_id
: identyfikator klienta OAuth.client_secret
: tajny klucz klienta OAuth.developer_token
: Twój token dewelopera umożliwiający dostęp do interfejsu API.login_customer_id
: zapoznaj się z dokumentacją login-customer-id.linked_customer_id
: zapoznaj się z dokumentacją dotyczącą połączonego identyfikatora klienta.json_key_file_path
(wcześniejpath_to_private_key_file
): ścieżka do lokalnego pliku klucza prywatnego. Służy on do uwierzytelniania za pomocą konta usługi. Zapoznaj się z dokumentacją dotyczącą konta usługi OAuth2.impersonated_email
(wcześniejdelegate_account
): adres e-mail konta używany przez przedstawiciela. Służy on do uwierzytelniania za pomocą konta usługi. Zapoznaj się z dokumentacją dotyczącą konta usługi OAuth2.logging
: konfiguracja logowania. Pola rejestrowania zostały opisane poniżej.http_proxy
: zapoznaj się z dokumentacją serwera proxy.use_proto_plus
: określa, czy mają być używane wiadomości proto-plus. Zapoznaj się z dokumentacją dotyczącą 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 w ramach pola konfiguracji logging
, są pobierane 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 rejestrowaniu danych.
version
: wartość całkowita reprezentująca wersję schema.disable_existing_loggers
: czy skonfigurowane w innym miejscu w aplikacji rejestratory mają być wyłączone.formatters
: słowniki definiujące różne typy formaterów.handlers
: słowniki definiujące różne moduły obsługi, które określają, dokąd mają być zapisywane dzienniki i które formatowanie należy stosować.loggers
: słowniki definiujące różne typy rejestratorów, które obejmują: element obsługi i poziom logowania.