Существует несколько различных способов настройки клиента.
Конфигурация с использованием файла YAML
Вы можете указать файл YAML, который будет использоваться при инициализации клиента и содержит необходимую информацию аутентификации, необходимую для выполнения запросов. Доступ к этому файлу осуществляется при инициализации клиента с помощью метода load_from_storage
. Самый простой способ создать этот файл — скопировать пример google-ads.yaml
из репозитория GitHub и изменить его, включив в него ваши учетные данные, включая токен разработчика, токен обновления, идентификатор клиента и секрет клиента.
Если вы не укажете путь, библиотека будет искать файл в вашем каталоге $HOME
:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
Чтобы указать местоположение файла google-ads.yaml
, вы можете передать путь в виде строки методу при его вызове:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
Вы также можете указать путь, указав конкретную переменную среды:
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()
Если предоставлены оба значения — путь передан в метод и указанная выше переменная среды присутствует — тогда библиотека будет отдавать приоритет пути, переданному в метод.
Конфигурация с использованием переменных среды
Вы можете сохранить всю конфигурацию вашего клиента в виде переменных среды, которые будут считываться при использовании метода клиента load_from_env
. Переменные среды должны иметь те же имена, что и имена, определенные в файле google-ads.yaml
, но все они должны быть прописными буквами и иметь префикс пространства имен GOOGLE_ADS_
. Например, client_id
следует хранить как GOOGLE_ADS_CLIENT_ID
.
Переменные среды обычно определяются в файле конфигурации bash, например файле .bashrc
или .bash_profile
расположенном в каталоге $HOME
. Их также можно определить с помощью командной строки. Обратите внимание, что в этих инструкциях предполагается, что вы используете bash
. Если вы используете другую оболочку, вам может потребоваться обратиться к документации о том, как установить переменные среды в используемой вами оболочке.
Вот несколько основных шагов по определению переменной среды с помощью файла .bashrc
с помощью терминала:
# 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
Переменные среды также можно установить в экземпляре вашего терминала непосредственно из командной строки:
$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890
Метод load_from_env
загружает данные конфигурации из атрибута environ
встроенного модуля os
Python. Например: os.environ["GOOGLE_ADS_CLIENT_ID"]
Вот пример того, как инициализировать экземпляр клиента с конфигурацией из переменных среды:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
Чтобы настроить logging
с помощью переменных среды, значение конфигурации должно быть объектом JSON, соответствующим структуре ключей YAML в образце файла конфигурации google-ads.yaml
.
Вот пример того, как это можно установить с помощью файла .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"
}
}
}'
Конфигурация с использованием строки YAML
Если вы прочитали файл YAML в память, вы можете предоставить его непосредственно клиенту при инициализации. Для этого просто используйте метод 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)
Конфигурация с использованием dict
Вы можете передать dict
непосредственно в метод load_from_dict
. Например:
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)
Поля конфигурации
Конфигурация клиентской библиотеки поддерживает следующие поля.
Общие поля (эти имена одинаковы независимо от того, используете ли вы конфигурацию YAML или dict):
-
refresh_token
: ваш токен обновления OAuth. -
client_id
: ваш идентификатор клиента OAuth. -
client_secret
: секрет вашего клиента OAuth. -
developer_token
: ваш токен разработчика для доступа к API. -
login_customer_id
: см. документацию по логину-клиента . -
linked_customer_id
: см. документацию по связанному идентификатору клиента . -
json_key_file_path
(ранееpath_to_private_key_file
): путь к локальному файлу закрытого ключа. Это используется для аутентификации с использованием учетной записи службы. См . документацию по учетной записи службы OAuth2 . -
impersonated_email
(ранее —delegate_account
): адрес электронной почты учетной записи, используемый в качестве делегата. Это используется для аутентификации с использованием учетной записи службы. См . документацию по учетной записи службы OAuth2 . -
logging
: конфигурация ведения журнала. Поля журналирования описаны ниже. -
http_proxy
: См. документацию по прокси . -
use_proto_plus
: использовать или нет сообщения proto-plus. См. документацию по сообщениям Protobuf .
Общие поля как переменные среды:
-
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
(ранееGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
) -
GOOGLE_ADS_IMPERSONATED_EMAIL
(ранееGOOGLE_ADS_DELEGATE_ACCOUNT
) -
GOOGLE_ADS_LOGGING
-
GOOGLE_ADS_HTTP_PROXY
-
GOOGLE_ADS_USE_PROTO_PLUS
Поля ведения журнала, которые находятся под полем конфигурации logging
, извлекаются непосредственно из встроенного модуля logging.config
, поскольку библиотека передает все поля в пространстве имен logging
непосредственно в метод logging.config.dictConfig
. Подробную информацию смотрите в руководстве по ведению журналов .
-
version
: Целочисленное значение, представляющее версию схемы. -
disable_existing_loggers
: следует ли отключать регистраторы, настроенные где-либо в приложении. -
formatters
: словари, определяющие различные типы форматтеров. -
handlers
: словари, определяющие различные обработчики, которые контролируют, куда записываются журналы и какие средства форматирования следует использовать. -
loggers
: словари, определяющие различные типы регистраторов, которые включают обработчик и уровень журнала.