Es werden Verweise auf alle verschiedenen Proto-Klassen abgerufen, die für die Verwendung der API in Python kann sehr umfangreich sein und erfordert ein intrinsisches Verständnis der API oder häufig den Kontextwechsel verwenden, um auf die Proto-Dateien 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 im
der API erstellen. Die Methode get_service
wird zum Abrufen von Dienstclients verwendet. get_type
wird für ein anderes Objekt verwendet. Dienstclient-Klassen sind im Code definiert
unter dem Versionspfad google/ads/googleads/v*/services/services/
und alle
unter den verschiedenen Objektkategorien,
google/ads/googleads/v*/common|enums|errors|resources|services/types/
.
Der gesamte Code unterhalb des Versionsverzeichnisses wird generiert.
diese Methoden zu verwenden, anstatt die Objekte direkt zu importieren.
der Codebasis ändert.
Hier ist ein Beispiel für die Verwendung der Methode get_service
zum Abrufen einer Instanz.
des GoogleAdsService
-Clients.
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")
Hier ein Beispiel für die Verwendung der Methode get_type
zum Abrufen eines
Campaign
-Instanz.
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v17")
campaign = client.get_type("Campaign")
Enums
Sie können zwar Enums mit der Methode get_type
abrufen, aber jede
GoogleAdsClient
-Instanz hat auch ein enums
-Attribut, das
lädt Enums mit demselben Mechanismus wie die Methode get_type
. Diese Schnittstelle
soll einfacher und leichter zu lesen sein als die Verwendung von get_type
:
client = GoogleAdsClient.load_from_storage(version=v17)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Proto-Objektfelder, bei denen es sich um Enums handelt, werden in Python durch die native
enum-Typ. Das bedeutet, dass Sie
den Wert des Mitglieds leicht lesen kann. Mit der Instanz campaign
arbeiten
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 hilfreich, den Namen des Felds zu kennen, das der
enum-Wert wie oben gezeigt an. Sie können über die name
auf diese Informationen zugreifen
Attribut:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
Die Interaktion mit Enums ist unterschiedlich, je nachdem, ob Sie das
use_proto_plus
Konfiguration auf true
oder false
festgelegt. Weitere Informationen zu den beiden Oberflächen finden Sie unter
der Dokumentation zu protobuf-Nachrichten.
Versionsverwaltung
Es werden mehrere Versionen der API gleichzeitig verwaltet. Während
v17
ist möglicherweise die neueste Version, frühere Versionen sind noch verfügbar
bis zum Sonnenuntergang zugänglich sind. Die Bibliothek enthält ein separates Proto.
-Nachrichtenklassen, die den einzelnen aktiven API-Versionen entsprechen. So greifen Sie auf eine Nachricht zu:
für eine bestimmte Version geben den Schlüsselwortparameter version
an, wenn
einen Client so initialisieren, dass er immer eine Instanz von dem angegebenen
Version:
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")
Es ist auch möglich, die Version beim Aufrufen von get_service
und
get_type
-Methoden. Dadurch wird die Version überschrieben, die beim
Initialisieren des Clients:
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")
Wenn kein version
-Keyword-Parameter angegeben wird, verwendet die Bibliothek standardmäßig
die aktuelle Version. Eine aktualisierte Liste der neuesten und anderen verfügbaren Versionen
finden Sie im linken Navigationsbereich der
Dokumentation API-Referenz