Configuration

Il existe plusieurs façons de configurer le client.

Configuration à l'aide d'un fichier YAML

Vous pouvez spécifier un fichier YAML à utiliser lors de l'initialisation du client. Ce fichier contient les informations d'authentification nécessaires pour effectuer des requêtes. Vous pouvez accéder à ce fichier lorsqu'un client est initialisé à l'aide de la méthode load_from_storage. Le moyen le plus simple de générer ce fichier consiste à copier l'exemple google-ads.yaml à partir du dépôt GitHub et à le modifier pour inclure vos identifiants, y compris votre jeton de développeur, votre jeton d'actualisation, votre ID client et votre code secret du client.

Pour spécifier l'emplacement du fichier google-ads.yaml, vous pouvez transmettre le chemin d'accès sous forme de chaîne à la méthode lorsque vous l'appelez:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")

Vous pouvez également spécifier le chemin d'accès en définissant une variable d'environnement spécifique:

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 les deux valeurs sont fournies (un chemin d'accès est transmis à la méthode et que la variable d'environnement ci-dessus est présente), la bibliothèque priorisera le chemin transmis à la méthode.

Si vous ne fournissez pas de chemin d'accès, la bibliothèque recherchera le fichier dans votre répertoire $HOME:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()

Configuration à l'aide de variables d'environnement

Vous pouvez stocker toute la configuration de votre client en tant que variables d'environnement. Celles-ci seront lues lorsque la méthode load_from_env du client sera utilisée. Les variables d'environnement doivent avoir le même nom que celles définies dans le fichier google-ads.yaml, mais doivent être tout en majuscules et précédées de l'espace de noms GOOGLE_ADS_. Par exemple, client_id doit être stocké en tant que GOOGLE_ADS_CLIENT_ID.

Les variables d'environnement sont généralement définies dans un fichier de configuration bash, tel qu'un fichier .bashrc ou .bash_profile, situé dans le répertoire $HOME. Vous pouvez également les définir à l'aide de la ligne de commande. Notez que ces instructions partent du principe que vous utilisez bash. Si vous utilisez une autre interface système, vous devrez peut-être consulter la documentation pour savoir comment définir des variables d'environnement dans l'interface système que vous utilisez.

Voici quelques étapes de base pour définir une variable d'environnement à l'aide d'un fichier .bashrc à l'aide d'un 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

Les variables d'environnement peuvent également être définies dans votre instance de terminal directement à partir de la ligne de commande:

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

La méthode load_from_env charge les données de configuration à partir de l'attribut environ dans le module os intégré de Python. Exemple : os.environ["GOOGLE_ADS_CLIENT_ID"]

Voici un exemple d'initialisation d'une instance de client avec une configuration à partir de variables d'environnement:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()

Pour configurer logging via des variables d'environnement, la valeur de configuration doit être un objet JSON correspondant à la structure des clés YAML dans l'exemple de fichier de configuration google-ads.yaml.

Voici un exemple de définition à l'aide d'un fichier .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"
    }
  }
}'

Configuration à l'aide d'une chaîne YAML

Si vous avez lu un fichier YAML en mémoire, vous pouvez le fournir directement au client lors de l'initialisation. Pour ce faire, utilisez simplement la méthode 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)

Configuration à l'aide d'un dict

Vous pouvez transmettre un dict directement à la méthode load_from_dict. Exemple :

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)

Champs de configuration

La configuration de la bibliothèque cliente accepte les champs suivants.

Champs généraux (ces noms sont identiques, que vous utilisiez une configuration YAML ou dict):

  • refresh_token: votre jeton d'actualisation OAuth.
  • client_id: votre ID client OAuth.
  • client_secret: votre code secret du client OAuth.
  • developer_token: votre jeton de développeur pour accéder à l'API.
  • login_customer_id: consultez la documentation sur "login-customer-id".
  • linked_customer_id: consultez la documentation sur l'ID client associé.
  • json_key_file_path (anciennement path_to_private_key_file): chemin d'accès à un fichier de clé privée locale. Ceci est utilisé pour l'authentification à l'aide d'un compte de service. Consultez la documentation sur les comptes de service OAuth2.
  • impersonated_email (anciennement delegate_account): adresse e-mail de compte utilisée en tant que délégué. Ceci est utilisé pour l'authentification à l'aide d'un compte de service. Consultez la documentation sur les comptes de service OAuth2.
  • logging: configuration de la journalisation. Les champs de journalisation sont décrits ci-dessous.
  • http_proxy: consultez la documentation sur le proxy.
  • use_proto_plus: indique s'il faut ou non utiliser des messages proto-plus. Consultez la documentation sur les messages Protobuf.

Champs généraux en tant que variables d'environnement:

  • 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 (anciennement GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE)
  • GOOGLE_ADS_IMPERSONATED_EMAIL (anciennement GOOGLE_ADS_DELEGATE_ACCOUNT)
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_USE_PROTO_PLUS

Les champs de journalisation, qui sont des champs sous le champ de configuration logging, sont directement dérivés du module intégré logging.config, car la bibliothèque transmet tous les champs sous l'espace de noms logging directement à la méthode logging.config.dictConfig. Pour en savoir plus, consultez le guide de journalisation.

  • version: valeur entière représentant une version de schéma.
  • disable_existing_loggers: indique si les enregistreurs configurés ailleurs dans l'application doivent être désactivés.
  • formatters: dictionnaires définissant différents types d'outils de mise en forme.
  • handlers: dictionnaires définissant différents gestionnaires, qui contrôlent l'emplacement d'écriture des journaux et les outils de mise en forme à utiliser.
  • loggers: dictionnaires définissant différents types d'enregistreurs, y compris un gestionnaire et un niveau de journalisation.