Google Ads API 客户端库提供了多项配置设置, 您可以使用它来自定义库行为
在运行时配置库
配置客户端库的首选方法是初始化
GoogleAdsConfig
对象:
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "******.apps.googleusercontent.com",
OAuth2ClientSecret = "******",
OAuth2RefreshToken = "******"
};
GoogleAdsClient client = new GoogleAdsClient(config);
备用配置选项
我们还提供了一些其他选项来配置客户端库:
启用它们,添加对 Google.Ads.GoogleAds.Extensions
的 Nuget 引用
软件包位于
自己的项目
如果您使用上述某个选项,系统将不会选择配置设置 自动加载这些组件,如下所示。
使用 App.config 进行配置
特定于 Google Ads API
的所有设置都存储在 GoogleAdsApi
中
是 App.config
文件的节点。典型配置 App.config
为
如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler" />
</configSections>
<GoogleAdsApi>
<!-- Set the service timeout in milliseconds. -->
<add key="Timeout" value="2000" />
<!-- Proxy settings for library. -->
<add key="ProxyServer" value="http://localhost:8888"/>
<add key="ProxyUser" value=""/>
<add key="ProxyPassword" value=""/>
<add key="ProxyDomain" value=""/>
<!-- API-specific settings -->
<add key="DeveloperToken" value="******"/>
<!-- OAuth2 settings -->
<add key = "OAuth2Mode" value="APPLICATION"/>
<add key = "OAuth2ClientId" value = "******.apps.googleusercontent.com" />
<add key = "OAuth2ClientSecret" value = "******" />
<add key = "OAuth2RefreshToken" value = "******" />
</GoogleAdsApi>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
如需从 App.config
文件加载配置设置,请调用
对 GoogleAdsConfig
对象调用 LoadFromDefaultAppConfigSection
方法:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
指定单独的 App.config 文件
如果您不想让App.config
杂乱无章,可以将
使用
configSource
属性。
第 1 步:在 App.config 中指定 configSource
将您的 App.config
修改为如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
</configSections>
<GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>
第 2 步:指定配置文件的内容
现在,使用您在 configSource
中指定的名称创建另一个配置文件,
并将配置节点从 App.config
移至以下文件中:
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
第 3 步:修复 csproj 中的构建规则
最后,在项目中添加新的配置文件。更改属性 始终复制到输出文件夹。
现在,构建并运行您的项目。您的应用将开始提取值 更改配置文件
使用自定义 JSON 文件的配置
您可以使用
IConfigurationRoot
来配置客户端库
创建 JSON 文件
创建一个名为 GoogleAdsApi.json
的 JSON 文件,其结构与
App.config
文件。
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
}
加载配置
接下来,将 JSON 文件加载到 IConfigurationRoot
中。
ConfigurationBuilder builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("GoogleAdsApi.json");
IConfigurationRoot configRoot = builder.Build();
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationRoot(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);
使用 settings.json 进行配置
该过程与使用自定义 JSON 类似,不同之处在于键应
位于 GoogleAdsApi
部分:
{
"GoogleAdsApi":
{
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
...
}
// More settings...
}
接下来,您可以在页面中使用 IConfiguration
实例:
IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
使用环境变量进行配置
您还可以使用环境变量初始化 GoogleAdsClient
:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
配置字段
以下是 Google Ads .NET 库支持的设置列表。
互联网连接设置
Timeout
:使用此键可设置服务超时(以毫秒为单位)。通过 默认值是根据method_config/timeout
googleads_grpc_service_config.json. 如果您需要对最长时间施加较短的限制,请设置一个较低的值 进行 API 调用您可以将超时设置为 2 小时或更长时间,但 API 可以 仍会超时运行时间极长的请求,并返回DEADLINE_EXCEEDED
错误。ProxyServer
:如果您使用的是 以连接到互联网。ProxyUser
:将此项设置为需要进行身份验证的用户名 代理服务器。如果不需要用户名,请将其留空。ProxyPassword
:如果您设置了一个值,请将此项设为ProxyUser
的密码 价格为ProxyUser
。ProxyDomain
:如果您使用的是代理服务器,请将此项设置为ProxyUser
的域名 需要设置一个。MaxReceiveMessageLengthInBytes
:使用此设置可以提高上限 客户端库可处理的 API 响应的大小。默认 值为 64 MB。MaxMetadataSizeInBytes
:使用此设置可以提高上限 客户端库可处理的 API 错误响应的大小。通过 默认值为 16 MB。
调整
MaxReceiveMessageLengthInBytes
和MaxMetadataSizeInBytes
修正某些ResourceExhausted
错误。这些设置会指定Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"
格式的错误。在此示例中,错误是由邮件大小 (
423184132 bytes
) 引起的 超出库所能处理的上限 (67108864 bytes
)。提高 将MaxReceiveMessageLengthInBytes
重命名为500000000
,以避免此错误。请注意,此错误也表明您的代码对 大型 Response 对象(例如大型
SearchGoogleAdsResponse
)。这个 因为 .NET 的大型对象 堆。 如果这会给您带来性能方面的顾虑,那么您可能需要探索 重新组织您的 API 调用或重新设计应用的某些部分。
OAuth2 设置
使用 OAuth2 授权针对 Google Ads API 服务器的调用时 您应设置以下配置键:
AuthorizationMethod
:设置为OAuth2
。OAuth2Mode
:设置为APPLICATION
或SERVICE_ACCOUNT
。OAuth2ClientId
:将此值设置为您的 OAuth2 客户端 ID。OAuth2ClientSecret
:将此值设置为您的 OAuth2 客户端密钥。OAuth2Scope
:如果您要授权,请将此值设置为不同的范围 多个 API 的 OAuth2 令牌。此设置是可选的。
如果您使用的是 OAuth2Mode == APPLICATION
,则需要设置以下内容:
额外配置键
OAuth2RefreshToken
:将此值设置为预先生成的 OAuth2 刷新令牌 如果您想重复使用 OAuth2 令牌此设置是可选的。OAuth2RedirectUri
:将此值设置为 OAuth2 重定向网址。此设置 是可选属性。
如需了解详情,请参阅以下指南:
如果您使用的是 OAuth2Mode == SERVICE_ACCOUNT
,则需要设置
添加一些额外的配置键
OAuth2PrnEmail
:将此值设置为您当前所用账号的电子邮件地址 冒充别人。OAuth2SecretsJsonPath
:将此值设置为 OAuth2 JSON 配置 文件路径。
请参阅 OAuth 服务账号流程 指南。
交通设置
UseGrpcCore
:将此设置设为true
可将Grpc.Core
库用作 底层传输层请参阅 gRPC 支持 指南。
Google Ads API 设置
以下设置特定于 Google Ads API。
DeveloperToken
:将此项设置为您的开发者令牌。LoginCustomerId
:这是获授权客户使用的客户 ID 不带连字符 (-
)。LinkedCustomerId
:仅更新 实体资源(通过 Google Ads 界面(Google Ads API 中的AccountLink
资源)。将此值设置为 更新指定 客户 ID。设置时不得使用连字符 (-
)。详细了解“已关联” 账号。