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

Клиентская библиотека Perl для Google Ads API содержит несколько настроек, позволяющих задавать ее поведение.

Файл конфигурации

При создании экземпляра клиента можно указать файл googleads.properties.

Если вы не используете аргументы при создании экземпляра:

my $api_client = Google::Ads::GoogleAds::Client->new();

то библиотека ищет файл в каталоге HOME или по пути, указанному в переменной среды GOOGLE_ADS_CONFIGURATION_FILE_PATH, если она задана.

Вы также можете указать путь явным образом:

my $properties_file = "/path/to/googleads.properties";

my $api_client = Google::Ads::GoogleAds::Client->new({
  properties_file => $properties_file,
});

В этом случае клиент ищет файл по указанному пути.

Проще всего скопировать файл googleads.properties из репозитория GitHub и добавить в него идентификатор клиента, секретный код клиента и токен обновления.

Динамическая конфигурация

Вы можете задать конфигурацию динамически при создании экземпляра библиотеки или после этого:

my $api_client = Google::Ads::GoogleAds::Client->new({
  login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE",
});

Вы также можете изменить конфигурацию после создания экземпляра:

$api_client->set_login_customer_id("INSERT_LOGIN_CUSTOMER_ID_HERE");

Вы также можете получить объект OAuth2ApplicationsHandler из экземпляра Client и изменить идентификатор клиента, секретный код клиента и токен обновления во время выполнения:

my $oauth2_applications_handler =
  $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID_HERE");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET_HERE");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN_HERE");

Переменные среды конфигурации

Некоторые настройки конфигурации можно задать с помощью переменных среды при создании экземпляров клиентов (см. стандартные переменные среды).

Модуль Client предоставляет функцию configure_from_environment_variables для загрузки значений из переменных среды.

# Get the Google Ads API Client. By default, any credentials are read from
# ~/googleads.properties, or, if set, from the file specified in the
# GOOGLE_ADS_CONFIGURATION_FILE_PATH environment variable.
my $api_client = Google::Ads::GoogleAds::Client->new();

# Load the configuration from any set environment variables.
$api_client->configure_from_environment_variables();

Поля конфигурации

Обратите внимание, что в ключах googleads.properties используется camelCase (например, loginCustomerId и linkedCustomerId), а в аргументах конструктора Client->new({...}) и методах обработчика – snake_case (например, login_customer_id и linked_customer_id).

Поля, сохраняемые в OAuth2ApplicationsHandler:

  • client_id (clientId в googleads.properties, GOOGLE_ADS_CLIENT_ID): идентификатор клиента OAuth2.
  • client_secret (clientSecret в googleads.properties, GOOGLE_ADS_CLIENT_SECRET): секретный код клиента OAuth2.
  • refresh_token (refreshToken в googleads.properties, GOOGLE_ADS_REFRESH_TOKEN) – ваш токен обновления OAuth2.
  • additional_scopes (additionalScopes в googleads.properties): дополнительные области действия OAuth2, которые нужно запросить.

Поля, сохраняемые в OAuth2ServiceAccountsHandler:

  • json_key_file_path (jsonKeyFilePath в googleads.properties, GOOGLE_ADS_JSON_KEY_FILE_PATH) – путь к файлу JSON с ключом сервисного аккаунта.
  • impersonated_email (impersonatedEmail в googleads.properties, GOOGLE_ADS_IMPERSONATED_EMAIL) – адрес электронной почты, который будет использоваться при делегировании доступа к домену Google Workspace.
  • additional_scopes (additionalScopes в googleads.properties): дополнительные области действия OAuth2, которые нужно запросить.

Поля, сохраняемые в Client:

  • login_customer_id (loginCustomerId в googleads.properties, GOOGLE_ADS_LOGIN_CUSTOMER_ID) – идентификатор управляющего аккаунта, который используется для доступа к клиентскому аккаунту. Подробнее о login-customer-id…
  • linked_customer_id (linkedCustomerId в googleads.properties, GOOGLE_ADS_LINKED_CUSTOMER_ID) – идентификатор связанного клиента.
  • service_address (serviceAddress в googleads.properties, GOOGLE_ADS_ENDPOINT) – URL сервиса Google Ads API (по умолчанию "https://googleads.googleapis.com").
  • user_agent (userAgent в googleads.properties, GOOGLE_ADS_PERL_USER_AGENT) – специальный префикс заголовка агента пользователя, включенный в HTTP-запросы.
  • proxy (proxy в googleads.properties, GOOGLE_ADS_PERL_PROXY). URL прокси-сервера, используемого для подключения к интернету.
  • version (Client->new или set_version) – модуль версии Google Ads API, который нужно использовать (по умолчанию "V26").
  • die_on_faults (Client->new или set_die_on_faults): задайте значение 1, чтобы методы сервиса вызывали die() с необработанными полезными данными ответа при ошибках API вместо возврата объекта Google::Ads::GoogleAds::GoogleAdsException (по умолчанию 0).
  • http_timeout (Client->new или set_http_timeout) – время ожидания HTTP в секундах (по умолчанию 3600).
  • http_retry_timing (Client->new или set_http_retry_timing) – интервалы повторных попыток в секундах для временных ошибок HTTP 503 и 504 (по умолчанию "5,10,15").