Há várias maneiras diferentes de configurar o cliente.
Configuração da autenticação
Há várias maneiras de gerenciar as credenciais do OAuth necessárias para acessar a API Google Ads. A abordagem escolhida afeta os campos de configuração usados. Para mais informações, consulte nosso guia de autenticação.
Configuração usando o arquivo YAML
É possível especificar um arquivo YAML a ser usado ao inicializar o cliente que contém as informações necessárias para fazer solicitações à API Google Ads. 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
google-ads.yaml
exemplo do repositório do GitHub e modificá-lo para incluir suas credenciais,
incluindo 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 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 é transmitido para o método e a variável de ambiente está presente), a biblioteca vai priorizar o caminho transmitido para o 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 das definidas no arquivo google-ads.yaml, mas precisam estar em letras 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 são definidas em um arquivo de configuração do Bash, como um arquivo .bashrc ou .bash_profile localizado no diretório $HOME. Elas também podem ser definidas usando a linha de comando.
Confira algumas etapas básicas para definir uma variável de ambiente usando um arquivo .bashrc em 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 amostra 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ê tiver lido um arquivo YAML na memória, poderá 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. Por exemplo:
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"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 oferece suporte aos seguintes campos.
Autenticação
Use apenas um desses grupos de campos, dependendo da abordagem de autenticação que você está usando:
- Usuário único com credenciais padrão do aplicativo (documentação)
use_application_default_credentials: indica se a biblioteca precisa usar as credenciais padrão do aplicativo (ADC) para autenticação.
- Usuário único com tokens OAuth (documentação)
client_id: o ID do cliente OAuth.client_secret: a chave secreta do cliente OAuth.refresh_token: o token de atualização do OAuth.
- Conta de serviço (documentação)
json_key_file_path: um caminho para um arquivo de chave privada local. Isso é usado para autenticação usando uma conta de serviço.
Comportamento da biblioteca
Esses campos determinam o comportamento da biblioteca:
logging: consulte os detalhes da configuração de geração de registros.http_proxy: consulte a documentação do proxy.use_proto_plus: indica se as mensagens proto-plus precisam ser usadas. Consulte a documentação de mensagens do protobuf.
Configuração no nível da solicitação
linked_customer_id: consulte a documentação de linked-customer-id.login_customer_id: consulte a documentação de login-customer-id.
Variáveis de ambiente
Para configurar a biblioteca usando variáveis de ambiente, use o seguinte:
GOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_HTTP_PROXYGOOGLE_ADS_JSON_KEY_FILE_PATHGOOGLE_ADS_LINKED_CUSTOMER_IDGOOGLE_ADS_LOGIN_CUSTOMER_IDGOOGLE_ADS_LOGGINGGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_USE_PROTO_PLUSGOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS
Configuração do Logging
Os campos de geração de registros, que são campos abaixo do campo de configuração logging, são derivados diretamente do módulo integrado logging.config, porque a biblioteca vai transmitir todos os campos no namespace logging diretamente para o método logging.config.dictConfig. Consulte o
guia de geração de registros para mais detalhes.
version: um valor inteiro que representa uma versão do esquema.disable_existing_loggers: indica se os loggers configurados em outro lugar do aplicativo precisam ser desativados.formatters: dicionários que definem diferentes tipos de formatadores.handlers: dicionários que definem diferentes handlers, que controlam onde os registros são gravados e quais formatadores precisam ser usados.loggers: dicionários que definem diferentes tipos de loggers, que incluem um handler e um nível de registro.