Existen varias formas de configurar el cliente.
Configuración con un archivo YAML
Puedes especificar un archivo YAML para usar cuando inicialices el cliente que contenga la información de autenticación necesaria para realizar solicitudes. Se accede a este archivo cuando se inicializa un cliente con el método load_from_storage
.
La forma más sencilla de generar este archivo es copiar el ejemplo de google-ads.yaml
del repositorio de GitHub y modificarlo para incluir tus credenciales, como el token de desarrollador, el token de actualización, el ID de cliente y el secreto de cliente.
Si no proporcionas una ruta de acceso, la biblioteca buscará el archivo en el directorio $HOME
:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Para especificar una ubicación en la que se encuentra el archivo google-ads.yaml
, puedes pasar la ruta de acceso como una cadena al método cuando lo llames:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
También puedes especificar la ruta de acceso si defines una variable de entorno 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()
Si se proporcionan ambos valores (se pasa una ruta de acceso al método y está presente la variable de entorno anterior), la biblioteca priorizará la ruta de acceso que se pasa al método.
Configuración con variables de entorno
Puedes almacenar toda la configuración del cliente como variables de entorno, que se leerán cuando uses el método load_from_env
del cliente. Las variables de entorno deben tener el mismo nombre que las definidas en el archivo google-ads.yaml
, pero deben estar en mayúsculas y tener el prefijo del espacio de nombres GOOGLE_ADS_
. Por ejemplo, client_id
debe almacenarse como GOOGLE_ADS_CLIENT_ID
.
Por lo general, las variables de entorno se definen en un archivo de configuración de Bash, como un archivo .bashrc
o .bash_profile
ubicado en el directorio $HOME
. También se pueden definir con la línea de comandos. Ten en cuenta que, en estas instrucciones, se supone que usas bash
. Si usas un shell diferente, es posible que debas consultar la documentación para configurar variables de entorno en el shell que usas.
Estos son algunos pasos básicos para definir una variable de entorno con un archivo .bashrc
en una 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
Las variables de entorno también se pueden establecer en tu instancia de terminal directamente desde la línea de comandos:
$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890
El método load_from_env
carga datos de configuración del atributo environ
en el módulo os
integrado de Python. Por ejemplo:
os.environ["GOOGLE_ADS_CLIENT_ID"]
Este es un ejemplo de cómo inicializar una instancia de cliente con la configuración de las variables de entorno:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Para configurar logging
a través de variables de entorno, el valor de configuración debe ser un objeto JSON que coincida con la estructura de las claves YAML en el archivo de configuración de muestra google-ads.yaml
.
Este es un ejemplo de cómo se podría configurar con un archivo .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"
}
}
}'
Configuración con una cadena YAML
Si leíste un archivo YAML en la memoria, puedes proporcionarlo directamente al cliente durante la inicialización. Para ello, usa el 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)
Configuración con un dict
Puedes pasar un dict
directamente al método load_from_dict
. Por ejemplo:
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 configuración
La configuración de la biblioteca cliente admite los siguientes campos.
Campos generales (estos nombres son los mismos, ya sea que uses una configuración de YAML o de dict):
refresh_token
: Tu token de actualización de OAuth.client_id
: Tu ID de cliente de OAuth.client_secret
: Tu secreto de cliente de OAuth.developer_token
: Es tu token de desarrollador para acceder a la API.login_customer_id
: Consulta la documentación de login-customer-id.linked_customer_id
: Consulta la documentación de linked-customer-id.json_key_file_path
(anteriormentepath_to_private_key_file
): Es una ruta de acceso a un archivo de clave privada local. Se usa para autenticar con una cuenta de servicio. Consulta la documentación de la cuenta de servicio de OAuth2.impersonated_email
(antesdelegate_account
): Es un correo electrónico de la cuenta que se usa como delegado. Se usa para autenticar con una cuenta de servicio. Consulta la documentación de la cuenta de servicio de OAuth2.logging
: Configuración de registros. A continuación, se describen los campos de registro.http_proxy
: Consulta la documentación de proxy.use_proto_plus
: Indica si se deben usar o no mensajes de proto-plus. Consulta la documentación sobre los mensajes de Protobuf.
Campos generales como variables de entorno:
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
Los campos de registro, que son campos debajo del campo de configuración logging
, se derivan directamente del módulo integrado logging.config
, ya que la biblioteca pasará todos los campos del espacio de nombres logging
directamente al método logging.config.dictConfig
. Consulta la guía de registro para obtener todos los detalles.
version
: Es un valor entero que representa una versión de esquema.disable_existing_loggers
: Indica si se deben inhabilitar los registradores configurados en otra parte de la aplicación.formatters
: Diccionarios que definen diferentes tipos de formateadores.handlers
: Son diccionarios que definen diferentes controladores, que controlan dónde se escriben los registros y qué formateadores se deben usar.loggers
: Diccionarios que definen diferentes tipos de registradores, que incluyen un controlador y un nivel de registro.