Configurazione

La libreria client Java cerca un file di configurazione denominato ads.properties nella tua home directory (System.getProperty("user.home") + "/ads.properties" o ~/ads.properties). Puoi sostituire questo percorso e nome file in fase di runtime durante la creazione di GoogleAdsClient utilizzando uno dei seguenti meccanismi:

  • Chiama fromPropertiesFile(PATH_TO_CONFIG_FILE), dove PATH_TO_CONFIG_FILE è il percorso e il nome file del file di configurazione File.
  • Imposta la variabile di ambiente GOOGLE_ADS_CONFIGURATION_FILE_PATH sul percorso e sul nome file del file di configurazione, quindi chiama fromPropertiesFile().

Il formato del file di configurazione è un file Properties Java standard di coppie chiave-valore. Le chiavi supportate variano a seconda del flusso di autenticazione scelto.

Chiavi supportate per i flussi di applicazioni web e desktop

Se utilizzi il flusso dell'applicazione per un singolo utente o multiutente, le chiavi supportate sono le seguenti:

# 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

Chiavi supportate per i service account

Se utilizzi il flusso service account, le chiavi supportate sono le seguenti:

# 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

Utilizzare le variabili di ambiente

La libreria supporta tutte le variabili di ambiente standard della libreria client dell'API Google Ads. La tabella seguente mostra la variabile di ambiente corrispondente a ogni proprietà del file di configurazione:

Proprietà del file di configurazione Variabile di ambiente
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 (facoltativo in v46.0.0 e versioni successive) GOOGLE_ADS_DEVELOPER_TOKEN

Dopo aver impostato le variabili di ambiente appropriate, configura GoogleAdsClient chiamando fromEnvironment() sul builder:

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

Combinare gli approcci di configurazione

GoogleAdsClient e il relativo builder supportano la combinazione di diverse strategie di configurazione. Ad esempio, puoi utilizzare le variabili di ambiente per configurare le credenziali dell'istanza e un file di proprietà per altri attributi utilizzando il seguente snippet:

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

Puoi apportare ulteriori modifiche in fase di runtime utilizzando gli altri metodi di configurazione del builder prima di chiamare build().

Ritiro del token sviluppatore

In seguito al ritiro del token sviluppatore il 9 settembre 2026, i livelli di accesso all'API sono determinati dal tuo progetto Google Cloud sul server API anziché da un token sviluppatore:

  • Modifiche alla configurazione: non è più necessario specificare api.googleads.developerToken in ads.properties o GOOGLE_ADS_DEVELOPER_TOKEN nelle variabili di ambiente. Le applicazioni esistenti che specificano ancora api.googleads.developerToken continuano a funzionare perché i server API ignorano l'intestazione developer-token (anche se una futura versione principale dell'API Google Ads la rifiuterà).
  • Requisiti della versione della libreria client: per omettere il token sviluppatore dalla configurazione, utilizza google-ads-java v46.0.0 o versioni successive, che hanno rimosso la convalida lato client che richiede un token sviluppatore.
  • Modifiche all'errore di autorizzazione: se un progetto Google Cloud con accesso solo di test chiama un account Google Ads di produzione, v25 e versioni successive dell'API Google Ads restituiscono AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION, mentre v24 e versioni precedenti restituiscono AuthorizationError.ACTION_NOT_PERMITTED.