Configuración

La biblioteca cliente de Java busca un archivo de configuración llamado ads.properties en tu directorio principal (System.getProperty("user.home") + "/ads.properties" o ~/ads.properties). Puedes anular esta ruta y nombre de archivo en el tiempo de ejecución cuando construyas el GoogleAdsClient con cualquiera de los siguientes mecanismos:

  • Llama a fromPropertiesFile(PATH_TO_CONFIG_FILE), donde PATH_TO_CONFIG_FILE es la ruta de acceso y el nombre de archivo de File de tu archivo de configuración.
  • Establece la variable de entorno GOOGLE_ADS_CONFIGURATION_FILE_PATH en la ruta y el nombre de archivo de tu archivo de configuración y, luego, llama a fromPropertiesFile().

El formato del archivo de configuración es un archivo Properties estándar de Java de pares clave-valor. Las claves admitidas varían según el flujo de autenticación elegido.

Claves admitidas para flujos de aplicaciones web y de escritorio

Si usas el flujo de la aplicación para un solo usuario o multiusuario, las claves admitidas son las siguientes:

# Credential for accessing Google's OAuth servers.
# Provided by console.cloud.google.com.
api.googleads.clientId=INSERT_CLIENT_ID_HERE

# Credential for accessing Google's OAuth servers.
# Provided by console.cloud.google.com.
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE

# Renewable OAuth credential associated with 1 or more Google Ads accounts.
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE

# Required for manager accounts only: Specify the login customer ID used to
# authenticate API calls. This will be the customer ID of the authenticated
# manager account. You can also specify this later in code if your application
# uses multiple manager account + OAuth pairs.
#
# api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

# Only required if explicitly instructed by the service documentation.
# api.googleads.linkedCustomerId=INSERT_LINKED_CUSTOMER_ID_HERE

# Maximum allowed response payload size, in bytes.
# Customize this to allow response sizes for GoogleAdsService.search and
# GoogleAdsService.searchStream API calls to exceed the default limit of 64MB.
# api.googleads.maxInboundMessageBytes=INSERT_MAX_INBOUND_MESSAGE_BYTES_HERE

# Specifies whether to use Application Default Credentials.
api.googleads.useApplicationDefaultCredentials=false

Claves admitidas para cuentas de servicio

Si usas el flujo de cuenta de servicio, las claves admitidas son las siguientes:

# Path to the service account secrets file in JSON format.
# Provided by console.cloud.google.com.
api.googleads.serviceAccountSecretsPath=INSERT_PATH_TO_JSON_HERE

# Optional: Email address of the user to impersonate when using Google Workspace
# domain-wide delegation. This should be a user who has access to your Google Ads
# account and is in the same Google Workspace domain as the service account.
# api.googleads.serviceAccountUser=INSERT_USER_EMAIL_ADDRESS_HERE

# Required for manager accounts only: Specify the login customer ID used to
# authenticate API calls. This will be the customer ID of the authenticated
# manager account. You can also specify this later in code if your application
# uses multiple manager account + OAuth pairs.
#
# api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

Usa variables de entorno

La biblioteca admite todas las variables de entorno estándar de la biblioteca cliente de la API de Google Ads. En la siguiente tabla, se muestra la variable de entorno que corresponde a cada propiedad del archivo de configuración:

Propiedad del archivo de configuración Variable de entorno
api.googleads.clientId GOOGLE_ADS_CLIENT_ID
api.googleads.clientSecret GOOGLE_ADS_CLIENT_SECRET
api.googleads.refreshToken GOOGLE_ADS_REFRESH_TOKEN
api.googleads.serviceAccountSecretsPath GOOGLE_ADS_JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser GOOGLE_ADS_IMPERSONATED_EMAIL
api.googleads.loginCustomerId GOOGLE_ADS_LOGIN_CUSTOMER_ID
api.googleads.linkedCustomerId GOOGLE_ADS_LINKED_CUSTOMER_ID
api.googleads.maxInboundMessageBytes GOOGLE_ADS_MAX_INBOUND_MESSAGE_BYTES
api.googleads.useApplicationDefaultCredentials GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS
api.googleads.developerToken (opcional en v46.0.0 y versiones posteriores) GOOGLE_ADS_DEVELOPER_TOKEN

Una vez que hayas establecido las variables de entorno adecuadas, configura tu GoogleAdsClient llamando a fromEnvironment() en el compilador:

GoogleAdsClient googleAdsClient =
    GoogleAdsClient.newBuilder()
        .fromEnvironment()
        .build();

Combina enfoques de configuración

El componente GoogleAdsClient y su compilador admiten la combinación de diferentes estrategias de configuración. Por ejemplo, puedes usar variables de entorno para configurar las credenciales de la instancia y un archivo de propiedades para otros atributos con el siguiente fragmento:

GoogleAdsClient googleAdsClient =
    GoogleAdsClient.newBuilder()
        .fromEnvironment()
        .fromPropertiesFile()
        .build();

Puedes realizar más cambios en el tiempo de ejecución con los otros métodos de configuración del compilador antes de llamar a build().

Baja del token de desarrollador

Tras la desactivación del token de desarrollador el 9 de septiembre de 2026, los niveles de acceso a la API se determinarán según tu proyecto de Google Cloud en el servidor de la API, en lugar de un token de desarrollador:

  • Cambios en la configuración: Ya no es necesario que especifiques api.googleads.developerToken en ads.properties ni GOOGLE_ADS_DEVELOPER_TOKEN en tus variables de entorno. Las aplicaciones existentes que aún especifican api.googleads.developerToken siguen funcionando porque los servidores de la API ignoran el encabezado developer-token (aunque una versión principal futura de la API de Google Ads lo rechazará).
  • Requisitos de la versión de la biblioteca cliente: Para omitir el token de desarrollador de tu configuración, usa google-ads-java v46.0.0 o una versión posterior, en la que se quitó la validación del cliente que requería un token de desarrollador.
  • Cambios en los errores de autorización: Si un proyecto de Google Cloud con solo acceso de prueba llama a una cuenta de producción de Google Ads, v25 y versiones posteriores de la API de Google Ads devuelven AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION, mientras que v24 y versiones anteriores devuelven AuthorizationError.ACTION_NOT_PERMITTED.