Há várias maneiras diferentes de configurar o cliente.
Configuração usando o arquivo YAML
Especifique um arquivo YAML para inicializar ao cliente que contém as informações de autenticação necessárias para fazer solicitações. Esse arquivo é acessado quando um cliente é inicializado usando o método load_from_storage
.
A maneira mais fácil de gerar esse arquivo é copiar o exemplo google-ads.yaml
do repositório do GitHub e modificá-lo para incluir suas credenciais, incluindo o token de desenvolvedor, o token de atualização, o ID e a chave secreta do cliente.
Para especificar um local em que o arquivo google-ads.yaml
está localizado, transmita o caminho como uma string para o método ao chamá-lo:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
Também é possível definir o caminho definindo uma variável de ambiente específica:
import os
os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Se os dois valores forem fornecidos (um caminho for passado para o método e a variável de ambiente acima estiver presente), a biblioteca priorizará o caminho transmitido para o método.
Se você não fornecer um caminho, a biblioteca procurará o arquivo no diretório $HOME
:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Configuração usando variáveis de ambiente
É possível armazenar toda a configuração do cliente como variáveis de ambiente, que serão lidas ao usar o método load_from_env
do cliente. As variáveis de ambiente precisam ter o mesmo nome que as definidas no arquivo google-ads.yaml
, mas precisam estar em maiúsculas e ser prefixadas com o namespace GOOGLE_ADS_
. Por exemplo, client_id
precisa ser armazenado como GOOGLE_ADS_CLIENT_ID
.
As variáveis de ambiente geralmente são definidas em um arquivo de configuração bash, como um arquivo .bashrc
ou .bash_profile
localizado no diretório $HOME
. Elas também podem ser definidas usando a linha de comando. Essas instruções
pressupõem que você está usando bash
. Se estiver usando um shell diferente, talvez seja necessário
consultar a documentação sobre como definir variáveis de ambiente no
shell.
Veja algumas etapas básicas para definir uma variável de ambiente usando um arquivo .bashrc
usando um terminal:
# Append the line "export GOOGLE_ADS_CLIENT_ID=1234567890" to
# the bottom of your .bashrc file.
$ echo "export GOOGLE_ADS_CLIENT_ID=1234567890" >> ~/.bashrc
# Update your bash environment to use the most recently updated
# version of your .bashrc file.
$ src ~/.bashrc
As variáveis de ambiente também podem ser definidas na instância de terminal diretamente da linha de comando:
$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890
O método load_from_env
carrega dados de configuração do atributo environ
no módulo os
integrado do Python. Exemplo: os.environ["GOOGLE_ADS_CLIENT_ID"]
Veja um exemplo de como inicializar uma instância de cliente com a configuração de variáveis de ambiente:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Para configurar logging
por meio de variáveis de ambiente, o valor da configuração precisa ser um objeto JSON que corresponda à estrutura das chaves YAML no arquivo de configuração google-ads.yaml
de amostra.
Veja um exemplo de como fazer isso usando um arquivo .bashrc
:
export GOOGLE_ADS_LOGGING='{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"default_fmt": {
"format": "[%(asctime)s - %(levelname)s] %(message).5000s",
"datefmt": "%Y-%m-%d %H:%M:%S"
}
},
"handlers": {
"default_handler": {
"class": "logging.StreamHandler",
"formatter": "default_fmt"
}
},
"loggers": {
"": {
"handlers": ["default_handler"],
"level": "INFO"
}
}
}'
Configuração usando uma string YAML
Se você leu um arquivo YAML na memória, pode fornecê-lo diretamente ao cliente na inicialização. Para fazer isso, basta usar o método load_from_string
.
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "rb") as handle:
yaml = handle.read()
client = GoogleAdsClient.load_from_string(yaml)
Configuração usando um dict
Você pode transmitir um dict
diretamente para o método load_from_dict
. Por exemplo:
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"developer_token": "abcdef123456",
"refresh_token": "1//0abcdefghijklABCDEF",
"client_id": "123456-abcdef.apps.googleusercontent.com",
"client_secret": "aBcDeFgHiJkL"}
client = GoogleAdsClient.load_from_dict(credentials)
Campos de configuração
A configuração da biblioteca cliente é compatível com os campos a seguir.
Campos gerais (esses nomes são os mesmos, esteja você usando uma configuração YAML ou dict):
refresh_token
: seu token de atualização do OAuth.client_id
: seu ID do cliente OAuth.client_secret
: a chave secreta do cliente OAuth.developer_token
: seu token de desenvolvedor para acessar a API.login_customer_id
: consulte a documentação login-customer-id.linked_customer_id
: consulte a documentação do ID do cliente vinculado.json_key_file_path
(anteriormentepath_to_private_key_file
): um caminho para um arquivo de chave privada local. Isso é usado na autenticação com uma conta de serviço. Consulte a documentação da conta de serviço do OAuth2.impersonated_email
(anteriormentedelegate_account
): um e-mail de conta usado como delegado. Isso é usado na autenticação com uma conta de serviço. Consulte a documentação da conta de serviço do OAuth2.logging
: configuração do Logging. Os campos de registro estão descritos abaixo.http_proxy
: consulte a documentação do proxy.use_proto_plus
: se é necessário usar proto-plus ou não. Consulte a documentação sobre mensagens Protobuf.
Campos gerais como variáveis de ambiente:
GOOGLE_ADS_CONFIGURATION_FILE_PATH
GOOGLE_ADS_REFRESH_TOKEN
GOOGLE_ADS_CLIENT_ID
GOOGLE_ADS_CLIENT_SECRET
GOOGLE_ADS_DEVELOPER_TOKEN
GOOGLE_ADS_LOGIN_CUSTOMER_ID
GOOGLE_ADS_LINKED_CUSTOMER_ID
GOOGLE_ADS_JSON_KEY_FILE_PATH
(antigoGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
)GOOGLE_ADS_IMPERSONATED_EMAIL
(antigoGOOGLE_ADS_DELEGATE_ACCOUNT
)GOOGLE_ADS_LOGGING
GOOGLE_ADS_HTTP_PROXY
GOOGLE_ADS_USE_PROTO_PLUS
Os campos do Logging, que são campos abaixo do campo de configuração logging
,
são derivados diretamente do módulo integrado logging.config
,
porque a biblioteca transmitirá todos os campos do namespace logging
diretamente para o
método
logging.config.dictConfig
. Consulte o guia de geração de registros para ver todos os detalhes.
version
: um valor inteiro que representa uma versão do esquema.disable_existing_loggers
: se os loggers configurados em outro lugar no aplicativo precisam ser desativados.formatters
: dicionários que definem diferentes tipos de formatadores.handlers
: dicionários que definem gerenciadores diferentes, que controlam onde os registros são gravados e quais formatadores serão usados.loggers
: dicionários que definem diferentes tipos de loggers, que incluem um gerenciador e um nível de registro.