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

Клиентская PHP-библиотека Google Ads API предоставляет несколько параметров конфигурации, которые можно использовать для настройки поведения библиотеки.

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

Большинство этих параметров конфигурации можно хранить в INI -файлах и использовать при создании экземпляров клиентов, например, google_ads_php.ini .

И конструкторы учетных данных, и конструкторы клиентов предоставляют методы fromFile для загрузки настроек из таких файлов:

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->fromFile('/path/to/google_ads_php.ini')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->fromFile('/path/to/google_ads_php.ini')
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

Если в качестве аргумента не указан путь к конфигурации, методы fromFile загружают данные из пути к конфигурации по умолчанию, который равен:

  1. Значение переменной среды с именем GOOGLE_ADS_CONFIGURATION_FILE_PATH , если она задана.
  2. В противном случае, используйте файл google_ads_php.ini , расположенный в вашей HOME директории.
$oAuth2Credential = (new OAuth2TokenBuilder())
    ->fromFile()
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->fromFile()
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

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

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

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_CLIENT_SECRET_HERE')
    ->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

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

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

И конструкторы учетных данных, и конструкторы клиентов предоставляют методы fromEnvironmentVariables для загрузки настроек из переменных среды.

$oAuth2Credential = (new OAuth2TokenBuilder())
    // ...
    ->fromEnvironmentVariables()
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    // ...
    ->fromEnvironmentVariables()
    ->build();

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

Настройки конфигурации поддерживают несколько полей, сгруппированных по категориям:

  1. Поля, используемые OAuth2TokenBuilder :
    • Режим работы приложения:
      • [OAUTH2] clientId : Ваш идентификатор клиента OAuth2.
      • [OAUTH2] clientSecret : Ваш секретный ключ клиента OAuth2.
      • [OAUTH2] refreshToken : Ваш токен обновления OAuth2.
    • Режим учетной записи службы:
      • [OAUTH2] jsonKeyFilePath : Путь к JSON-ключу.
      • [OAUTH2] scopes : Области действия OAuth2 (по умолчанию https://www.googleapis.com/auth/adwords в v32.1.0 и более поздних; требуется в версиях до v32.1.0 или при использовании пользовательских областей действия; не считывается из переменной среды функцией fromEnvironmentVariables() ).
      • [OAUTH2] impersonatedEmail : Необязательный адрес электронной почты для имитации пользователя при использовании делегирования полномочий в масштабе всего домена Google Workspace.
    • Режим учетных данных приложения по умолчанию:
      • Если поля «Режим приложения» и «Режим учетной записи службы» не заданы, OAuth2TokenBuilder автоматически переключается на учетные данные приложения по умолчанию (ADC).
  2. Поля, используемые GoogleAdsClientBuilder :
    • [GOOGLE_ADS] developerToken : ( Закрытие 9 сентября 2026 г. ) Ваш токен разработчика Google Ads API. Необязателен, игнорируется серверами API независимо от версии клиентской библиотеки и будет отклонен в будущей основной версии Google Ads API.
      • v35.0.0 и более поздние : не требуется при инициализации клиента ( GoogleAdsClientBuilder удалил локальную проверку токена разработчика на стороне клиента).
      • Версии до v35.0.0 : Требуются для локальной проверки конфигурации на стороне клиента.
    • [GOOGLE_ADS] loginCustomerId : Идентификатор авторизованного клиента , используемый в запросе.
    • [GOOGLE_ADS] linkedCustomerId : Идентификатор связанного клиента.
    • [GOOGLE_ADS] endpoint : Необязательная альтернативная конечная точка сервера Google Ads API.
    • [LOGGING] logFilePath : Путь для вывода логов.
    • [LOGGING] logLevel : Уровень логирования.
    • [CONNECTION] proxy : URL-адрес прокси-сервера, используемый для подключения к интернету.
    • [CONNECTION] transport : Сетевой транспорт ( grpc или rest ).
    • [CONNECTION] grpcChannelIsSecure : Указывает, является ли канал gRPC защищенным.
    • [CONNECTION] grpcChannelCredential : Учетные данные канала gRPC.
    • [CONNECTION] unaryMiddlewares : Унарное промежуточное ПО.
    • [CONNECTION] streamingMiddlewares : Промежуточное ПО для потоковой передачи данных.
    • [CONNECTION] grpcInterceptors : Перехватчики gRPC.

Проверка конфигурации

При создании экземпляров клиентов проверяются параметры конфигурации, и при их некорректности генерируются исключения. Правила проверки следующие:

  1. Поля [OAUTH2] не должны быть заданы одновременно для режима приложения и режима учетной записи службы.
  2. [OAUTH2] jsonKeyFilePath необходимо установить при использовании режима служебной учетной записи (в версиях до v32.1.0 также необходимо установить [OAUTH2] scopes ; в версиях v32.1.0 и более поздних scopes по умолчанию равен https://www.googleapis.com/auth/adwords ).
  3. При использовании режима приложения необходимо установить параметры [OAUTH2] clientId , [OAUTH2] clientSecret и [OAUTH2] refreshToken .
  4. В версиях до v35.0.0 проверка [GOOGLE_ADS] developerToken выполняется локально на стороне клиента (в версиях v35.0.0 и более поздних версиях [GOOGLE_ADS] developerToken не требуется).
  5. Если задано, то значения [GOOGLE_ADS] loginCustomerId и [GOOGLE_ADS] linkedCustomerId должны быть положительными числами.
  6. Если задано, [CONNECTION] proxy должен быть допустимым URL-адресом (см. фильтр FILTER_VALIDATE_URL ).
  7. Если задано значение [LOGGING] logLevel должен быть допустимым уровнем логирования PSR, написанным заглавными буквами, например, INFO .
  8. Если задано, [CONNECTION] transport должно быть либо grpc , либо rest .
  9. Если для [CONNECTION] transport установлено значение grpc , среда должна поддерживать транспорт gRPC (см. руководство по транспорту ).
  10. [CONNECTION] grpcChannelIsSecure должно быть true если для параметра [CONNECTION] transport не установлен grpc (REST-соединения всегда требуют HTTPS).
  11. [CONNECTION] grpcChannelCredential можно установить только в том случае, если для [CONNECTION] transport установлено значение grpc .
  12. [CONNECTION] grpcChannelCredential может быть установлено только тогда, когда [CONNECTION] grpcChannelIsSecure имеет true .