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.