Bibliotekę klienta dla języka Python możesz skonfigurować za pomocą pliku YAML, zmiennych środowiskowych, ciągu znaków YAML lub dict.
Konfiguracja uwierzytelniania
Dane logowania OAuth potrzebne do uzyskania dostępu do interfejsu Google Ads API można zarządzać na kilka sposobów. Wybrane podejście wpływa na to, których pól konfiguracji używasz. Więcej informacji znajdziesz w przewodniku po uwierzytelnianiu.
Konfiguracja za pomocą pliku YAML
Podczas inicjowania klienta możesz określić plik YAML, który zawiera informacje niezbędne 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. 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 odświeżania, identyfikator klienta i tajny klucz 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ł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
from google.ads.googleads.client import GoogleAdsClient
os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
client = GoogleAdsClient.load_from_storage()
Jeśli podane są obie wartości – ścieżka jest przekazywana do metody i zmienna środowiskowa jest obecna – biblioteka traktuje priorytetowo ścieżkę przekazaną do metody.
Konfiguracja za pomocą zmiennych środowiskowych
Możesz przechowywać całą konfigurację klienta jako zmienne środowiskowe, które są odczytywane podczas używania metody load_from_env klienta. Zmienne środowiskowe powinny mieć takie same nazwy jak te zdefiniowane w pliku google-ads.yaml, ale muszą być pisane wielkimi literami i poprzedzone przestrzenią nazw GOOGLE_ADS_. Na przykład client_id należy zapisać jako GOOGLE_ADS_CLIENT_ID.
Zmienne środowiskowe są zwykle definiowane w pliku konfiguracji powłoki bash, takim jak plik .bashrc lub .bash_profile znajdujący się w katalogu $HOME. Można je też zdefiniować za pomocą wiersza poleceń.
Oto kilka podstawowych kroków, 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.
source ~/.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
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 inicjowania instancji klienta z konfiguracją ze 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 odpowiada strukturze kluczy YAML w przykładowym pliku konfiguracji google-ads.yaml.
Oto przykład, jak można to 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"
}
}
}'
Ważna uwaga: jeśli zmienna środowiskowa GOOGLE_ADS_CONFIGURATION_FILE_PATH jest ustawiona, gdy wywoływana jest metoda load_from_env, wartości konfiguracji są pobierane z pliku google-ads.yaml znajdującego się w określonej ścieżce, a nie ze zmiennych środowiskowych opisanych wcześniej.
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. Aby tak się stało, użyj metody load_from_string:
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "r", encoding="utf-8") as handle:
yaml_content = handle.read()
client = GoogleAdsClient.load_from_string(yaml_content)
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 = {
"refresh_token": "YOUR_REFRESH_TOKEN",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
Pola konfiguracji
Konfiguracja biblioteki klienta obsługuje te pola.
Uwierzytelnianie
Użyj tylko jednej z tych grup pól, w zależności od tego, jakiego podejścia do uwierzytelniania używasz:
- Pojedynczy użytkownik z domyślnym uwierzytelnianiem aplikacji (dokumentacja)
use_application_default_credentials: określa, czy biblioteka powinna używać domyślnego uwierzytelniania aplikacji (ADC) do uwierzytelniania (obsługiwane wgoogle-adsv28.3.0i nowszych wersjach).
- Pojedynczy użytkownik z tokenami OAuth (dokumentacja)
client_id: identyfikator klienta OAuth.client_secret: tajny klucz klienta OAuth.refresh_token: Twój token odświeżania OAuth.
- Konto usługi (dokumentacja)
json_key_file_path: ścieżka do lokalnego pliku klucza prywatnego. Służy do uwierzytelniania za pomocą konta usługi.impersonated_email: opcjonalny adres e-mail konta, pod które ma się podszywać, gdy używana jest przekazywanie dostępu w całej domenie Google Workspace.
Działanie biblioteki
Te pola określają zachowanie biblioteki:
logging: wyświetlanie szczegółów konfiguracji logów.http_proxy: zapoznaj się z dokumentacją serwera proxy.use_proto_plus: Wymagany. Określa, czy używać wiadomości proto-plus (TruelubFalse). Zobacz dokumentację wiadomości protobuf.
Konfiguracja na poziomie żądania
linked_customer_id: zapoznaj się z dokumentacją dotyczącą identyfikatora połączonego klienta.login_customer_id: zapoznaj się z dokumentacją dotyczącą identyfikatora klienta logowania.endpoint: opcjonalny alternatywny adres punktu końcowego interfejsu Google Ads API.ads_assistant: opcjonalny identyfikator nagłówka asystenta interfejsu Google Ads API.
Zmienne środowiskowe
Aby skonfigurować bibliotekę za pomocą zmiennych środowiskowych, użyj tych zmiennych:
GOOGLE_ADS_ADS_ASSISTANTGOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_ENDPOINTGOOGLE_ADS_HTTP_PROXYGOOGLE_ADS_IMPERSONATED_EMAILGOOGLE_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(obsługiwane wv28.3.0i nowszych wersjach)
Konfiguracja logu
Pola logu, które znajdują się pod polem konfiguracji logging, pochodzą bezpośrednio z wbudowanego modułu logging.config, ponieważ biblioteka przekazuje wszystkie pola z 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 logery skonfigurowane w innym miejscu aplikacji powinny 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 kontrolują, gdzie zapisywane są logi i które formaty powinny być używane.loggers: słowniki definiujące różne typy loggerów, które obejmują moduł obsługi i poziom logowania.