Recuperando referencias a todas las diferentes clases proto necesarias para usar la API en Python puede ser detallado y requiere un conocimiento intrínseco del o cambiar de contexto con frecuencia para hacer referencia a los protos o la documentación.
Los métodos get_service
y get_type
del cliente
Estos dos métodos get te permiten recuperar cualquier servicio o objeto de tipo en la
en la API de Cloud. El método get_service
se usa para recuperar clientes de servicio. get_type
se usa para cualquier otro objeto. Las clases de cliente de servicio se definen en el código
en la ruta de la versión google/ads/googleads/v*/services/services/
y
de objetos se definen en las diversas categorías de objetos,
google/ads/googleads/v*/common|enums|errors|resources|services/types/
Se genera todo el código que está debajo del directorio de versiones, por lo que es una mejor
practicar el uso de estos métodos en lugar de importar los objetos directamente, en caso de que la
los cambios en la estructura
de la base de código.
Este es un ejemplo de cómo usar el método get_service
para recuperar una instancia
del cliente 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")
Este es un ejemplo de cómo usar el método get_type
para recuperar un
Campaign
.
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v17")
campaign = client.get_type("Campaign")
Enumeraciones
Si bien puedes usar el método get_type
para recuperar enumeraciones, cada
La instancia GoogleAdsClient
también tiene un atributo enums
que
carga enumeraciones con el mismo mecanismo que el método get_type
. Esta interfaz
Está diseñado para ser más simple y fácil de leer que usar get_type
:
client = GoogleAdsClient.load_from_storage(version=v17)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Los campos de objetos proto que son de enumeración se representan en Python por el lenguaje
enum. Eso significa que
pueda leer fácilmente el valor del miembro. Trabaja con la instancia campaign
del ejemplo anterior en un repositorio de Python:
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
A veces, es útil saber el nombre del campo que corresponde al
enum, como se muestra más arriba. Puedes acceder a esta información a través de la name
.
atributo:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
La interacción con enumeraciones es diferente dependiendo de si tienes
use_proto_plus
establecida en true
o false
. Para obtener detalles sobre las dos interfaces, consulta
la documentación de mensajes de protobuf.
Control de versiones
Se mantienen múltiples versiones de la API al mismo tiempo. Mientras que
Es posible que v17
sea la versión más reciente, mientras que las anteriores siguen siendo
accesible hasta el atardecer. La biblioteca incluirá archivos proto independientes
que corresponden a cada versión activa de la API. Cómo acceder a un mensaje
para una versión específica suministra el parámetro de palabra clave version
cuando
inicializas un cliente para que siempre devuelva una instancia de ese
versión:
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")
También es posible especificar la versión cuando se llama a get_service
y
get_type
. Esto anulará la versión proporcionada cuando
para inicializar el cliente:
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 no se proporciona ningún parámetro de palabra clave version
, la biblioteca usará de forma predeterminada
la última versión. Una lista actualizada de las versiones más recientes y otras disponibles
puedes encontrar en la sección de navegación de la izquierda de la
Referencia de la API.