Configuração

Há várias maneiras de configurar o cliente.

Configuração usando o arquivo YAML

É possível especificar um arquivo YAML a ser usado ao inicializar o cliente que contenha 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 seu token de desenvolvedor, token de atualização, ID do cliente e chave secreta do cliente.

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 ambos os valores forem fornecidos, um caminho for transmitido ao método e a variável de ambiente acima estiver presente, a biblioteca priorizará o caminho transmitido ao método.

Se você não informar um caminho, a biblioteca vai 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 quando o método load_from_env dele for usado. 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 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. Eles também podem ser definidos usando a linha de comando. Essas instruções presumem 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.

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 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. 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ê leu um arquivo YAML na memória, pode fornecê-lo diretamente ao cliente na inicialização. Para fazer isso, use 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 (esses nomes são os mesmos, esteja você usando uma configuração YAML ou dict):

  • refresh_token: seu token de atualização de 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 linked-customer-id.
  • json_key_file_path (antigo path_to_private_key_file): um caminho para um arquivo de chave privada local. Isso é usado para autenticação com uma conta de serviço. Consulte a documentação da conta de serviço do OAuth2.
  • impersonated_email (antigo delegate_account): um e-mail de conta usado como delegado. Isso é 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 geração de registros. Os campos de geração de registros são descritos abaixo.
  • http_proxy: consulte a documentação do proxy.
  • use_proto_plus: se mensagens proto-plus serão usadas ou não. Consulte a documentação Mensagens do 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 (antigo GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE)
  • GOOGLE_ADS_IMPERSONATED_EMAIL (antigo GOOGLE_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 no namespace logging diretamente para o método logging.config.dictConfig. Consulte o guia de geração de registros para ver detalhes completos.

  • 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 precisam ser usados.
  • loggers: dicionários que definem diferentes tipos de loggers, que incluem um gerenciador e um nível de registro.