設定

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_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 用戶端 ID。
      • [OAUTH2] clientSecret:OAuth2 用戶端密鑰。
      • [OAUTH2] refreshToken:您的 OAuth2 更新權杖。
    • 服務帳戶模式:
      • [OAUTH2] jsonKeyFilePath:JSON 金鑰路徑。
      • [OAUTH2] scopes:OAuth2 範圍 (在 v32.1.0 以上版本中預設為 https://www.googleapis.com/auth/adwords;在 v32.1.0 之前的版本中或使用自訂範圍時為必要;fromEnvironmentVariables() 不會從環境變數讀取)。
      • [OAUTH2] impersonatedEmail:使用 Google Workspace 全網域委派功能時,可選擇要模擬的電子郵件地址。
    • 應用程式預設憑證模式:
      • 如果未設定「Application mode」(應用程式模式) 或「Service account mode」(服務帳戶模式) 欄位,OAuth2TokenBuilder 會自動改用應用程式預設憑證 (ADC)。
  2. GoogleAdsClientBuilder 使用的欄位:
    • [GOOGLE_ADS] loginCustomerId:要求中使用的授權客戶 ID。
    • [GOOGLE_ADS] linkedCustomerId:連結的客戶 ID。
    • [GOOGLE_ADS] endpoint:選用的替代 Google Ads API 伺服器端點。
    • [LOGGING] logFilePath:記錄輸出的路徑。
    • [LOGGING] logLevel:記錄層級。
    • [CONNECTION] proxy:用於網際網路連線的 Proxy 伺服器網址。
    • [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. 如果設定,[GOOGLE_ADS] loginCustomerId 和 [GOOGLE_ADS] linkedCustomerId 必須為正數。
  5. 如果設定,[CONNECTION] proxy 必須是有效的網址 (請參閱 FILTER_VALIDATE_URL 篩選器)。
  6. 如要設定,[LOGGING] logLevel 必須是有效的 PSR 記錄層級,並以大寫字母表示,例如 INFO。
  7. 如果設定,[CONNECTION] transport 必須是 grpc 或 rest。
  8. 如果 [CONNECTION] transport 設為 grpc,環境必須支援 gRPC 傳輸 (請參閱傳輸指南)。
  9. 如果 [CONNECTION] transport 未設為 grpc,[CONNECTION] grpcChannelIsSecure 必須為 true (REST 連線一律需要 HTTPS)。
  10. 只有在 [CONNECTION] transport 設為 grpc 時,才能設定 [CONNECTION] grpcChannelCredential。
  11. 只有在 [CONNECTION] grpcChannelIsSecure 為 true 時,才能設定 [CONNECTION] grpcChannelCredential。