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、GOOGLE_ADS_CLIENT_ID中的clientId):您的 OAuth2 客户端 ID。client_secret(googleads.properties、GOOGLE_ADS_CLIENT_SECRET中的clientSecret):您的 OAuth2 客户端密钥。refresh_token(googleads.properties、GOOGLE_ADS_REFRESH_TOKEN中的refreshToken):您的 OAuth2 刷新令牌。additional_scopes(googleads.properties中的additionalScopes):要请求的其他 OAuth2 范围。
OAuth2ServiceAccountsHandler 中保留的字段:
json_key_file_path(googleads.properties、GOOGLE_ADS_JSON_KEY_FILE_PATH中的jsonKeyFilePath):服务账号 JSON 密钥文件的路径。impersonated_email(googleads.properties、GOOGLE_ADS_IMPERSONATED_EMAIL中的impersonatedEmail):使用 Google Workspace 全网域授权时要模拟的电子邮件地址。additional_scopes(googleads.properties中的additionalScopes):要请求的其他 OAuth2 范围。
Client 中保留的字段:
login_customer_id(googleads.properties、GOOGLE_ADS_LOGIN_CUSTOMER_ID中的loginCustomerId):用于访问客户账号的经理账号的 ID。请参阅 login-customer-id 文档。linked_customer_id(linkedCustomerId,googleads.properties,GOOGLE_ADS_LINKED_CUSTOMER_ID):关联的客户 ID。service_address(googleads.properties、GOOGLE_ADS_ENDPOINT中的serviceAddress):Google Ads API 服务地址网址(默认为"https://googleads.googleapis.com")。user_agent(googleads.properties、GOOGLE_ADS_PERL_USER_AGENT中的userAgent):HTTP 请求中包含的自定义用户代理标头前缀。proxy(googleads.properties、GOOGLE_ADS_PERL_PROXY中的proxy):用于互联网连接的代理服务器网址。version(Client->new或set_version):要使用的 Google Ads API 版本模块(默认为"V26")。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")。