Metoda pobierania usług i typów

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_serviceget_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_serviceget_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.