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