Конфигурация

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Клиентская библиотека Google Ads API предоставляет несколько параметров конфигурации, которые можно использовать для настройки поведения библиотеки.

Настройка с помощью 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

Если вы не хотите загромождать свой App.config , вы можете переместить конфигурацию библиотеки в отдельный файл конфигурации, используя свойство configSource .

Шаг 1. Укажите configSource в вашем App.config

Измените свой 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-файл

Создайте файл JSON с именем GoogleAdsApi.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(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(section);
GoogleAdsClient client = new GoogleAdsClient(config);

Настройка библиотеки во время выполнения

Вы также можете инициализировать GoogleAdsClient во время выполнения.

Пример 1: Инициализация конфигурации во время выполнения

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = "APPLICATION",
    OAuth2ClientId = "******.apps.googleusercontent.com",
    OAuth2ClientSecret = "******",
    OAuth2RefreshToken = "******"
};

GoogleAdsClient client = new GoogleAdsClient(config);

Пример 2. Загрузка из App.config, но переопределение параметра

GoogleAdsClient client = new GoogleAdsClient(config);
client.Config.DeveloperToken = "******";

Конфигурация с использованием переменных среды

Вы также можете инициализировать GoogleAdsClient с помощью переменных среды. Эти настройки не подбираются автоматически, вы также должны загрузить настройки из переменных среды, как показано ниже.

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);

См. полный список поддерживаемых переменных среды .

Поля конфигурации

Ниже приведен список настроек, поддерживаемых библиотекой Google Реклама .NET.

Настройки подключения

  • Timeout -аут: Используйте эту клавишу, чтобы установить тайм-аут службы в миллисекундах. Значение по умолчанию задается на основе параметра method_config/timeout в googleads_grpc_service_config.json . Установите меньшее значение, если вам нужно установить более короткое ограничение на максимальное время вызова API. Вы можете установить тайм-аут на 2 часа или больше, но API все равно может истечь по тайм-ауту очень длительных запросов и вернуть ошибку DEADLINE_EXCEEDED .
  • ProxyServer : Установите URL-адрес прокси-сервера HTTP, если вы используете прокси-сервер для подключения к Интернету.
  • ProxyUser : установите это имя пользователя, которое требуется для аутентификации на прокси-сервере. Оставьте это поле пустым, если имя пользователя не требуется.
  • ProxyPassword : Установите пароль ProxyUser , если вы установили значение для ProxyUser .
  • ProxyDomain : установите для этого домена ProxyUser , если ваш прокси-сервер требует его установки.
  • MaxReceiveMessageLengthInBytes : используйте этот параметр, чтобы увеличить максимальный размер ответа API, который может обрабатывать клиентская библиотека. Значение по умолчанию — 64 МБ.
  • MaxMetadataSizeInBytes : используйте этот параметр, чтобы увеличить максимальный размер ответа API об ошибке, который может обрабатывать клиентская библиотека. Значение по умолчанию — 16 МБ.

Настройте параметры 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.
  • OAuth2ClientSecret : задайте для этого значения секрет клиента OAuth2.
  • OAuth2Scope : установите для этого значения разные области, если вы хотите авторизовать токены OAuth2 для нескольких API. Этот параметр является необязательным.

Если вы используете OAuth2Mode == APPLICATION , вам необходимо установить следующие дополнительные ключи конфигурации.

  • OAuth2RefreshToken : установите для этого значения предварительно созданный токен обновления OAuth2, если вы хотите повторно использовать токены OAuth2. Этот параметр является необязательным.
  • OAuth2RedirectUri : задайте для этого значения URL-адрес перенаправления OAuth2. Этот параметр является необязательным.

Дополнительные сведения см. в следующих руководствах:

Если вы используете OAuth2Mode == SERVICE_ACCOUNT , вам необходимо установить следующие дополнительные ключи конфигурации.

  • OAuth2PrnEmail : установите это значение на адрес электронной почты учетной записи, которую вы выдаете за себя.
  • OAuth2SecretsJsonPath : задайте для этого значения путь к файлу конфигурации OAuth2 JSON.

Дополнительные сведения см. в руководстве по учетным записям службы OAuth .

Настройки транспорта

  • UseGrpcCore : установите для этого параметра значение true , чтобы использовать библиотеку Grpc.Core в качестве базового транспортного уровня. Дополнительные сведения см. в руководстве по поддержке gRPC .

Настройки API Google Рекламы

Следующие настройки относятся к Google Ads API.

  • DeveloperToken : установите это на свой токен разработчика.
  • LoginCustomerId : это идентификатор авторизованного клиента для использования в запросе без дефисов ( - ).
  • LinkedCustomerId : этот заголовок требуется только для методов, которые обновляют ресурсы объекта при наличии разрешения через связанные учетные записи в пользовательском интерфейсе Google Ads (ресурс AccountLink в Google Ads API). Задайте для этого значения идентификатор клиента поставщика данных, который обновляет ресурсы указанного идентификатора клиента. Он должен быть указан без дефисов ( - ). Узнайте больше о связанных учетных записях .