Há várias maneiras de configurar o cliente.
Configuração usando o arquivo YAML
Você pode 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. Este arquivo é
acessado quando um cliente é inicializado usando o método load_from_storage
.
A maneira mais fácil de gerar esse arquivo é copiar o
google-ads.yaml
do repositório do GitHub e modificá-lo para incluir suas credenciais,
incluindo seu token de desenvolvedor, token de atualização, ID do cliente e segredo do cliente.
Se você não informar um caminho, a biblioteca vai procurar no diretório $HOME
.
para o arquivo:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Para especificar o 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 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 os dois valores forem fornecidos, um caminho será transmitido para o método e o acima estiver presente, a biblioteca vai priorizar o caminho passados para o método.
Configuração usando variáveis de ambiente
Você pode armazenar toda a configuração do cliente como variáveis de ambiente, que
será lido ao usar o método load_from_env
do cliente. Ambiente
as variáveis precisam ter o mesmo nome que as definidas em google-ads.yaml
arquivo, mas deve estar todo em maiúsculas e prefixado com o caractere GOOGLE_ADS_
. Por exemplo, client_id
precisa ser armazenado como GOOGLE_ADS_CLIENT_ID
.
As variáveis de ambiente são normalmente definidas em um arquivo de configuração bash, como
como um arquivo .bashrc
ou .bash_profile
localizado no diretório $HOME
. Eles
também pode ser definido usando a linha de comando. Observe que estas instruções
pressupõem que você esteja usando bash
. Se você estiver usando um shell diferente, poderá precisar
para consultar a documentação sobre como definir variáveis de ambiente na
shell está usando.
Confira algumas etapas básicas para definir uma variável de ambiente usando um .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 diretamente na instância do terminal 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 environ
no módulo os
integrado do Python. Por exemplo:
os.environ["GOOGLE_ADS_CLIENT_ID"]
Este é um exemplo de como inicializar uma instância do cliente com configuração de variáveis de ambiente:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Para definir o logging
usando variáveis de ambiente, o arquivo
deve ser um objeto JSON que corresponda à estrutura das chaves YAML no
exemplo google-ads.yaml
de configuração do Terraform.
Veja 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, pode fornecê-lo diretamente ao
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
. 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 campos a seguir.
Campos gerais (os nomes são os mesmos se você estiver usando YAML ou dict) configuração):
refresh_token
: seu token de atualização do OAuth.client_id
: o ID do cliente OAuth.client_secret
: a chave secreta do cliente do OAuth.developer_token
: seu token de desenvolvedor para acessar a API.login_customer_id
: consulte as documentação do login-customer-id.linked_customer_id
: consulte o linked-customer-id na documentação do Google.json_key_file_path
(antigopath_to_private_key_file
): um caminho para um de chave privada local. Isso é usado para fazer a autenticação usando um serviço do Compute Engine. Consulte a documentação sobre a conta de serviço do OAuth2.impersonated_email
(antigodelegate_account
): um e-mail da conta usado como delegado. Isso é usado para fazer a autenticação com uma conta de serviço. Consulte Documentação da conta de serviço do OAuth2.logging
: configuração do Logging. Os campos do Logging são descritos abaixo.http_proxy
: consulte a documentação do proxy.use_proto_plus
: se mensagens proto-plus serão ou não usadas. Consulte a Documentação de mensagens protobuf (em inglês).
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
Campos do Logging, que são campos abaixo da configuração logging
são derivados diretamente do módulo integrado logging.config
.
porque a biblioteca vai transmitir todos os campos do namespace logging
diretamente no
logging.config.dictConfig
. Consulte o guia de geração de registros para ver os detalhes completos.
version
: um valor inteiro que representa uma versão do esquema.disable_existing_loggers
: indica se os loggers foram configurados em outro lugar na aplicativo deve ser desativado.formatters
: dicionários que definem diferentes tipos de formatadores.handlers
: dicionários que definem diferentes gerenciadores, que controlam onde em que os registros são gravados e quais formatadores precisam ser usados.loggers
: dicionários que definem diferentes tipos de registradores, que incluem: um gerenciador e um nível de registro.