Configuración

La biblioteca cliente de la API de Google Ads proporciona varios ajustes de configuración que puedes usar para personalizar el comportamiento de la biblioteca.

Configurar con App.config

Toda la configuración específica de Google Ads API se almacena en el nodo GoogleAdsApi del archivo App.config. Una configuración típica 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>

Especifica un archivo App.config independiente

Si no quieres 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 un archivo configSource en el archivo 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 del 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 tu 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 CSS

Por último, incluye el nuevo archivo de configuración en tu proyecto. Cambia las propiedades de este archivo a Siempre copiar a la carpeta de salida.

Ahora compile y ejecute su proyecto. Tu aplicación comenzará a recoger valores del nuevo archivo de configuración.

Configurar 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

Luego, carga el archivo JSON en un 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);

Configuración con 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...
}

Luego, puedes usar la instancia IConfiguration en tu página:

IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig(section);
GoogleAdsClient client = new GoogleAdsClient(config);

Cómo configurar la biblioteca en el tiempo de ejecución

También puedes inicializar GoogleAdsClient durante el tiempo de ejecución.

Ejemplo 1: Inicializa la configuración en el tiempo de ejecución

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

GoogleAdsClient client = new GoogleAdsClient(config);

Ejemplo 2: Carga desde App.config, pero anula una configuración

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

Configura la biblioteca con variables de entorno

También puedes inicializar GoogleAdsClient mediante variables de entorno. Esta configuración no se detecta automáticamente. También debes cargar la configuración desde las variables de entorno como se muestra a continuación.

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

Consulta la lista completa de variables de entorno compatibles aquí.

Campos de configuración

A continuación, se muestra la lista de configuraciones compatibles con la biblioteca de .NET de Google Ads.

Configuración de conectividad

  • Timeout: Usa esta clave para establecer el tiempo de espera del servicio en milisegundos. El valor predeterminado se establece en función de la configuración method_config/timeout en googleads_grpc_service_config.json. Establece un valor más bajo si necesitas aplicar un límite más corto en el tiempo máximo para una llamada a la API. Puedes configurar el tiempo de espera en 2 horas o más, pero es posible que la API todavía agote el tiempo de espera de las solicitudes de larga duración y muestre un error DEADLINE_EXCEEDED.
  • ProxyServer: Establece esto como 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 autenticar con el servidor proxy. Deja este campo en blanco si no se requiere un nombre de usuario.
  • ProxyPassword: Establece esto para la contraseña de ProxyUser si estableces un valor para ProxyUser.
  • ProxyDomain: Establece esto en el dominio para ProxyUser si tu servidor proxy requiere 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 API que la biblioteca cliente puede manejar. El valor predeterminado es 16 MB.

Configuración de OAuth2

Cuando usas OAuth2 para autorizar tus llamadas contra los servidores de la API de Google Ads, debes establecer las siguientes claves de configuración:

  • AuthorizationMethod: debe estar configurado en OAuth2.
  • OAuth2Mode: se debe configurar en APPLICATION o SERVICE_ACCOUNT.
  • OAuth2ClientId: Establece este valor en tu ID de cliente de OAuth2.
  • OAuth2ClientSecret: establece este valor en tu secreto de cliente de OAuth2.
  • OAuth2Scope: configura este valor en diferentes alcances si deseas autorizar tokens de OAuth2 para varias API. Esta 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 previamente si deseas reutilizar los tokens de OAuth2. Esta 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 en la dirección de correo electrónico de la cuenta que suplantas.
  • OAuth2SecretsJsonPath: Establece este valor en la ruta de acceso del archivo de configuración JSON de OAuth2.

Consulta la guía Flujo de cuenta de servicio de OAuth para obtener más detalles.

La siguiente configuración es específica para la API de Google Ads.

  • DeveloperToken: Establece esto en tu token de desarrollador.
  • LoginCustomerId: Este es el ID de cliente del cliente autorizado que se usará en la solicitud, sin guiones (-). Más información.
  • LinkedCustomerId: Este encabezado solo es necesario para los métodos que actualizan los recursos de una entidad cuando se le otorga permiso a través de cuentas vinculadas en la IU de Google Ads (recurso AccountLink en la API de Google Ads). Establece este valor en el ID de cliente del proveedor de datos que actualiza los recursos del ID de cliente especificado. Debe configurarse sin guiones (-). Para obtener más información sobre las cuentas vinculadas, visita el Centro de ayuda.