Клиентская библиотека API Google Рекламы предоставляет несколько параметров конфигурации, которые можно использовать для настройки поведения библиотеки.
Настройка библиотеки во время выполнения
Предпочтительный способ настройки клиентской библиотеки — инициализировать объект GoogleAdsConfig
во время выполнения:
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "******.apps.googleusercontent.com",
OAuth2ClientSecret = "******",
OAuth2RefreshToken = "******"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Альтернативные варианты конфигурации
Мы также предоставляем некоторые дополнительные возможности для настройки клиентской библиотеки: чтобы их включить, добавьте ссылку Nuget на пакет Google.Ads.GoogleAds.Extensions
в своем проекте.
Если вы используете один из этих вариантов, параметры конфигурации не подбираются автоматически: вам следует явно загрузить их, как показано ниже.
Настройте с помощью 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
, вызовите метод LoadFromDefaultAppConfigSection
объекта GoogleAdsConfig
:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
Укажите отдельный файл App.config.
Если вы не хотите загромождать свой App.config
, вы можете переместить конфигурацию, специфичную для библиотеки, в отдельный файл конфигурации, используя свойство configSource
.
Шаг 1. Укажите источник конфигурации в вашем 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();
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 Рекламы .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 для авторизации вызовов к серверам API Google Рекламы вам следует установить следующие ключи конфигурации:
-
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
: задайте для этого значения путь к файлу конфигурации JSON OAuth2.
Дополнительные сведения см. в руководстве по работе с учетной записью службы OAuth .
Настройки транспорта
-
UseGrpcCore
: установите для этого параметра значениеtrue
, чтобы использовать библиотекуGrpc.Core
в качестве базового транспортного уровня. Дополнительные сведения см. в руководстве по поддержке gRPC .
Настройки API Google Рекламы
Следующие настройки относятся только к Google Ads API.
-
DeveloperToken
: установите для своего токена разработчика. -
LoginCustomerId
: это идентификатор авторизованного клиента, который будет использоваться в запросе, без дефисов (-
). -
LinkedCustomerId
: этот заголовок необходим только для методов, которые обновляют ресурсы сущности, если это разрешено через связанные аккаунты в пользовательском интерфейсе Google Рекламы (ресурсAccountLink
в API Google Рекламы). Задайте для этого значения идентификатор клиента поставщика данных, который обновляет ресурсы с указанным идентификатором клиента. Его следует указывать без дефисов (-
). Узнайте больше о связанных учетных записях .