配置

Google Ads API Perl 客户端库提供了多种配置设置,您可以使用这些设置自定义库行为。

配置文件

您可以指定在实例化客户端时要使用的 googleads.properties 文件。

如果您在实例化时不使用任何实参:

my $api_client = Google::Ads::GoogleAds::Client->new();

然后,该库会在 HOME 目录中查找相应文件,或者在 GOOGLE_ADS_CONFIGURATION_FILE_PATH 环境变量(如果已设置)中指定的路径中查找相应文件。

或者,您也可以明确指定路径:

my $properties_file = "/path/to/googleads.properties";

my $api_client = Google::Ads::GoogleAds::Client->new({
  properties_file => $properties_file,
});

在这种情况下,客户端会在该路径中查找文件。

生成此文件的最简单方法是从 GitHub 代码库复制 googleads.properties,然后对其进行修改,以添加您的客户端 ID、客户端密钥和刷新令牌。

动态配置

您可以在实例化库时动态设置配置,也可以在实例化后设置:

my $api_client = Google::Ads::GoogleAds::Client->new({
  login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE",
});

您还可以在实例化后修改配置:

$api_client->set_login_customer_id("INSERT_LOGIN_CUSTOMER_ID_HERE");

您还可以从 Client 实例获取 OAuth2ApplicationsHandler 对象,并在运行时更改客户端 ID、客户端密钥和刷新令牌:

my $oauth2_applications_handler =
  $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID_HERE");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET_HERE");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN_HERE");

配置环境变量

在实例化客户端时,您可以通过环境变量设置部分配置设置(请参阅标准环境变量)。

Client 模块提供 configure_from_environment_variables 函数,用于从环境变量加载值。

# Get the Google Ads API Client. By default, any credentials are read from
# ~/googleads.properties, or, if set, from the file specified in the
# GOOGLE_ADS_CONFIGURATION_FILE_PATH environment variable.
my $api_client = Google::Ads::GoogleAds::Client->new();

# Load the configuration from any set environment variables.
$api_client->configure_from_environment_variables();

配置字段

请注意,googleads.properties 键使用 camelCase(例如 loginCustomerId 和 linkedCustomerId),而 Client->new({...}) 构造函数实参和处理程序方法使用 snake_case(例如 login_customer_id 和 linked_customer_id)。

OAuth2ApplicationsHandler 中持久保存的字段:

  • client_id(googleads.properties 中的 clientId,GOOGLE_ADS_CLIENT_ID):您的 OAuth2 客户端 ID。
  • client_secret(googleads.properties 中的 clientSecret,GOOGLE_ADS_CLIENT_SECRET):您的 OAuth2 客户端密钥。
  • refresh_token(googleads.properties 中的 refreshToken,GOOGLE_ADS_REFRESH_TOKEN):您的 OAuth2 刷新令牌。
  • additional_scopes(googleads.properties 中的 additionalScopes):要请求的其他 OAuth2 范围。

OAuth2ServiceAccountsHandler 中持久保存的字段:

  • json_key_file_path(googleads.properties 中的 jsonKeyFilePath,GOOGLE_ADS_JSON_KEY_FILE_PATH):服务账号 JSON 密钥文件的路径。
  • impersonated_email(googleads.properties 中的 impersonatedEmail,GOOGLE_ADS_IMPERSONATED_EMAIL):使用 Google Workspace 网域范围内的委托时要模拟的电子邮件地址。
  • additional_scopes(googleads.properties 中的 additionalScopes):要请求的其他 OAuth2 范围。

Client 中持久保存的字段:

  • developer_token(googleads.properties 中的 developerToken, GOOGLE_ADS_DEVELOPER_TOKEN):(2026 年 9 月 9 日停用)您的 Google Ads API 开发者令牌。 可选,无论客户端库版本如何,API 服务器都会忽略此字段,并且在未来某个 Google Ads API 主要版本中,此字段将被拒绝。
    • v35.0.0 及更高版本:在客户端初始化时不需要(v35.0.0 中移除了本地客户端 developerToken 验证)。
    • v35.0.0 之前的版本:如果您尚未升级到 v35.0.0 或更高版本,则本地客户端配置验证需要此版本。
  • login_customer_id(googleads.properties 中的 loginCustomerId,GOOGLE_ADS_LOGIN_CUSTOMER_ID):用于访问客户账号的经理账号的 ID。请参阅 login-customer-id 文档。
  • linked_customer_id(googleads.properties 中的 linkedCustomerId,GOOGLE_ADS_LINKED_CUSTOMER_ID):关联的客户 ID。
  • service_address(googleads.properties 中的 serviceAddress,GOOGLE_ADS_ENDPOINT):Google Ads API 服务地址网址(默认值为 "https://googleads.googleapis.com")。
  • user_agent(googleads.properties 中的 userAgent,GOOGLE_ADS_PERL_USER_AGENT):HTTP 请求中包含的自定义 User-Agent 标头前缀。
  • proxy(googleads.properties 中的 proxy,GOOGLE_ADS_PERL_PROXY):用于互联网连接的代理服务器网址。
  • version(Client->new 或 set_version):要使用的 Google Ads API 版本模块(默认为 "V25")。
  • die_on_faults(Client->new 或 set_die_on_faults):设置为 1 可使服务方法在 API 发生错误时调用 die() 并使用原始响应载荷,而不是返回 Google::Ads::GoogleAds::GoogleAdsException 对象(默认值为 0)。
  • http_timeout(Client->new 或 set_http_timeout):HTTP 超时时间(以秒为单位,默认值为 3600)。
  • http_retry_timing(Client->new 或 set_http_retry_timing):对于暂时性 HTTP 503 和 504 错误,重试暂停间隔(以秒为单位)(默认为 "5,10,15")。