Клиентская библиотека Google Ads API предоставляет несколько параметров конфигурации, которые можно использовать для настройки поведения библиотеки.
Настройте библиотеку во время выполнения.
Предпочтительный способ настройки клиентской библиотеки — инициализация объекта 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"></section>
</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: Укажите configSource в файле App.config.
Измените файл App.config следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"></section>
</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);
См. полный список поддерживаемых переменных среды .
Используйте универсальный поток
Вы также можете загрузить конфигурацию или её части из универсального потока, включая зашифрованный:
GoogleAdsConfig config = new GoogleAdsConfig()
{
//Set some configuration properties in code.
DeveloperToken = "******",
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
};
// Load your encrypted data from a file.
CryptoStream strm = ....
StreamReader rdr = new StreamReader(strm);
// Configure the OAuth credentials from the encrypted file.
config.LoadOAuth2SecretsFromStream(rdr);
GoogleAdsClient client = new GoogleAdsClient(config);
Поля конфигурации
Ниже приведён список настроек, поддерживаемых библиотекой Google Ads .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 функции Large Object Heap . Если это станет проблемой производительности, вам, возможно, придется изучить, как реорганизовать вызовы 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. Этот параметр необязателен.
Более подробную информацию см. в следующих руководствах:
- Процесс аутентификации OAuth для настольных приложений
- Процесс аутентификации OAuth в веб-приложении
Если вы используете OAuth2Mode == SERVICE_ACCOUNT , то вам необходимо установить следующие дополнительные ключи конфигурации.
-
OAuth2PrnEmail: Установите это значение равным адресу электронной почты учетной записи, от имени которой вы осуществляете имитацию. -
OAuth2SecretsJsonPath: Установите это значение равным пути к файлу конфигурации OAuth2 в формате JSON.
Более подробную информацию см. в руководстве по алгоритму работы учетных записей служб OAuth .
Транспортные настройки
-
UseGrpcCore: Установите этот параметр вtrue, чтобы использовать библиотекуGrpc.Coreв качестве базового транспортного уровня. См. раздел «Использование устаревшей библиотеки Grpc» .
Настройки Google Ads API
Приведенные ниже настройки относятся только к API Google Ads.
-
DeveloperToken: Установите здесь свой токен разработчика. -
LoginCustomerId: Это идентификатор клиента, авторизованного для использования в запросе, без дефисов (-). -
LinkedCustomerId: Этот заголовок необходим только для методов, обновляющих ресурсы сущности при наличии разрешения через связанные учетные записи в пользовательском интерфейсе Google Ads (ресурсAccountLinkв API Google Ads). Установите это значение равным идентификатору клиента поставщика данных, обновляющего ресурсы указанного идентификатора клиента. Значение должно быть без дефисов (-). Подробнее о связанных учетных записях .