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.