Configurazione

Esistono diversi modi per configurare il client.

Configurazione mediante file YAML

Puoi specificare un file YAML da utilizzare durante l'inizializzazione del client che contiene le informazioni di autenticazione necessarie per effettuare le richieste. Questo file è si accede quando un client viene inizializzato utilizzando il metodo load_from_storage. Il modo più semplice per generare questo file è copiare google-ads.yaml dal repository GitHub e modificarlo per includere le tue credenziali, inclusi il token sviluppatore, il token di aggiornamento, l'ID client e il client secret.

Se non fornisci un percorso, la libreria verrà cercata nella directory $HOME. per il file:

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 viene chiamato:

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, viene passato un percorso per il metodo e per quello precedente di ambiente esistente, la libreria darà la priorità al percorso passati nel metodo.

Configurazione utilizzando le variabili di ambiente

Puoi archiviare tutta la configurazione del client come variabili di ambiente, verranno letti quando si utilizza il metodo load_from_env del client. Ambiente devono avere lo stesso nome di quelli definiti in google-ads.yaml del file, ma deve essere tutto maiuscolo e preceduto dal prefisso GOOGLE_ADS_ nello spazio dei nomi. Ad esempio, client_id deve essere archiviato come GOOGLE_ADS_CLIENT_ID.

Le variabili di ambiente sono comunemente definite in un file di configurazione bash come come file .bashrc o .bash_profile nella directory $HOME. Loro può essere definito anche utilizzando la riga di comando. Tieni presente che queste istruzioni Supponiamo che tu stia utilizzando bash; se stai usando una shell diversa potresti aver bisogno per consultare la documentazione su come impostare le variabili di ambiente nella shell in uso.

Ecco alcuni passaggi di base per definire una variabile di ambiente utilizzando un .bashrc utilizzando 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 direttamente anche 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 da 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 le variabili di ambiente, la configurazione deve essere un oggetto JSON corrispondente alla struttura delle chiavi YAML nel esempio google-ads.yaml di configurazione del deployment.

Ecco un esempio di come potrebbe essere impostata 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 mediante una stringa YAML

Se hai letto un file YAML in memoria, puoi fornirlo direttamente al al momento dell'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 mediante 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 (questi nomi sono gli stessi sia che utilizzi un file YAML o dict configurazione):

  • 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: vedi le documentazione di login-customer-id.
  • linked_customer_id: visualizza l'ID cliente collegato documentazione.
  • json_key_file_path (in precedenza path_to_private_key_file): un percorso a una di chiave privata locale. Viene utilizzato per l'autenticazione mediante un servizio . Consulta la documentazione dell'account di servizio OAuth2.
  • impersonated_email (in precedenza delegate_account): l'indirizzo email di un account utilizzato in qualità di delegato. Viene utilizzato per l'autenticazione mediante un account di servizio. Consulta alla documentazione dell'account di servizio OAuth2.
  • logging: configurazione del logging. I campi di Logging sono descritti di seguito.
  • http_proxy: consulta la documentazione del proxy.
  • use_proto_plus: indica se utilizzare o meno i messaggi proto-plus. Consulta le documentazione sui 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 precedenza GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE)
  • GOOGLE_ADS_IMPERSONATED_EMAIL (in precedenza GOOGLE_ADS_DELEGATE_ACCOUNT)
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_USE_PROTO_PLUS

Campi Logging, che sono campi sotto la configurazione logging derivano direttamente dal modulo integrato logging.config perché la libreria passerà tutti i campi allo spazio dei nomi logging direttamente logging.config.dictConfig: . Per informazioni dettagliate, consulta la guida al logging.

  • version: un valore intero che rappresenta una versione dello schema.
  • disable_existing_loggers: se i logger configurati altrove nella l'applicazione deve essere disabilitata.
  • formatters: dizionari che definiscono diversi tipi di formattatori.
  • handlers: dizionari che definiscono diversi gestori, che controllano dove vengono scritti i log e i formatter da utilizzare.
  • loggers: dizionari che definiscono i diversi tipi di logger, che includono a livello di gestore e a livello di log.