配置

Google Ads API PHP 客户端库提供了数种配置设置,您可以使用这些设置来自定义库行为。

配置文件

您可以将大部分配置设置存储在 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. 否则,请使用 HOME 目录中的 google_ads_php.ini 文件。
$oAuth2Credential = (new OAuth2TokenBuilder())
    ->fromFile()
    ->build();

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

动态配置

您可以在实例化客户端时动态设置这些配置设置。

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID')
    // ...
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
    // ...
    ->build();

配置环境变量

实例化客户端时,您可以通过环境变量设置部分配置设置(请参阅详尽列表)。

凭据和客户端构建器都提供了 fromEnvironmentVariables 方法,用于从环境变量加载设置:

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

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

配置字段

配置设置支持多个按类别整理的字段。

  1. OAuth2TokenBuilder 使用的字段:
    • 应用模式
      • [OAUTH2] clientId:您的 OAuth2 客户端 ID。
      • [OAUTH2] clientSecret:您的 OAuth2 客户端密钥。
      • [OAUTH2] refreshToken:您的 OAuth2 刷新令牌。
    • 服务帐号模式
      • [OAUTH2] jsonKeyFilePath:Json 密钥文件路径。
      • [OAUTH2] scopes:范围。
      • [OAUTH2] impersonatedEmail:要模拟的电子邮件地址。
  2. GoogleAdsClientBuilder 使用的字段:
    • [GOOGLE_ADS] developerToken:用于访问该 API 的开发者令牌。
    • [GOOGLE_ADS] loginCustomerId:要在请求中使用的获授权客户的 ID
    • [GOOGLE_ADS] linkedCustomerId:关联的客户 ID。
    • [LOGGING] logFilePath:日志记录的文件路径。
    • [LOGGING] logLevel:日志记录级别。
    • [CONNECTION] proxy:用于互联网连接的代理服务器网址。
    • [CONNECTION] transport:传输。
    • [CONNECTION] grpcChannelIsSecure:gRPC 通道是否安全。
    • [CONNECTION] grpcChannelCredential:gRPC 通道凭据。
    • [CONNECTION] unaryMiddlewares:一元中间件。
    • [CONNECTION] streamingMiddlewares:流式传输中间件。
    • [CONNECTION] grpcInterceptors:gRPC 拦截器。
  3. [GAPIC] useGapicV2Source:创建服务客户端时是否使用 GAPIC v2 源代码

配置验证

实例化客户端时,系统会检查配置设置,并在无效时抛出异常。规则如下:

  1. 不得同时为应用模式和服务帐号模式设置 [OAUTH2] 字段。
  2. 使用服务帐号模式时,必须设置 [OAUTH2] jsonKeyFilePath[OAUTH2] scopes
  3. 使用应用模式时,必须设置 [OAUTH2] clientId[OAUTH2] clientSecret[OAUTH2] refreshToken
  4. [GOOGLE_ADS] developerToken 必须始终设置。
  5. 如果设置了此参数,[GOOGLE_ADS] loginCustomerId[GOOGLE_ADS] linkedCustomerId 必须为正数。
  6. 如果设置了此字段,则 [CONNECTION] proxy 必须是有效网址(请参阅过滤条件 FILTER_VALIDATE_URL)。
  7. 如果设置了此字段,则 [LOGGING] logLevel 必须是以大写字母表示的有效 PSR 日志级别,例如 INFO
  8. 如果设置了此字段,则 [CONNECTION] transport 必须是 grpcrest
  9. 如果 [CONNECTION] transport 设置为 grpc,则环境必须支持 gRPC 传输(请参阅传输指南)。
  10. 如果 [CONNECTION] transport 未设置为 grpc,则 [CONNECTION] grpcChannelIsSecure 必须为 true
  11. 仅当 [CONNECTION] transport 设为 grpc 时,才能设置 [CONNECTION] grpcChannelCredential
  12. 仅当 [CONNECTION] grpcChannelIsSecuretrue 时,才能设置 [CONNECTION] grpcChannelCredential