配置使用 Config 类进行管理。您可以使用配置文件、在创建时动态指定值或从环境变量加载值来配置客户端。
配置文件
您可以指定在实例化客户端时要使用的 google_ads_config.rb 文件。
如果您在实例化 GoogleAdsClient 对象时未传递任何实参,该库会按以下顺序搜索配置文件:
GOOGLE_ADS_CONFIGURATION_FILE_PATH环境变量中指定的路径。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-googleadsv36.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 代理网址。