Pobieranie odwołań do wszystkich różnych prototypowych klas wymaganych do korzystania z interfejsu API w Pythonie może być żmudne i wymagać znajomości interfejsu API lub częstego przełączania kontekstu, aby odwoływać się do prototypów lub dokumentacji.
metody get_service
i get_type
klienta;
Te 2 metody gettera umożliwiają pobieranie dowolnej usługi lub obiektu typu w interfejsie API. Metoda get_service
służy do pobierania klientów usługi. get_type
jest używany w przypadku każdego innego obiektu. Klasy klienta usługi są definiowane w kodzie w ścieżce wersji google/ads/googleads/v*/services/services/
, a wszystkie typy są definiowane w różnych kategoriach obiektów google/ads/googleads/v*/common|enums|errors|resources|services/types/
.
Na podstawie katalogu wersji generowany jest cały kod, dlatego na wypadek zmiany struktury kodu zalecamy używanie tych metod zamiast bezpośredniego importowania obiektów.
Oto przykład użycia metody get_service
do pobrania wystąpienia klienta GoogleAdsService
.
from google.ads.googleads.client import GoogleAdsClient
# "load_from_storage" loads your API credentials from disk so they
# can be used for service initialization. Providing the optional `version`
# parameter means that the v18 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v18")
googleads_service = client.get_service("GoogleAdsService")
Oto przykład użycia metody get_type
do pobrania wystąpienia Campaign
.
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v18")
campaign = client.get_type("Campaign")
Wartości w polu enum
Chociaż do pobierania typów enumeracji możesz używać metody get_type
, każda instancja GoogleAdsClient
ma też atrybut enums
, który dynamicznie wczytuje typy enumeracji za pomocą tego samego mechanizmu co metoda get_type
. Ten interfejs ma być prostszy i łatwiejszy do odczytania niż get_type
:
client = GoogleAdsClient.load_from_storage(version=v18)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Pola prototypów obiektów, które są typami enumeracji, są reprezentowane w Pythonie za pomocą natywnego typu enum. Oznacza to, że możesz łatwo odczytać wartość elementu. Praca z instancją campaign
z poprzedniego przykładu w replicie Pythona:
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
Czasami przydaje się znać nazwę pola odpowiadającego wartości enum, jak pokazano powyżej. Te informacje możesz uzyskać za pomocą atrybutu name
:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
Interakcje z enumeracją różnią się w zależności od tego, czy masz ustawienie use_proto_plus
skonfigurowane jako true
czy false
. Szczegółowe informacje o tych interfejsach znajdziesz w dokumentacji wiadomości protobuf.
Obsługa wersji
Utrzymywane są jednocześnie różne wersje interfejsu API. Chociaż v18
może być najnowszą wersją, starsze wersje są nadal dostępne do czasu ich wycofania. Biblioteka będzie zawierać oddzielne klasy proto message odpowiadające każdej aktywnej wersji interfejsu API. Aby uzyskać dostęp do klasy wiadomości dla konkretnej wersji, podczas inicjowania klienta podaj parametr słowa kluczowego version
, aby zawsze zwracał instancję z tej wersji:
client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v18/")
# The Campaign instance will be from the v18 version of the API.
campaign = client.get_type("Campaign")
Wersję można też określić podczas wywoływania metod get_service
i get_type
. Spowoduje to zastąpienie wersji podanej podczas inicjowania klienta:
client = GoogleAdsService.load_from_storage()
# This will load the v18 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v18")
client = GoogleAdsService.load_from_storage(version="v18")
# This will load the v16 version of a Campaign.
campaign = client.get_type("Campaign", version="v16")
Jeśli nie podasz parametru słowa kluczowego version
, biblioteka domyślnie użyje najnowszej wersji. Aktualną listę najnowszych i innych dostępnych wersji znajdziesz w sekcji nawigacyjnej po lewej stronie w dokumentacji Przewodnik po interfejsie API.