Esistono diversi modi per configurare il client.
Configurazione autenticazione
Esistono diversi modi per gestire le credenziali OAuth necessarie per accedere all'API Google Ads. L'approccio scelto influirà sui campi di configurazione che utilizzi. Per ulteriori informazioni, consulta la nostra guida all'autenticazione.
Configurazione tramite file YAML
Puoi specificare un file YAML da utilizzare durante l'inizializzazione del client che contiene
le informazioni necessarie per effettuare richieste all'API Google Ads. Si accede a questo
file 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 che includa le tue credenziali,
tra cui token sviluppatore, token di aggiornamento, ID client e secret client.
Se non fornisci un percorso, la libreria cercherà il file nella directory $HOME:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Per specificare una posizione in cui si trova il 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 la variabile di ambiente è presente, 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 con il prefisso dello spazio dei nomi GOOGLE_ADS_. Ad esempio, client_id deve essere memorizzato come GOOGLE_ADS_CLIENT_ID.
Le variabili di ambiente vengono comunemente definite in un file di configurazione bash, ad esempio un file .bashrc o .bash_profile che si trova nella directory $HOME. Possono
essere definiti anche utilizzando la riga di comando. Tieni presente che queste istruzioni
presuppongono che tu stia utilizzando bash. Se utilizzi una shell diversa, 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
tramite 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 direttamente nell'istanza del terminale 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 dalle variabili di ambiente:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Per configurare logging tramite variabili di ambiente, il valore di configurazione
deve essere un oggetto JSON che corrisponda alla struttura delle chiavi YAML nel
file di configurazione di esempio google-ads.yaml.
Ecco un esempio di come potrebbe essere impostato 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 tramite una stringa YAML
Se hai letto un file YAML in memoria, puoi fornirlo direttamente al
client durante l'inizializzazione. Per farlo, 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 tramite 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.
Autenticazione
Utilizza solo uno di questi gruppi di campi, a seconda dell'approccio di autenticazione che stai utilizzando:
- Utente singolo con credenziali predefinite dell'applicazione (documentazione)
use_application_default_credentials: indica se la libreria deve utilizzare le credenziali predefinite dell'applicazione (ADC) per l'autenticazione.
- Utente singolo con token OAuth (documentazione)
client_id: il tuo ID client OAuth.client_secret: il client secret OAuth.refresh_token: il token di aggiornamento OAuth.
- Account di servizio (documentazione)
json_key_file_path: Un percorso a un file di chiave privata locale. Viene utilizzato per l'autenticazione tramite un service account.
Comportamento della raccolta
Questi campi determinano il comportamento della libreria:
logging: visualizza i dettagli della configurazione di logging.http_proxy: consulta la documentazione del proxy.use_proto_plus: se utilizzare o meno i messaggi proto-plus. Consulta la documentazione relativa ai messaggi protobuf.
Configurazione a livello di richiesta
developer_token: OBBLIGATORIO. Il token sviluppatore per accedere all'API.linked_customer_id: consulta la documentazione sull'ID cliente collegato.login_customer_id: consulta la documentazione login-customer-id.
Variabili di ambiente
Per configurare la libreria utilizzando le variabili di ambiente, utilizza quanto segue:
GOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_DEVELOPER_TOKENGOOGLE_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
Configurazione di logging
I campi di logging, ovvero i campi sotto il campo di configurazione logging, derivano direttamente dal modulo integrato logging.config perché la libreria passa tutti i campi nello spazio dei nomi logging direttamente al metodo logging.config.dictConfig. Consulta la
guida alla registrazione per informazioni dettagliate.
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, che includono un gestore e un livello di log.