配置

<ph type="x-smartling-placeholder">

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。

调整MaxReceiveMessageLengthInBytesMaxMetadataSizeInBytes 修正某些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:设置为 APPLICATIONSERVICE_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。设置时不得使用连字符 (-)。详细了解“已关联” 账号