La récupération des références à toutes les différentes classes proto requises pour utiliser l'API en Python peut être complexe et nécessite de bien comprendre l'API ou de modifier fréquemment le contexte pour référencer les protos ou la documentation.
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 l'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 de client de service sont définies dans le code sous le chemin d'accès à la version google/ads/googleads/v*/services/services/
. Tous les types sont définis dans les différentes catégories d'objets google/ads/googleads/v*/common|enums|errors|resources|services/types/
.
Tout le code sous le répertoire de version est généré. Il est donc recommandé d'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 v16 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v16")
googleads_service = client.get_service("GoogleAdsService")
Voici un exemple d'utilisation de la méthode get_type
pour récupérer une instance Campaign
.
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v16")
campaign = client.get_type("Campaign")
Enums
Bien que vous puissiez utiliser la méthode get_type
pour récupérer des énumérations, chaque instance GoogleAdsClient
possède également un attribut enums
qui charge dynamiquement des énumérations en utilisant le même mécanisme que la méthode get_type
. Cette interface est conçue pour être plus simple et plus facile à lire que d'utiliser get_type
:
client = GoogleAdsClient.load_from_storage(version=v16)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Les champs d'objet proto qui sont des énumérations sont représentés en Python par le type enum natif. Cela signifie que vous pouvez facilement lire la valeur du membre. Utilisation de l'instance campaign
de l'exemple précédent dans un repl Python:
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
Parfois, il est utile de connaître le nom du champ correspondant à la valeur d'énumération, comme indiqué ci-dessus. Vous pouvez accéder à ces informations à l'aide de l'attribut name
:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
L'interaction avec les énumérations est différente selon que la configuration use_proto_plus
est 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. Bien que v16
puisse être la dernière version, les versions antérieures restent accessibles jusqu'à leur arrêt. La bibliothèque comprendra des classes de message proto distinctes correspondant à chaque version d'API active. Pour accéder à une classe de message pour une version spécifique, fournissez le paramètre de mot clé version
lors de l'initialisation d'un client afin qu'il renvoie toujours l'instance de cette version:
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")
Il est également possible de spécifier la version lorsque vous appelez les méthodes get_service
et get_type
. Cette action remplace la version fournie lors de l'initialisation du client:
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")
Si aucun paramètre de mot clé version
n'est fourni, la bibliothèque utilise par défaut la dernière version. Vous trouverez une liste mise à jour des dernières versions et des autres versions disponibles dans la section de navigation de gauche de la documentation de référence de l'API.