Конфигурация

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Существует несколько различных способов настройки клиента.

Конфигурация с использованием файла YAML

Вы можете указать файл YAML для использования при инициализации клиента, который содержит необходимую информацию для проверки подлинности, необходимую для выполнения запросов. Доступ к этому файлу осуществляется при инициализации клиента с помощью метода load_from_storage . Самый простой способ создать этот файл — скопировать пример google-ads.yaml из репозитория GitHub и изменить его, указав свои учетные данные, в том числе токен разработчика, токен обновления, идентификатор клиента и секрет клиента.

Чтобы указать место, где находится файл 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()

Если предоставлены оба значения — путь передается в метод и указанная выше переменная среды присутствует — тогда библиотека отдает приоритет пути, переданному в метод.

Если вы не укажете путь, библиотека будет искать файл в вашем каталоге $HOME :

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 встроенного в Python модуля os . Например: 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 : словари, определяющие различные типы регистраторов, включая обработчик и уровень журнала.