Metoda pobierania usług i typów

Pobieram odwołania do wszystkich różnych klas proto wymaganych do korzystania z interfejsu API Python może być bardzo szczegółowy i wymagać znajomości API lub częste przełączanie kontekstu, aby odwołać się do wersji lub dokumentacji.

Metody get_service i get_type klienta

Te dwie metody pobierania umożliwiają pobranie dowolnej usługi lub wpisanie obiektu API. Metoda get_service służy do pobierania klientów usługi. get_type jest używane w przypadku wszystkich innych obiektów. Klasy klientów usługi są zdefiniowane w kodzie w ścieżce wersji google/ads/googleads/v*/services/services/ i wszystkie są zdefiniowane w różnych kategoriach obiektów, google/ads/googleads/v*/common|enums|errors|resources|services/types/ Cały kod poniżej katalogu wersji jest generowany, więc najlepiej ćwiczyć korzystanie z tych metod, zamiast bezpośrednio importować obiekty, do struktury bazy kodu.

Oto przykład użycia metody get_service do pobrania instancji 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 v17 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v17")
googleads_service = client.get_service("GoogleAdsService")

Oto przykład użycia metody get_type do pobrania Campaign.

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage(version="v17")
campaign = client.get_type("Campaign")

Wartości w polu enum

Można użyć metody get_type do pobierania enum, Instancja GoogleAdsClient ma też atrybut enums, który dynamicznie wczytuje wartości wyliczeniowe przy użyciu tego samego mechanizmu co metoda get_type. Ten interfejs ma być łatwiejszy i łatwiejszy do odczytania niż get_type:

client = GoogleAdsClient.load_from_storage(version=v17)

campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED

Pola obiektów proto, które są wyliczeniami, są reprezentowane w Pythonie przez kod natywny enum. Oznacza to, że musisz mogą łatwo odczytać wartość użytkownika. Praca z instancją campaign z poprzedniego przykładu w odpowiedzi w Pythonie:

>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3

Czasem warto znać nazwę pola odpowiadającego wyliczeniową, jak pokazano powyżej. Dostęp do tych informacji możesz uzyskać w name :

>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>

Interakcja z wyliczeniami różni się w zależności od tego, czy use_proto_plus ustawiona na true lub false. Szczegółowe informacje na temat obu interfejsów można znaleźć w sekcji dokumentacji wiadomości buforów protokołu.

Obsługa wersji

Jednocześnie obsługiwane są różne wersje interfejsu API. Choć v17 może być najnowszą wersją, a wcześniejsze są nadal które są dostępne do czasu ich wycofania. Biblioteka będzie zawierać oddzielne proto klas wiadomości, które odpowiadają każdej aktywnej wersji interfejsu API. Uzyskiwanie dostępu do wiadomości klasa dla konkretnej wersji dostarcza parametr słowa kluczowego version, gdy zainicjowanie klienta tak, aby zawsze zwracał instancję z danego wersja:

client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v17/")
# The Campaign instance will be from the v17 version of the API.
campaign = client.get_type("Campaign")

Możesz też określić wersję przy wywołaniu funkcji get_service i get_type metody. Spowoduje to zastąpienie wersji podanej podczas inicjowanie klienta:

client = GoogleAdsService.load_from_storage()
# This will load the v17 version of the GoogleAdsService.
googleads_service = client.get_service(
    "GoogleAdsService", version="v17")

client = GoogleAdsService.load_from_storage(version="v17")
# This will load the v15 version of a Campaign.
campaign = client.get_type("Campaign", version="v15")

Jeśli nie podasz parametru słowa kluczowego version, biblioteka domyślnie użyje parametru najnowszą wersję. Zaktualizowana lista najnowszych i innych dostępnych wersji znajduje się w sekcji nawigacji po lewej stronie dokumentacji interfejsu API.