Buscando referências para todas as várias classes proto necessárias para usar a API em O Python pode ser minucioso e exige que você tenha uma compreensão intrínseca da ou troca de contexto frequentemente para fazer referência aos protos ou à documentação.
Os métodos get_service
e get_type
do cliente
Esses dois métodos getter permitem que você recupere qualquer objeto de serviço ou tipo na
API. O método get_service
é usado para recuperar clientes de serviço. get_type
é usado para qualquer outro objeto. As classes de cliente de serviço são definidas no código
no caminho de versão google/ads/googleads/v*/services/services/
e todas
são definidos nas várias categorias de objetos,
google/ads/googleads/v*/common|enums|errors|resources|services/types/
.
Como todo o código abaixo do diretório da versão é gerado,
prática de usar esses métodos em vez de importar os objetos diretamente, caso os
a estrutura da base de código muda.
Confira um exemplo de como usar o método get_service
para recuperar uma instância
do 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")
Confira um exemplo de como usar o método get_type
para extrair uma
instância do Campaign
.
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v17")
campaign = client.get_type("Campaign")
Enums
Embora você possa usar o método get_type
para recuperar tipos enumerados, cada
A instância GoogleAdsClient
também tem um atributo enums
que dinamicamente
carrega tipos enumerados usando o mesmo mecanismo que o método get_type
. Esta interface
é mais simples e fácil de ler do que usar get_type
:
client = GoogleAdsClient.load_from_storage(version=v17)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
Os campos de objetos proto que são tipos enumerados são representados em Python pelo
enum. Isso significa que você
ler facilmente o valor do membro. Como trabalhar com a instância campaign
do exemplo anterior em uma réplica em Python:
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
Às vezes, é útil saber o nome do campo que corresponde ao
valor de enumeração conforme mostrado acima. Acesse essas informações usando o name
:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
A interação com tipos enumerados é diferente dependendo se você tem o
use_proto_plus
definida como true
ou false
. Para obter detalhes sobre as duas interfaces, consulte
a documentação de mensagens protobuf (em inglês).
Controle de versões
Várias versões da API são mantidas ao mesmo tempo.
v17
pode ser a versão mais recente, mas as versões anteriores ainda estão
ficam acessíveis até serem desativadas. A biblioteca vai incluir um proto separado
classes de mensagem que correspondem a cada versão ativa da API. Para acessar uma mensagem
de uma versão específica, forneça o parâmetro de palavra-chave version
ao
inicializando um cliente para que ele sempre retorne instâncias desse
versão:
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")
Também é possível especificar a versão ao chamar os métodos get_service
e
get_type
. Fazer isso vai substituir a versão fornecida quando
inicializando o 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")
Se nenhum parâmetro de palavra-chave version
for fornecido, a biblioteca usará por padrão
para a versão mais recente. Uma lista atualizada das versões mais recentes e outras disponíveis
podem ser encontrados na seção de navegação à esquerda do
Referência da API.