Dienst- und Typabrufer

Das Abrufen von Verweisen auf alle verschiedenen Proto-Klassen, die für die Verwendung der API in Python erforderlich sind, kann sehr ausführlich sein und erfordert, dass Sie die API genau kennen oder häufig den Kontext wechseln, um auf die Protos oder die Dokumentation zu verweisen.

Die Methoden get_service und get_type des Clients

Mit diesen beiden Getter-Methoden können Sie jedes Dienst- oder Typobjekt in der API abrufen. Die Methode get_service wird verwendet, um Dienstclients abzurufen. get_type wird für alle anderen Objekte verwendet. Dienstclientklassen werden im Code unter dem Pfad google/ads/googleads/v*/services/services/ definiert und alle Typen unter den verschiedenen Objektkategorien google/ads/googleads/v*/common|enums|errors|resources|services/types/. Der gesamte Code unter dem Versionsverzeichnis wird generiert. Daher empfiehlt es sich, diese Methoden zu verwenden, anstatt die Objekte direkt zu importieren, falls sich die Struktur der Codebasis ändert.

Hier ist ein Beispiel für die Verwendung der Methode get_service zum Abrufen einer Instanz des Clients 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 v24 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v24")
googleads_service = client.get_service("GoogleAdsService")

Hier ist ein Beispiel für die Verwendung der get_type Methode zum Abrufen einer Campaign Instanz.

from google.ads.googleads.client import GoogleAdsClient

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

Enums

Sie können zwar die Methode get_type verwenden, um Enums abzurufen, aber jede GoogleAdsClient-Instanz hat auch ein enums-Attribut, mit dem Enums mit demselben Mechanismus wie die Methode get_type dynamisch geladen werden. Diese Schnittstelle ist einfacher und leichter zu lesen als die Verwendung von get_type:

client = GoogleAdsClient.load_from_storage(version=v24)

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

Proto-Objektfelder, die Enums sind, werden in Python durch den nativen Enum-Typ dargestellt. Das bedeutet, dass Sie den Wert des Mitglieds ganz einfach lesen können. Arbeiten mit der campaign-Instanz aus dem vorherigen Beispiel in einem Python-REPL:

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

Manchmal ist es nützlich, den Namen des Felds zu kennen, das dem oben gezeigten Enum-Wert entspricht. Sie können mit dem Attribut name auf diese Informationen zugreifen:

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

Die Interaktion mit Enums unterscheidet sich je nachdem, ob die use_proto_plus Konfiguration auf true oder false festgelegt ist. Weitere Informationen zu den beiden Schnittstellen finden Sie unter der Dokumentation zu Protobuf-Nachrichten.

Versionsverwaltung

Es werden mehrere Versionen der API gleichzeitig verwaltet. v24 ist zwar die neueste Version, aber frühere Versionen sind weiterhin zugänglich, bis sie eingestellt werden. Die Bibliothek enthält separate Proto-Nachrichtenklassen, die den einzelnen aktiven API-Versionen entsprechen. Wenn Sie auf eine Nachrichtenklasse für eine bestimmte Version zugreifen möchten, geben Sie beim Initialisieren eines Clients den Keyword-Parameter version an, damit immer eine Instanz aus dieser Version zurückgegeben wird:

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

Es ist auch möglich, die Version anzugeben, wenn Sie die Methoden get_service und get_type aufrufen. Dadurch wird die Version überschrieben, die beim Initialisieren des Clients angegeben wurde:

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

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

Wenn kein Keyword-Parameter version angegeben wird, verwendet die Bibliothek standardmäßig die neueste Version. Eine aktualisierte Liste der neuesten und anderer verfügbarer Versionen finden Sie im linken Navigationsbereich der API-Referenz Dokumentation.