La biblioteca cliente de la API de Google Ads proporciona varios parámetros de configuración que puedes usar para personalizar su comportamiento.
Cómo configurar la biblioteca en el tiempo de ejecución
La forma preferida de configurar la biblioteca cliente es inicializar un objeto GoogleAdsConfig
en el entorno de ejecución:
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = "APPLICATION",
OAuth2ClientId = "******.apps.googleusercontent.com",
OAuth2ClientSecret = "******",
OAuth2RefreshToken = "******"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Opciones de configuración alternativas
También proporcionamos algunas opciones adicionales para configurar la biblioteca cliente. Para habilitarlas, agrega una referencia de Nuget al paquete Google.Ads.GoogleAds.Extensions
de tu proyecto.
Si usas una de estas opciones, los parámetros de configuración no se seleccionan de forma automática; debes cargarlos de forma explícita como se muestra a continuación.
Cómo realizar la configuración con App.config
Todas las opciones de configuración específicas de Google Ads API
se almacenan en el nodo GoogleAdsApi
del archivo App.config
. Una configuración típica de App.config
es la siguiente:
<?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>
Para cargar la configuración de un archivo App.config
, llama al método LoadFromDefaultAppConfigSection
en un objeto GoogleAdsConfig
:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
Especifica un archivo App.config independiente
Si no deseas desordenar tu App.config
, puedes mover la configuración específica de la biblioteca a su propio archivo de configuración mediante la propiedad configSource
.
Paso 1: Especifica una configSource en la app.config
Modifica tu App.config
para que se vea de la siguiente manera:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
</configSections>
<GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>
Paso 2: Especifica el contenido de tu archivo de configuración
Ahora, crea otro archivo de configuración con el nombre que especificaste en configSource
y mueve el nodo de configuración de App.config
a este archivo:
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
Paso 3: Corrige las reglas de compilación en tu csproj
Por último, incluye un archivo de configuración nuevo en tu proyecto. Cambia las propiedades de este archivo a Always copy to output folder.
Ahora, compila y ejecuta tu proyecto. Tu aplicación comenzará a recoger valores del nuevo archivo de configuración.
Configuración con un archivo JSON personalizado
Puedes usar una instancia de IConfigurationRoot
para configurar la biblioteca cliente.
Crea un archivo JSON
Crea un archivo JSON llamado GoogleAdsApi.json
que tenga una estructura similar a la del archivo App.config
.
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
}
Carga la configuración
A continuación, carga el archivo JSON en una 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);
Configuración mediante settings.json
El proceso aquí es similar al uso de un JSON personalizado, con la excepción de que las claves deben estar en una sección llamada GoogleAdsApi
:
{
"GoogleAdsApi":
{
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
...
}
// More settings...
}
A continuación, puedes usar la instancia IConfiguration
en tu página:
IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
Configuración mediante variables de entorno
También puedes inicializar GoogleAdsClient
con variables de entorno:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
Consulta la lista completa de variables de entorno compatibles.
Campos de configuración
A continuación, se incluye la lista de parámetros de configuración compatibles con la biblioteca .NET de Google Ads.
Configuración de conectividad
Timeout
: Usa esta clave para configurar el tiempo de espera del servicio en milisegundos. El valor predeterminado se establece según la configuración demethod_config/timeout
en googleads_grpc_service_config.json. Establece un valor más bajo si necesitas aplicar un límite más corto del tiempo máximo para una llamada a la API. Puedes establecer el tiempo de espera en 2 horas o más, pero es posible que la API agote el tiempo de espera de las solicitudes de larga duración y muestre un errorDEADLINE_EXCEEDED
.ProxyServer
: Establece esto en la URL del servidor proxy HTTP si usas un proxy para conectarte a Internet.ProxyUser
: Establece esto en el nombre de usuario que necesitas para autenticarte en el servidor proxy. Deja este campo en blanco si no necesitas un nombre de usuario.ProxyPassword
: Establece esta contraseña como la contraseña deProxyUser
si estableces un valor paraProxyUser
.ProxyDomain
: Establece esto en el dominio deProxyUser
si tu servidor proxy requiere que se configure uno.MaxReceiveMessageLengthInBytes
: Usa esta configuración para aumentar el tamaño máximo de la respuesta de la API que la biblioteca cliente puede controlar. El valor predeterminado es 64 MB.MaxMetadataSizeInBytes
: Usa esta configuración para aumentar el tamaño máximo de la respuesta de error de la API que la biblioteca cliente puede controlar. El valor predeterminado es 16 MB.
Ajusta la configuración de
MaxReceiveMessageLengthInBytes
yMaxMetadataSizeInBytes
para corregir ciertos erroresResourceExhausted
. Esta configuración resuelve errores del formatoStatus(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"
.En este ejemplo, el error se debe a que el tamaño del mensaje (
423184132 bytes
) es más grande de lo que puede controlar la biblioteca (67108864 bytes
). AumentaMaxReceiveMessageLengthInBytes
a500000000
para evitar este error.Ten en cuenta que el error también indica que tu código controló un objeto de respuesta muy grande (como un
SearchGoogleAdsResponse
grande). Esto podría afectar el rendimiento de tu código debido al montón de objetos grandes de .NET. Si esto se convierte en un problema de rendimiento, es posible que debas explorar cómo reorganizar tus llamadas a la API o rediseñar partes de tu app.
Configuración de OAuth2
Si utilizas OAuth2 para autorizar tus llamadas en los servidores de la API de Google Ads, debes establecer las siguientes claves de configuración:
AuthorizationMethod
: Configurado comoOAuth2
.OAuth2Mode
: Establece el valor enAPPLICATION
oSERVICE_ACCOUNT
.OAuth2ClientId
: Establece este valor como tu ID de cliente de OAuth2.OAuth2ClientSecret
: Establece este valor como tu secreto del cliente de OAuth2.OAuth2Scope
: Establece este valor en alcances diferentes si deseas autorizar tokens de OAuth2 para varias APIs. Este parámetro de configuración es opcional.
Si usas OAuth2Mode == APPLICATION
, debes establecer las siguientes
claves de configuración adicionales.
OAuth2RefreshToken
: Establece este valor en un token de actualización de OAuth2 generado con anterioridad si deseas reutilizar tokens de OAuth2. Este parámetro de configuración es opcional.OAuth2RedirectUri
: Establece este valor en la URL de redireccionamiento de OAuth2. Esta configuración es opcional.
Consulta las siguientes guías para obtener más detalles:
Si usas OAuth2Mode == SERVICE_ACCOUNT
, debes establecer las siguientes claves de configuración adicionales.
OAuth2PrnEmail
: Establece este valor como la dirección de correo electrónico de la cuenta a la que suplantas.OAuth2SecretsJsonPath
: Establece este valor en la ruta del archivo de configuración JSON de OAuth2.
Consulta la guía Flujo de cuentas de servicio de OAuth para obtener más detalles.
Configuración de transporte
UseGrpcCore
: Establece esta configuración entrue
para usar la bibliotecaGrpc.Core
como capa de transporte subyacente. Consulta la guía de compatibilidad de gRPC para obtener más detalles.
Configuración de la API de Google Ads
La siguiente configuración es específica de la API de Google Ads.
DeveloperToken
: Establece esto como tu token de desarrollador.LoginCustomerId
: Este es el ID de cliente del cliente autorizado para usar en la solicitud, sin guiones (-
).LinkedCustomerId
: Este encabezado solo es necesario para los métodos que actualizan los recursos de una entidad cuando se otorga permiso a través de cuentas vinculadas en la IU de Google Ads (recursoAccountLink
en la API de Google Ads). Establece este valor como el ID de cliente del proveedor de datos que actualiza los recursos del ID de cliente especificado. Debe establecerse sin guiones (-
). Obtén más información sobre las cuentas vinculadas.