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):对于暂时性 HTTP503和504错误,重试暂停间隔(以秒为单位)(默认为"5,10,15")。