Configuração

A biblioteca de cliente Java procura um arquivo de configuração chamado ads.properties no diretório principal (System.getProperty("user.home") + "/ads.properties" ou ~/ads.properties). É possível substituir esse caminho e nome de arquivo no tempo de execução ao construir o GoogleAdsClient usando um dos seguintes mecanismos:

  • Chame fromPropertiesFile(PATH_TO_CONFIG_FILE), em que PATH_TO_CONFIG_FILE é o caminho File e o nome do arquivo de configuração.
  • Defina a variável de ambiente GOOGLE_ADS_CONFIGURATION_FILE_PATH com o caminho e o nome do arquivo de configuração e chame fromPropertiesFile().

O formato do arquivo de configuração é um arquivo Properties padrão do Java de pares de chave-valor. As chaves compatíveis variam de acordo com o fluxo de autenticação escolhido.

Chaves aceitas para fluxos de aplicativos da Web e para computador

Se você estiver usando o fluxo de aplicativo para um único usuário ou multiusuário, as chaves compatíveis serão as seguintes:

# 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

Chaves compatíveis para contas de serviço

Se você estiver usando o fluxo de conta de serviço, as chaves compatíveis são as seguintes:

# 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

Usar variáveis de ambiente

A biblioteca é compatível com todas as variáveis de ambiente padrão da biblioteca de cliente da API Google Ads. A tabela a seguir mostra a variável de ambiente que corresponde a cada propriedade do arquivo de configuração:

Propriedade do arquivo de configuração Variável de 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 (opcional em v46.0.0 e versões mais recentes) GOOGLE_ADS_DEVELOPER_TOKEN

Depois de definir as variáveis de ambiente adequadas, configure seu GoogleAdsClient chamando fromEnvironment() no builder:

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

Combinar abordagens de configuração

O GoogleAdsClient e o builder dele oferecem suporte à combinação de diferentes estratégias de configuração. Por exemplo, é possível usar variáveis de ambiente para configurar as credenciais da instância e um arquivo de propriedades para outros atributos usando o snippet a seguir:

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

É possível fazer outras mudanças em tempo de execução usando os outros métodos de configuração do builder antes de chamar build().

Descontinuação do token de desenvolvedor

Após o fim do ciclo de vida do token de desenvolvedor em 9 de setembro de 2026, os níveis de acesso à API serão determinados pelo seu projeto do Google Cloud no servidor da API, e não por um token de desenvolvedor:

  • Mudanças na configuração: não é mais necessário especificar api.googleads.developerToken em ads.properties ou GOOGLE_ADS_DEVELOPER_TOKEN nas variáveis de ambiente. Os aplicativos que ainda especificam api.googleads.developerToken continuam funcionando porque os servidores de API ignoram o cabeçalho developer-token, embora uma futura versão principal da API Google Ads o rejeite.
  • Requisitos de versão da biblioteca de cliente: para omitir o token de desenvolvedor da sua configuração, use google-ads-java v46.0.0 ou uma versão mais recente, que removeu a validação do lado do cliente que exigia um token de desenvolvedor.
  • Mudanças no erro de autorização: se um projeto do Google Cloud com acesso somente de teste chamar uma conta de produção do Google Ads, a v25 e versões mais recentes da API Google Ads vão retornar AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION, enquanto a v24 e versões anteriores vão retornar AuthorizationError.ACTION_NOT_PERMITTED.