Esistono diversi modi per configurare il client.
Configurazione utilizzando il file YAML
Puoi specificare un file YAML da utilizzare durante l'inizializzazione del client che contenga le informazioni di autenticazione necessarie per effettuare richieste. Questo file viene visualizzato quando un client viene inizializzato utilizzando il metodo load_from_storage
.
Il modo più semplice per generare questo file è copiare l'esempio
google-ads.yaml
dal repository GitHub e modificarlo in modo da includere le tue credenziali,
tra cui il token sviluppatore, il token di aggiornamento, l'ID cliente e il segreto cliente.
Se non fornisci un percorso, la raccolta cercherà il file nella directory $HOME
:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Per specificare la posizione del file google-ads.yaml
, puoi passare il percorso come stringa al metodo quando lo chiami:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
Puoi anche specificare il percorso definendo una variabile di ambiente specifica:
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 vengono forniti entrambi i valori, ovvero un percorso viene passato al metodo e è presente la variabile di ambiente sopra indicata, la libreria darà la priorità al percorso passato al metodo.
Configurazione tramite variabili di ambiente
Puoi memorizzare tutta la configurazione del client come variabili di ambiente, che verranno lette quando utilizzi il metodo load_from_env
del client. Le variabili di ambiente devono avere lo stesso nome di quelle definite nel file google-ads.yaml
, ma devono essere tutte in maiuscolo e precedute dall'ambito GOOGLE_ADS_
. Ad esempio, client_id
deve essere archiviato come GOOGLE_ADS_CLIENT_ID
.
Le variabili di ambiente sono comunemente definite in un file di configurazione di bash, ad esempio un file .bashrc
o .bash_profile
, situato nella directory $HOME
. Possono essere definiti anche utilizzando la riga di comando. Tieni presente che queste istruzioni assumeno che tu stia utilizzando bash
. Se utilizzi un'altra shell, potresti dover consultare la documentazione su come impostare le variabili di ambiente nella shell che stai utilizzando.
Ecco alcuni passaggi di base per definire una variabile di ambiente utilizzando un file .bashrc
da un terminale:
# 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
Le variabili di ambiente possono essere impostate anche nell'istanza del terminale direttamente dalla riga di comando:
$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890
Il metodo load_from_env
carica i dati di configurazione dall'attributo environ
nel modulo os
integrato di Python. Ad esempio:
os.environ["GOOGLE_ADS_CLIENT_ID"]
Ecco un esempio di come inizializzare un'istanza client con la configurazione proveniente dalle variabili di ambiente:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Per configurare logging
tramite le variabili di ambiente, il valore della configurazione deve essere un oggetto JSON che corrisponda alla struttura delle chiavi YAML nel file di configurazione di google-ads.yaml
di esempio.
Ecco un esempio di come impostare questa opzione utilizzando un file .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"
}
}
}'
Configurazione utilizzando una stringa YAML
Se hai letto un file YAML in memoria, puoi fornirlo direttamente al
client all'inizializzazione. A tal fine, utilizza il metodo 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)
Configurazione utilizzando un dict
Puoi passare un dict
direttamente al metodo load_from_dict
. Ad esempio:
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)
Campi di configurazione
La configurazione della libreria client supporta i seguenti campi.
Campi generali (i nomi sono gli stessi indipendentemente dall'utilizzo di una configurazione YAML o dict):
refresh_token
: il tuo token di aggiornamento OAuth.client_id
: il tuo ID client OAuth.client_secret
: il tuo client secret OAuth.developer_token
: il tuo token sviluppatore per accedere all'API.login_customer_id
: consulta la documentazione relativa a login-customer-id.linked_customer_id
: consulta la documentazione relativa a linked-customer-id.json_key_file_path
(in precedenzapath_to_private_key_file
): un percorso a un file della chiave privata locale. Viene utilizzato per l'autenticazione con un account di servizio. Consulta la documentazione relativa agli account di servizio OAuth2.impersonated_email
(in precedenzadelegate_account
): un indirizzo email dell'account utilizzato come delegato. Viene utilizzato per l'autenticazione con un account di servizio. Consulta la documentazione relativa agli account di servizio OAuth2.logging
: configurazione del logging. I campi di log sono descritti di seguito.http_proxy
: consulta la documentazione del proxy.use_proto_plus
: indica se utilizzare o meno i messaggi proto-plus. Consulta la documentazione relativa ai messaggi Protobuf.
Campi generali come variabili di 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
(in precedenzaGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
)GOOGLE_ADS_IMPERSONATED_EMAIL
(in precedenzaGOOGLE_ADS_DELEGATE_ACCOUNT
)GOOGLE_ADS_LOGGING
GOOGLE_ADS_HTTP_PROXY
GOOGLE_ADS_USE_PROTO_PLUS
I campi di log, ovvero i campi sotto il campo di configurazione logging
, derivano direttamente dal modulo integrato logging.config
perché la libreria trasmette tutti i campi nel spazio dei nomi logging
direttamente al metodo logging.config.dictConfig
. Per informazioni dettagliate, consulta la guida alla registrazione.
version
: un valore intero che rappresenta una versione dello schema.disable_existing_loggers
: indica se i logger configurati altrove nell'applicazione devono essere disattivati.formatters
: dizionari che definiscono diversi tipi di formattatori.handlers
: dizionari che definiscono diversi gestori, che controllano dove vengono scritti i log e quali formattatori devono essere utilizzati.loggers
: dizionari che definiscono diversi tipi di logger, tra cui un gestore e un livello di log.