Вы можете настроить клиентскую библиотеку Python с помощью файла YAML, переменных среды, строки YAML или dict.
Конфигурация аутентификации
Управлять учетными данными OAuth, необходимыми для доступа к Google Ads API, можно несколькими способами. Выбранный подход влияет на то, какие поля конфигурации вы будете использовать. Подробную информацию вы найдете в руководстве по аутентификации.
Конфигурация с помощью файла YAML
При инициализации клиента вы можете указать файл YAML, содержащий информацию, необходимую для отправки запросов к Google Ads API. Этот файл используется при инициализации клиента с помощью метода 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
from google.ads.googleads.client import GoogleAdsClient
os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
client = GoogleAdsClient.load_from_storage()
Если указаны оба значения (путь передан в метод и переменная среды присутствует), библиотека отдает приоритет пути, переданному в метод.
Настройка с помощью переменных среды
Вы можете хранить все настройки клиента в виде переменных среды, которые считываются при использовании метода load_from_env клиента. Переменные среды должны иметь те же названия, что и в файле google-ads.yaml, но должны быть написаны прописными буквами и иметь префикс пространства имен GOOGLE_ADS_. Например, client_id следует хранить как GOOGLE_ADS_CLIENT_ID.
Переменные среды обычно определяются в файле конфигурации bash, например .bashrc или .bash_profile, который находится в каталоге $HOME. Их также можно определить с помощью командной строки.
Вот основные шаги по определению переменной среды с помощью файла .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.
source ~/.bashrc
Переменные среды также можно задать в экземпляре терминала непосредственно из командной строки:
export GOOGLE_ADS_CLIENT_ID=1234567890
echo $GOOGLE_ADS_CLIENT_ID
Метод 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"
}
}
}'
Важно! Если при вызове метода load_from_env задана переменная среды GOOGLE_ADS_CONFIGURATION_FILE_PATH, то значения конфигурации извлекаются из файла google-ads.yaml, расположенного по указанному пути, а не из переменных среды, описанных выше.
Конфигурация с помощью строки YAML
Если вы прочитали файл YAML в память, вы можете передать его клиенту напрямую при инициализации. Для этого используйте метод load_from_string:
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "r", encoding="utf-8") as handle:
yaml_content = handle.read()
client = GoogleAdsClient.load_from_string(yaml_content)
Настройка с помощью dict
Вы можете передать dict непосредственно в метод load_from_dict. Пример:
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"refresh_token": "YOUR_REFRESH_TOKEN",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
Поля конфигурации
В конфигурации клиентской библиотеки поддерживаются следующие поля:
Аутентификация
Используйте только одну из этих групп полей в зависимости от выбранного подхода к аутентификации:
- Однопользовательский режим с учетными данными приложения по умолчанию (документация)
use_application_default_credentials– должна ли библиотека использовать для аутентификации стандартные учетные данные приложения (поддерживается вgoogle-adsv28.3.0и более поздних версиях).
- Для одного пользователя с токенами OAuth (документация)
client_id– идентификатор клиента OAuth.client_secret– секретный код клиента OAuth.refresh_token– ваш токен обновления OAuth.
- Сервисный аккаунт (документация)
json_key_file_path– путь к локальному файлу закрытого ключа. Это используется для аутентификации с помощью сервисного аккаунта.impersonated_email– необязательный адрес электронной почты аккаунта, который нужно использовать при делегировании доступа к домену Google Workspace.
Поведение библиотеки
Эти поля определяют поведение библиотеки:
logging– подробности настройки журнала.http_proxy: ознакомьтесь с документацией по прокси-серверу.use_proto_plus: обязательно. Использовать ли сообщения proto-plus (TrueилиFalse). Подробную информацию можно найти в документации по сообщениям protobuf.
Настройки на уровне запроса
linked_customer_id: ознакомьтесь с документацией по linked-customer-id.login_customer_id: ознакомьтесь с документацией по login-customer-id.endpoint– необязательный альтернативный адрес конечной точки Google Ads API.ads_assistant– необязательный идентификатор для заголовка Google Ads API Assistant.
Переменные среды
Чтобы настроить библиотеку с помощью переменных среды, используйте следующий код:
GOOGLE_ADS_ADS_ASSISTANTGOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_ENDPOINTGOOGLE_ADS_HTTP_PROXYGOOGLE_ADS_IMPERSONATED_EMAILGOOGLE_ADS_JSON_KEY_FILE_PATHGOOGLE_ADS_LINKED_CUSTOMER_IDGOOGLE_ADS_LOGIN_CUSTOMER_IDGOOGLE_ADS_LOGGINGGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_USE_PROTO_PLUSGOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS(поддерживается вv28.3.0и более поздних версиях)
Настройка журнала
Поля журнала, которые находятся под полем конфигурации logging, получены непосредственно из встроенного модуля logging.config, поскольку библиотека передает все поля в пространстве имен logging непосредственно методу logging.config.dictConfig. Подробную информацию вы найдете в руководстве по ведению журнала.
version– целое число, представляющее версию схемы.disable_existing_loggers: указывает, нужно ли отключить регистраторы, настроенные в других местах приложения.formatters– словари, определяющие разные типы средств форматирования.handlers– словари, определяющие разные обработчики, которые управляют тем, куда записываются журналы и какие форматировщики следует использовать.loggers– словари, определяющие разные типы регистраторов, включая обработчик и уровень журнала.