Существует несколько различных способов настройки клиента.
Конфигурация аутентификации
Существует несколько способов управления учётными данными 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: Словари, определяющие различные типы регистраторов, включая обработчик и уровень журнала.