Existen varias formas diferentes de configurar el cliente.
Configuración con un archivo YAML
Puedes especificar un archivo YAML para usar cuando inicialices el cliente que contiene
la información de autenticación necesaria para hacer solicitudes. Este archivo es
a la que se accede cuando se inicializa un cliente con el método load_from_storage
.
La forma más fácil de generar este archivo es copiar el
google-ads.yaml
ejemplo del repositorio de GitHub y modificarlo para incluir tus credenciales.
incluidos 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á en el directorio $HOME
.
para el archivo:
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 se lo llama:
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 mediante la definición de 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 al método anterior de entorno está presente; entonces, la biblioteca priorizará la ruta de acceso se pasan 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 se use el método load_from_env
del cliente. Medioambiente
Las variables deben tener el mismo nombre que las definidas en el archivo google-ads.yaml
.
pero debe estar todo en mayúsculas y tener el prefijo GOOGLE_ADS_
espacio de nombres. Por ejemplo, client_id
debe almacenarse como GOOGLE_ADS_CLIENT_ID
.
Las variables de entorno se definen comúnmente en un archivo de configuración Bash como
como un archivo .bashrc
o .bash_profile
, ubicado en el directorio $HOME
. Ellas
también se puede definir con la línea de comandos. Tenga en cuenta que estas instrucciones
supongamos que usas bash
; si usas una shell diferente, es posible que debas
consultar documentación sobre cómo configurar variables de entorno en la
del shell que estás usando.
Estos son algunos pasos básicos para definir una variable de entorno mediante un .bashrc
con 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 configurar directamente en tu instancia de terminal 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 desde environ
.
en el módulo integrado os
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 a partir de variables de entorno:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Para configurar logging
con variables de entorno, la configuración
debe ser un objeto JSON que coincida con la estructura de las claves YAML en el
muestra google-ads.yaml
de Terraform.
Este es un ejemplo de cómo esto se puede 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 proporcionárselo directamente al
cliente en 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 si usas un archivo YAML actual):
refresh_token
: Es el token de actualización de OAuth.client_id
: Es tu ID de cliente de OAuth.client_secret
: Es tu secreto de cliente de OAuth.developer_token
: Tu token de desarrollador para acceder a la API.login_customer_id
: Consulta las documentación delogin-customer-id.linked_customer_id
: Consulta linked-customer-id documentación.json_key_file_path
(anteriormentepath_to_private_key_file
): Es una ruta de acceso a un archivo local de claves privadas. Se usa para autenticar con una cuenta de servicio de servicio predeterminada. Consulta la documentación de la cuenta de servicio de OAuth2.impersonated_email
(anteriormentedelegate_account
): Un correo electrónico de la cuenta utilizado como delegado. Esto se usa para la autenticación con una cuenta de servicio. Consulta la documentación de la cuenta de servicio de OAuth2.logging
: Configuración de registro. Los campos de registro se describen a continuación.http_proxy
: Consulta la documentación del proxy.use_proto_plus
: Indica si se deben usar o no mensajes proto-plus. Consulta la 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
Campos de registro, que son campos debajo de la configuración de logging
derivan directamente del módulo integrado logging.config
ya que la biblioteca pasará todos los campos del espacio de nombres logging
directamente
logging.config.dictConfig
. Consulta la guía de registro para obtener todos los detalles.
version
: un valor de número entero que representa una versión del esquema.disable_existing_loggers
: Indica si los registradores están configurados en otro lugar del de Compute Engine debe inhabilitarse la aplicación.formatters
: Diccionarios que definen diferentes tipos de formateadores.handlers
: Diccionarios que definen diferentes controladores, que controlan dónde: en los que se escriben los registros y qué formateadores deben usarse.loggers
: Diccionarios que definen diferentes tipos de registradores, lo que incluye un controlador y un nivel de registro.