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 contenant les informations d’authentification nécessaires pour effectuer des requêtes. Ce fichier est accessible lorsqu'un client est initialisé à l'aide de la méthode load_from_storage. La méthode la plus simple pour générer ce fichier consiste à copier google-ads.yaml 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.

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

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

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

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 à ce qui précède est présente, la bibliothèque priorise le chemin transmis à la méthode.

Configuration à l'aide de variables d'environnement

Vous pouvez stocker toute la configuration de votre client en tant que variables d'environnement, ce qui sera lu lors de l'utilisation de la méthode load_from_env du client. Environnement les variables doivent avoir le même nom que celles définies dans google-ads.yaml , mais tous en majuscules avec le préfixe GOOGLE_ADS_ espace de noms. 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 que en tant que fichier .bashrc ou .bash_profile situé dans le répertoire $HOME. Ils peuvent également être définis à l'aide de la ligne de commande. Notez que ces instructions partons du principe que vous utilisez bash. Si vous utilisez un autre shell, vous devrez peut-être pour consulter la documentation sur la définition des variables d'environnement dans le shell que vous utilisez.

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

Vous pouvez également définir les variables d'environnement directement dans votre instance de terminal. depuis 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 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 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, le fichier de configuration doit être un objet JSON correspondant à la structure des clés YAML exemple de google-ads.yaml fichier de configuration.

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 un fichier YAML configuration):

  • 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 les documentation sur login-customer-id.
  • linked_customer_id: consultez l'élément linked-customer-id documentation.
  • 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 service de service. Consultez la documentation sur les comptes de service OAuth2.
  • impersonated_email (anciennement delegate_account): adresse e-mail du compte utilisée en tant que délégué. Ceci est utilisé pour l'authentification à l'aide d'un compte de service. Voir 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 le 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

Champs de journalisation, qui sont des champs sous la configuration logging , sont dérivées directement du module intégré logging.config. car la bibliothèque transmettra tous les champs sous l'espace de noms logging. directement dans 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 sont configurés ailleurs dans le l'application doit être désactivée.
  • formatters: dictionnaires définissant différents types d'outils de mise en forme.
  • handlers: dictionnaires définissant différents gestionnaires, qui contrôlent où les journaux sont écrits et les outils de mise en forme à utiliser.
  • loggers: dictionnaires définissant différents types d'enregistreurs, dont un gestionnaire et un niveau de journalisation.