Существует несколько различных способов настройки клиента.
Настройка аутентификации
Существует несколько способов управления учетными данными OAuth, необходимыми для доступа к API Google Ads. Выбранный вами подход повлияет на то, какие поля конфигурации вы будете использовать. Для получения дополнительной информации см. наше руководство по аутентификации .
Конфигурация с использованием YAML-файла.
Вы можете указать YAML-файл для инициализации клиента, содержащий необходимую информацию для отправки запросов к API Google Ads. Доступ к этому файлу осуществляется при инициализации клиента с помощью метода 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)
Поля конфигурации
Конфигурация клиентской библиотеки поддерживает следующие поля.
Аутентификация
Используйте только одну из этих групп полей в зависимости от используемого метода аутентификации:
- Однопользовательский режим с учетными данными приложения по умолчанию ( документация )
-
use_application_default_credentials: Следует ли библиотеке использовать учетные данные приложения по умолчанию (ADC) для аутентификации.
-
- Однопользовательский режим с использованием токенов OAuth ( документация )
-
client_id: Ваш идентификатор клиента OAuth. -
client_secret: Ваш секретный ключ клиента OAuth. -
refresh_token: Ваш токен обновления OAuth.
-
- Учетная запись службы ( документация )
-
json_key_file_path: Путь к локальному файлу закрытого ключа. Используется для аутентификации с помощью учетной записи службы.
-
Поведение в библиотеке
Эти поля определяют поведение библиотеки:
-
logging: Подробности о настройке ведения журнала см. в соответствующем разделе. -
http_proxy: См. документацию по прокси . -
use_proto_plus: Использовать ли сообщения proto-plus. См. документацию по сообщениям protobuf .
Конфигурация на уровне запроса
-
developer_token: ОБЯЗАТЕЛЬНО. Ваш токен разработчика для доступа к API. -
linked_customer_id: См. документацию по linked-customer-id . -
login_customer_id: См. документацию по login-customer-id .
переменные окружающей среды
Для настройки библиотеки с помощью переменных среды используйте следующее:
-
GOOGLE_ADS_CLIENT_ID -
GOOGLE_ADS_CLIENT_SECRET -
GOOGLE_ADS_CONFIGURATION_FILE_PATH -
GOOGLE_ADS_DEVELOPER_TOKEN -
GOOGLE_ADS_HTTP_PROXY -
GOOGLE_ADS_JSON_KEY_FILE_PATH -
GOOGLE_ADS_LINKED_CUSTOMER_ID -
GOOGLE_ADS_LOGIN_CUSTOMER_ID -
GOOGLE_ADS_LOGGING -
GOOGLE_ADS_REFRESH_TOKEN -
GOOGLE_ADS_USE_PROTO_PLUS -
GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS
Настройка ведения журналов
Поля логирования, которые находятся под полем конфигурации logging , напрямую наследуются от встроенного модуля logging.config поскольку библиотека передает все поля из пространства имен logging непосредственно методу logging.config.dictConfig . Полную информацию см. в руководстве по логированию .
-
version: Целочисленное значение, представляющее версию схемы. -
disable_existing_loggers: Следует ли отключать регистраторы, настроенные в других частях приложения. -
formatters: Словари, определяющие различные типы форматировщиков. -
handlers: Словари, определяющие различные обработчики, которые управляют тем, куда записываются логи и какие форматеры следует использовать. -
loggers: Словари, определяющие различные типы регистраторов, включая обработчик и уровень логирования.