Configuración

La biblioteca cliente de la API de Google Ads ofrece varios parámetros de configuración que que puedes usar para personalizar su comportamiento.

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

El método preferido para configurar la biblioteca cliente es inicializar un Objeto GoogleAdsConfig durante el tiempo de ejecución:

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = OAuth2Flow.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: habilitarlo, agrega una referencia de Nuget a la Google.Ads.GoogleAds.Extensions paquete en tu proyecto.

Si usas una de estas opciones, no se seleccionarán los parámetros de configuración. automáticamente: debes cargarlos explícitamente como se muestra a continuación.

Configura con App.config

Todos los parámetros de configuración específicos de Google Ads API se almacenan en GoogleAdsApi. del archivo App.config. Una configuración típica de App.config es sigue:

<?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 los parámetros de configuración desde 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 quieres desordenar tu App.config, puedes mover el específica de la biblioteca en su propio archivo de configuración con el configSource propiedad.

Paso 1: Especifica una configSource en tu 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 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 csproj

Por último, incluye un archivo de configuración nuevo en tu proyecto. Cómo cambiar las propiedades de este archivo a Copiar siempre en la carpeta de salida.

Ahora, compila y ejecuta tu proyecto. Tu aplicación comenzará a recopilar valores desde el archivo de configuración nuevo.

Configuración con un archivo JSON personalizado

Puedes usar un IConfigurationRoot para configurar la biblioteca cliente.

Crea un archivo JSON

Crea un archivo JSON llamado GoogleAdsApi.json que tenga una estructura similar a la 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 un 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 con settings.json

El proceso es similar al uso de un JSON personalizado, con la excepción de que las claves 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 con variables de entorno

También puedes inicializar el GoogleAdsClient con las variables de entorno:

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

Consulta la lista completa de entornos compatibles variables.

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 establecer el tiempo de espera del servicio en milisegundos. El el valor predeterminado se establece según la configuración de 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 establecer el tiempo de espera en 2 horas o más, pero la API agotan el tiempo de espera de las solicitudes de larga duración y muestran Error DEADLINE_EXCEEDED.
  • ProxyServer: Establece esto como la URL del servidor proxy HTTP si estás utilizando una para conectarse a Internet.
  • ProxyUser: Establece este nombre como el nombre de usuario con el que necesitas autenticarte. el servidor proxy. Deja este campo en blanco si no se requiere un nombre de usuario.
  • ProxyPassword: Establece la contraseña de ProxyUser si estableces un valor. para ProxyUser.
  • ProxyDomain: establece esto en el dominio de ProxyUser si tu servidor proxy. requiere que se configure uno.
  • MaxReceiveMessageLengthInBytes: Usa este parámetro de configuración para aumentar el máximo el tamaño de la respuesta de la API que la biblioteca cliente puede controlar. Predeterminado el valor es de 64 MB.
  • MaxMetadataSizeInBytes: Usa este parámetro de configuración para aumentar el máximo el tamaño de la respuesta de error de la API que la biblioteca cliente puede controlar. El el valor predeterminado es 16 MB.

Ajusta el MaxReceiveMessageLengthInBytes y el MaxMetadataSizeInBytes para corregir ciertos errores ResourceExhausted. Esta configuración dirige errores del formato Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)".

En este ejemplo, el error se debe al tamaño del mensaje (423184132 bytes). sea más grande de lo que la biblioteca puede controlar (67108864 bytes). Aumentar MaxReceiveMessageLengthInBytes a 500000000 para evitar este error.

Ten en cuenta que el error también indica que tu código controló una parte un objeto Response grande (como un gran SearchGoogleAdsResponse) Esta podría afectar el rendimiento del código debido a la capa Montón. Si esto se convierte en un problema de rendimiento, quizás debas explorar cómo reorganizar tus llamadas a la API o rediseñar partes de tu app.

Configuración de OAuth2

Cuando utilice OAuth2 para autorizar sus llamadas a los servidores de la API de Google Ads, debes establecer las siguientes claves de configuración:

  • AuthorizationMethod: Configurado como OAuth2.
  • OAuth2Mode: Se establece en APPLICATION o SERVICE_ACCOUNT.
  • OAuth2ClientId: Establece este valor como tu ID de cliente de OAuth2.
  • OAuth2ClientSecret: Establece este valor en tu secreto de cliente de OAuth2.
  • OAuth2Scope: Establece este valor en diferentes permisos si deseas autorizarlo. Tokens de OAuth2 para varias APIs. Esta configuración es opcional.

Si usas OAuth2Mode == APPLICATION, debes configurar lo siguiente: claves de configuración adicionales.

  • OAuth2RefreshToken: Establece este valor como un token de actualización de OAuth2 generado previamente. si quieres reutilizar tokens de OAuth2. Esta configuración es opcional.
  • OAuth2RedirectUri: Establece este valor como la URL de redireccionamiento de OAuth2. Este parámetro de configuración es opcional.

Consulta las siguientes guías para obtener más detalles:

Si usas OAuth2Mode == SERVICE_ACCOUNT, debes establecer la luego de las claves de configuración adicionales.

  • OAuth2PrnEmail: Establece este valor como la dirección de correo electrónico de la cuenta a la que te diriges. o robo de identidad.
  • OAuth2SecretsJsonPath: Establece este valor en la configuración JSON de OAuth2. ruta de acceso al archivo.

Consulta el flujo de la cuenta de servicio de OAuth. para conocer más detalles.

Configuración de transporte

  • UseGrpcCore: Establece este parámetro de configuración en true para usar la biblioteca Grpc.Core como capa de transporte subyacente. Consulta la asistencia de gRPC guía para obtener más información.

Configuración de la API de Google Ads

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

  • DeveloperToken: Configura esto como tu token de desarrollador.
  • LoginCustomerId: Este es el ID de cliente del cliente autorizado que se usará. en la solicitud, sin guiones (-).
  • LinkedCustomerId: Este encabezado solo es necesario para los métodos que actualizan el recursos de una entidad cuando se otorga el permiso de Cuentas vinculadas en la IU de Google Ads (recurso AccountLink en la API de Google Ads). Establece este valor en ID de cliente del proveedor de datos que actualiza los recursos del recurso especificado ID de cliente. Se debe establecer sin guiones (-). Más información sobre Linked Cuentas.