Клиентская библиотека 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) – интервалы повторных попыток в секундах для временных ошибок HTTP503и504(по умолчанию"5,10,15").