Dienst- und Typabrufer

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