Getters de type et de service

Extraire les références à toutes les différentes classes proto requises pour utiliser l'API dans Python peut être long et exige que vous compreniez le fonctionnement API ou changez fréquemment de contexte pour référencer les protos ou la documentation.

Les méthodes get_service et get_type du client

Ces deux méthodes getter vous permettent de récupérer n'importe quel objet de service ou de type dans API. La méthode get_service permet de récupérer les clients de service. get_type est utilisé pour tout autre objet. Les classes du client de service sont définies dans le code sous le chemin d'accès de la version google/ads/googleads/v*/services/services/ et toutes sont définis dans les différentes catégories d'objets, google/ads/googleads/v*/common|enums|errors|resources|services/types/ Tout le code situé sous le répertoire de version est généré. Il est donc préférable vous entraîner à utiliser ces méthodes au lieu d'importer directement les objets, au cas où la structure du codebase change.

Voici un exemple d'utilisation de la méthode get_service pour récupérer une instance du client 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 v17 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v17")
googleads_service = client.get_service("GoogleAdsService")

Voici un exemple d'utilisation de la méthode get_type pour récupérer un Instance Campaign.

from google.ads.googleads.client import GoogleAdsClient

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

Enums

Bien que vous puissiez utiliser la méthode get_type pour récupérer des énumérations, chaque L'instance GoogleAdsClient possède également un attribut enums qui charge les énumérations à l'aide du même mécanisme que la méthode get_type. Cette interface est conçu pour être plus simple et plus facile à lire que l'utilisation de get_type:

client = GoogleAdsClient.load_from_storage(version=v17)

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

Dans Python, les champs d'objets Proto, qui sont des énumérations, sont représentés par le code enum. Cela signifie que vous peut facilement lire la valeur du membre. Utiliser l'instance campaign de l'exemple précédent dans un répertoire Python:

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

Il est parfois utile de connaître le nom du champ qui correspond au comme indiqué ci-dessus. Vous pouvez accéder à ces informations à l'aide du name attribut:

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

L'interaction avec les énumérations est différente selon que vous disposez use_proto_plus définie sur true ou false. Pour en savoir plus sur les deux interfaces, consultez la documentation sur les messages protobuf.

Gestion des versions

Plusieurs versions de l'API sont gérées en même temps. Alors que v17 est peut-être la dernière version, les versions antérieures le sont toujours accessibles jusqu'au coucher du soleil. La bibliothèque inclut des fichiers proto qui correspondent à chaque version active de l'API. Pour accéder à un message pour une version spécifique, fournissez le paramètre de mot clé version lorsque d'initialiser un client de sorte qu'il renvoie toujours une instance à partir de celle-ci 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")

Il est également possible de spécifier la version lorsque vous appelez get_service et que get_type. Cette opération remplacera la version fournie lors initialisation du client:

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")

Si aucun paramètre de mot clé version n'est fourni, la bibliothèque utilisera par défaut la dernière version. Une liste mise à jour des versions les plus récentes et des autres versions disponibles se trouve dans la section de navigation de gauche Documentation de référence de l'API