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
.
Le moyen le plus simple de générer ce fichier est de 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 priorisera le chemin d'accès 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. à 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 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
(anciennementpath_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 Google Cloud. Consultez la documentation sur les comptes de service OAuth2.impersonated_email
(anciennementdelegate_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
(anciennementGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
)GOOGLE_ADS_IMPERSONATED_EMAIL
(anciennementGOOGLE_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.