Клиентская библиотека Java ищет конфигурационный файл с именем ads.properties в вашем домашнем каталоге ( System.getProperty("user.home") + "/ads.properties" или ~/ads.properties ). Вы можете переопределить этот путь и имя файла во время выполнения при создании объекта GoogleAdsClient используя один из следующих механизмов:
- Вызовите
fromPropertiesFile(PATH_TO_CONFIG_FILE), гдеPATH_TO_CONFIG_FILE— это путьFileи имя файла вашей конфигурации. - Установите переменную среды
GOOGLE_ADS_CONFIGURATION_FILE_PATHуказав путь и имя файла конфигурации, а затем вызовите функциюfromPropertiesFile().
Формат конфигурационного файла представляет собой стандартный файл свойств Java, содержащий пары ключ-значение. Поддерживаемые ключи различаются в зависимости от выбранного способа аутентификации.
Поддерживаемые ключи для работы с настольными и веб-приложениями.
При использовании однопользовательского или многопользовательского режима работы приложения поддерживаются следующие ключи:
# Credential for accessing Google's OAuth servers.
# Provided by console.cloud.google.com.
api.googleads.clientId=INSERT_CLIENT_ID_HERE
# Credential for accessing Google's OAuth servers.
# Provided by console.cloud.google.com.
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
# Renewable OAuth credential associated with 1 or more Google Ads accounts.
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
# Required for manager accounts only: Specify the login customer ID used to
# authenticate API calls. This will be the customer ID of the authenticated
# manager account. You can also specify this later in code if your application
# uses multiple manager account + OAuth pairs.
#
# api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
# Only required if explicitly instructed by the service documentation.
# api.googleads.linkedCustomerId=INSERT_LINKED_CUSTOMER_ID_HERE
# Maximum allowed response payload size, in bytes.
# Customize this to allow response sizes for GoogleAdsService.search and
# GoogleAdsService.searchStream API calls to exceed the default limit of 64MB.
# api.googleads.maxInboundMessageBytes=INSERT_MAX_INBOUND_MESSAGE_BYTES_HERE
# Specifies whether to use Application Default Credentials.
api.googleads.useApplicationDefaultCredentials=false
Поддерживаемые ключи для учетных записей служб
Если вы используете поток учетных записей служб , поддерживаются следующие ключи:
# Path to the service account secrets file in JSON format.
# Provided by console.cloud.google.com.
api.googleads.serviceAccountSecretsPath=INSERT_PATH_TO_JSON_HERE
# Optional: Email address of the user to impersonate when using Google Workspace
# domain-wide delegation. This should be a user who has access to your Google Ads
# account and is in the same Google Workspace domain as the service account.
# api.googleads.serviceAccountUser=INSERT_USER_EMAIL_ADDRESS_HERE
# Required for manager accounts only: Specify the login customer ID used to
# authenticate API calls. This will be the customer ID of the authenticated
# manager account. You can also specify this later in code if your application
# uses multiple manager account + OAuth pairs.
#
# api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
Используйте переменные среды
Библиотека поддерживает все стандартные переменные среды клиентской библиотеки Google Ads API . В следующей таблице показана переменная среды, соответствующая каждому свойству файла конфигурации:
| свойство файла конфигурации | Переменная окружающей среды |
|---|---|
api.googleads.clientId | GOOGLE_ADS_CLIENT_ID |
api.googleads.clientSecret | GOOGLE_ADS_CLIENT_SECRET |
api.googleads.refreshToken | GOOGLE_ADS_REFRESH_TOKEN |
api.googleads.serviceAccountSecretsPath | GOOGLE_ADS_JSON_KEY_FILE_PATH |
api.googleads.serviceAccountUser | GOOGLE_ADS_IMPERSONATED_EMAIL |
api.googleads.loginCustomerId | GOOGLE_ADS_LOGIN_CUSTOMER_ID |
api.googleads.linkedCustomerId | GOOGLE_ADS_LINKED_CUSTOMER_ID |
api.googleads.maxInboundMessageBytes | GOOGLE_ADS_MAX_INBOUND_MESSAGE_BYTES |
api.googleads.useApplicationDefaultCredentials | GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS |
api.googleads.developerToken ( необязательный параметр в v46.0.0 и более поздних ) | GOOGLE_ADS_DEVELOPER_TOKEN |
После установки соответствующих переменных среды настройте GoogleAdsClient , вызвав fromEnvironment() в конструкторе:
GoogleAdsClient googleAdsClient =
GoogleAdsClient.newBuilder()
.fromEnvironment()
.build();
Комбинируйте подходы к конфигурации
Компонент GoogleAdsClient и его конструктор поддерживают комбинирование различных стратегий настройки. Например, вы можете использовать переменные среды для настройки учетных данных экземпляра и файл свойств для других атрибутов, используя следующий фрагмент кода:
GoogleAdsClient googleAdsClient =
GoogleAdsClient.newBuilder()
.fromEnvironment()
.fromPropertiesFile()
.build();
Дополнительные изменения можно внести во время выполнения, используя другие методы конфигурации построителя, прежде чем вызывать build() .
Закрытие срока действия токена разработчика
После прекращения действия токенов разработчиков 9 сентября 2026 года уровни доступа к API будут определяться вашим проектом Google Cloud на сервере API, а не токеном разработчика:
- Изменения в конфигурации : Вам больше не нужно указывать
api.googleads.developerTokenвads.propertiesилиGOOGLE_ADS_DEVELOPER_TOKENв переменных окружения. Существующие приложения, которые по-прежнему указываютapi.googleads.developerTokenпродолжают работать, поскольку API-серверы игнорируют заголовокdeveloper-token(хотя в будущей основной версии Google Ads API он будет отклонен). - Требования к версии клиентской библиотеки : Чтобы исключить токен разработчика из конфигурации, используйте
google-ads-javav46.0.0или более поздней, в которой удалена проверка на стороне клиента, требующая токена разработчика. - Изменения в ошибках авторизации : если проект Google Cloud с доступом только для тестирования обращается к рабочему аккаунту Google Ads,
v25и более поздние версии API Google Ads возвращаютAuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION, тогда какv24и более ранние возвращаютAuthorizationError.ACTION_NOT_PERMITTED.