設定

設定是透過 Config 類別管理。您可以透過設定檔設定用戶端、在建立時動態指定值,或從環境變數載入值。

設定檔

您可以在例項化用戶端時,指定要使用的 google_ads_config.rb 檔案。

如果例項化 GoogleAdsClient 物件時未傳遞任何引數,程式庫會依下列順序搜尋設定檔:

  1. GOOGLE_ADS_CONFIGURATION_FILE_PATH 環境變數中指定的路徑。
  2. HOME 目錄中的 google_ads_config.rb 檔案 (~/google_ads_config.rb)。

或者,您也可以在例項化 GoogleAdsClient 物件時傳遞明確路徑:

client = Google::Ads::GoogleAds::GoogleAdsClient.new('path/to/file.rb')

如要產生這個檔案,請從 GitHub 存放區複製 google_ads_config.rb,並修改檔案,加入更新權杖、用戶端 ID 和用戶端密鑰。

動態設定

您可以在例項化程式庫時動態設定設定:

client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
  config.client_id = 'INSERT_CLIENT_ID_HERE'
  # ... additional configuration
end

您也可以在例項化後修改設定 (這會覆寫初始化期間載入的設定):

client.configure do |config|
  config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
  # ... additional configuration
end

設定欄位

Config 物件支援下列欄位。

一般欄位:

  • refresh_token:您的 OAuth 更新權杖 (GOOGLE_ADS_REFRESH_TOKEN)。
  • client_id:您的 OAuth 用戶端 ID (GOOGLE_ADS_CLIENT_ID)。
  • client_secret:您的 OAuth 用戶端密鑰 (GOOGLE_ADS_CLIENT_SECRET)。
  • keyfile:服務帳戶 JSON 金鑰檔案的路徑 (GOOGLE_ADS_JSON_KEY_FILE_PATH)。
  • impersonate:使用服務帳戶和全網域委派 (GOOGLE_ADS_IMPERSONATED_EMAIL) 時要模擬的電子郵件地址。
  • use_application_default_credentials:設為 true,即可使用應用程式預設憑證 (GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS) 進行驗證。google-ads-googleads 36.1.0 以上版本支援這項功能。
  • authentication:自訂驗證物件,例如 Proc (updater_proc)、金鑰檔案路徑或 Hash,或 GRPC::Core::Channel/GRPC::Core::ChannelCredentials。覆寫 client_id、client_secret、refresh_token 和 keyfile。
  • login_customer_id:請參閱登入客戶 ID 說明文件 (GOOGLE_ADS_LOGIN_CUSTOMER_ID)。
  • linked_customer_id:已連結的客戶 ID (GOOGLE_ADS_LINKED_CUSTOMER_ID)。
  • ads_assistant:Google Ads API Assistant 標頭的選用 ID (GOOGLE_ADS_ASSISTANT;在 37.0.0 版中新增為 gaada,並在 39.0.0 版中重新命名為 ads_assistant)。
  • http_proxy:選用 HTTP 或 HTTPS 代理 URI (GOOGLE_ADS_RUBY_HTTP_PROXY)。
  • api_endpoint:選用的 API 端點覆寫 (GOOGLE_ADS_ENDPOINT)。
  • treat_deprecation_warnings_as_errors:在叫用已淘汰的程式庫程式碼時,引發例外狀況,而非呼叫 Warning#warn (預設為 false)。
  • warn_on_all_deprecations:在每次呼叫時發出淘汰警告,而非每個呼叫網站一次 (預設為 false)。

記錄檔欄位 (詳情請參閱記錄指南):

  • log_level:要記錄的最低記錄檔層級訊息。舉例來說,指定 'DEBUG' 會記錄所有訊息,指定 'INFO' 則會排除 DEBUG 訊息,同時顯示所有其他訊息。
  • log_target:要記錄的位置,例如 STDERR 或路徑。
  • logger:指定自己的自訂記錄器。指定此屬性會覆寫 log_level 和 log_target。

環境變數

您可以使用環境變數設定用戶端程式庫。這些模型不會預設載入,必須在例項化用戶端後明確呼叫,才能載入。如需標準環境變數的完整清單,請參閱這篇文章。

如要將環境變數載入 Config,請呼叫 load_environment_config:

client = Google::Ads::GoogleAds::GoogleAdsClient.new
client.load_environment_config

每次呼叫 load_environment_config 時,任何已定義的環境變數都會覆寫 Config 中已有的對應值 (未設定的環境變數不會變更現有的設定值)。透過這項機制,您可以維護預設設定檔,並使用環境變數覆寫特定值,或完全使用環境變數設定用戶端。

除了標準環境變數外,Ruby 程式庫還支援兩個額外變數:

  • GOOGLE_ADS_RUBY_LOG_LEVEL:如前文所述,這相當於 log_level。
  • GOOGLE_ADS_RUBY_HTTP_PROXY:指定 HTTP Proxy 網址。