Dienst- und Typabrufer

Das Abrufen von Referenzen auf alle verschiedenen Proto-Klassen, die für die Verwendung der API in Python erforderlich sind, kann sehr umfangreich sein. Sie benötigen ein grundlegendes Verständnis der API oder häufig Kontextwechsel, 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 jeden Dienst oder jedes Typobjekt in der API abrufen. Die Methode get_service wird zum Abrufen von Dienstclients verwendet. get_type wird für jedes andere Objekt verwendet. Dienstclientklassen werden im Code unter dem Versionspfad google/ads/googleads/v*/services/services/ definiert und alle Typen sind in den verschiedenen Objektkategorien google/ads/googleads/v*/common|enums|errors|resources|services/types/ definiert. Da der gesamte Code unterhalb des Versionsverzeichnisses generiert wird, empfiehlt es sich, diese Methoden zu verwenden, anstatt die Objekte direkt zu importieren, falls sich die Struktur der Codebasis ändert.

Das folgende Beispiel zeigt, wie Sie mit der Methode get_service eine Instanz des Clients GoogleAdsService abrufen können.

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 v16 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v16")
googleads_service = client.get_service("GoogleAdsService")

Das folgende Beispiel zeigt, wie Sie mit der Methode get_type eine Campaign-Instanz abrufen.

from google.ads.googleads.client import GoogleAdsClient

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

Enums

Sie können Enums mit der Methode get_type abrufen. Jede GoogleAdsClient-Instanz hat aber auch ein enums-Attribut, das Enums mit demselben Mechanismus wie die get_type-Methode dynamisch lädt. Diese Oberfläche ist einfacher und leichter zu lesen als get_type:

client = GoogleAdsClient.load_from_storage(version=v16)

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

Proto-Objektfelder in Form von Enum werden in Python durch den nativen enum-Typ dargestellt. Das bedeutet, dass Sie den Wert des Mitglieds leicht lesen können. Arbeiten Sie mit der campaign-Instanz aus dem vorherigen Beispiel in einem Python-Replikat:

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

Manchmal ist es hilfreich, den Namen des Felds zu kennen, das dem ENUM-Wert entspricht (siehe oben). Sie können auf diese Informationen über das Attribut name zugreifen:

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

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

Versionsverwaltung

Mehrere Versionen der API werden gleichzeitig verwaltet. v16 ist zwar möglicherweise die neueste Version, frühere Versionen sind jedoch weiterhin verfügbar, bis sie eingestellt werden. Die Bibliothek enthält separate proto-Nachrichtenklassen, die jeder aktiven API-Version entsprechen. Für den Zugriff auf eine Nachrichtenklasse für eine bestimmte Version geben Sie beim Initialisieren eines Clients den Schlüsselwortparameter version an, damit immer eine Instanz von dieser gegebenen Version zurückgegeben wird:

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

Die Version kann auch beim Aufrufen der Methoden get_service und get_type angegeben werden. Dadurch wird die Version überschrieben, die beim Initialisieren des Clients angegeben wurde:

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

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

Wenn kein version-Keyword-Parameter angegeben ist, verwendet die Bibliothek standardmäßig die neueste Version. Eine aktualisierte Liste der neuesten und weiteren verfügbaren Versionen finden Sie in der API-Referenzdokumentation im linken Navigationsbereich.