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 方法會從預設設定路徑載入,路徑如下:
- 名為
GOOGLE_ADS_CONFIGURATION_FILE_PATH的環境變數值 (如有設定)。 - 否則,請使用
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();
設定欄位
設定支援多個欄位,並依類別整理:
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)。
- 如果未設定「Application mode」(應用程式模式) 或「Service account mode」(服務帳戶模式) 欄位,
- 應用程式模式:
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 攔截器。
設定驗證
系統會在例項化用戶端時檢查配置設定,並在無效時擲回例外狀況。驗證規則如下:
- 不得同時為應用程式模式和服務帳戶模式設定
[OAUTH2]欄位。 - 使用服務帳戶模式時,必須設定
[OAUTH2] jsonKeyFilePath(在v32.1.0之前的版本中,也必須設定[OAUTH2] scopes;在v32.1.0和更新版本中,scopes預設為https://www.googleapis.com/auth/adwords)。 - 使用應用程式模式時,必須設定
[OAUTH2] clientId、[OAUTH2] clientSecret和[OAUTH2] refreshToken。 - 如果設定,
[GOOGLE_ADS] loginCustomerId和[GOOGLE_ADS] linkedCustomerId必須為正數。 - 如果設定,
[CONNECTION] proxy必須是有效的網址 (請參閱FILTER_VALIDATE_URL篩選器)。 - 如要設定,
[LOGGING] logLevel必須是有效的 PSR 記錄層級,並以大寫字母表示,例如INFO。 - 如果設定,
[CONNECTION] transport必須是grpc或rest。 - 如果
[CONNECTION] transport設為grpc,環境必須支援 gRPC 傳輸 (請參閱傳輸指南)。 - 如果
[CONNECTION] transport未設為grpc,[CONNECTION] grpcChannelIsSecure必須為true(REST 連線一律需要 HTTPS)。 - 只有在
[CONNECTION] transport設為grpc時,才能設定[CONNECTION] grpcChannelCredential。 - 只有在
[CONNECTION] grpcChannelIsSecure為true時,才能設定[CONNECTION] grpcChannelCredential。