Há várias maneiras diferentes de configurar o cliente.
Configuração usando o arquivo YAML
É possível especificar um arquivo YAML para usar ao inicializar o 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 do desenvolvedor, o token de atualização, o ID do cliente e a chave secreta do cliente.
Se você não fornecer um caminho, a biblioteca vai procurar o arquivo no diretório
$HOME
:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Para especificar um local onde 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 especificar 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 ambos os valores forem fornecidos, um caminho será transmitido ao método e a variável de ambiente acima estiver presente. Nesse caso, a biblioteca vai priorizar o caminho transmitido ao método.
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 todas em maiúsculas e ter o prefixo do 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 do bash, como
um arquivo .bashrc
ou .bash_profile
localizado no diretório $HOME
. Eles
também podem ser definidos usando a linha de comando. Estas instruções
pressupõem que você esteja 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 que você está usando.
Confira algumas etapas básicas para definir uma variável de ambiente usando um arquivo .bashrc
com 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 do terminal diretamente na 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. Por exemplo:
os.environ["GOOGLE_ADS_CLIENT_ID"]
Confira 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
usando variáveis de ambiente, o valor de configuração
precisa ser um objeto JSON que corresponda à estrutura das chaves YAML no
arquivo de configuração de exemplo google-ads.yaml
.
Confira um exemplo de como isso pode ser definido 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, é possível 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
É possível transmitir um dict
diretamente para o método load_from_dict
. 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 de cliente é compatível com os seguintes campos.
Campos gerais (os nomes são os mesmos, seja para uma configuração YAML ou dict):
refresh_token
: seu token de atualização OAuth.client_id
: seu ID do cliente OAuth.client_secret
: sua chave secreta do cliente OAuth.developer_token
: seu token de desenvolvedor para acessar a API.login_customer_id
: consulte a documentação sobre o ID de login do cliente.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 para autenticar usando 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 delegação. Ele é usado para autenticação com uma conta de serviço. Consulte a documentação da conta de serviço do OAuth2.logging
: configuração de registro. Os campos de registro são descritos abaixo.http_proxy
: consulte a documentação do proxy.use_proto_plus
: se é necessário usar ou não mensagens proto-plus. Consulte a documentação 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
(anteriormenteGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
)GOOGLE_ADS_IMPERSONATED_EMAIL
(anteriormenteGOOGLE_ADS_DELEGATE_ACCOUNT
)GOOGLE_ADS_LOGGING
GOOGLE_ADS_HTTP_PROXY
GOOGLE_ADS_USE_PROTO_PLUS
Os campos de registro, que são campos abaixo do campo de configuração
logging
, são derivados diretamente do módulo integrado logging.config
porque a biblioteca transmite todos os campos no namespace logging
diretamente para o método
logging.config.dictConfig
. Consulte o guia de geração de registros para conferir 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 processadores diferentes, que controlam onde os registros são gravados e quais formatadores devem ser usados.loggers
: dicionários que definem diferentes tipos de geradores de registros, que incluem um gerenciador e um nível de registro.