配置

配置使用 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 v36.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 助理标头的可选标识符(GOOGLE_ADS_ASSISTANT;在 v37.0.0 中添加为 gaada,并在 v39.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 代理网址。