Java

O Google fornece uma biblioteca de cliente Java para interagir com a API do Ad Manager. Recomendamos usar a biblioteca de cliente com o Apache Maven ou o Gradle.

Para começar, crie um novo projeto no ambiente de desenvolvimento integrado de sua escolha ou adicione o dependência de um projeto atual. O Google publica artefatos da biblioteca de cliente para repositório Maven central como com.google.api-ads/ad-manager

Maven

<!-- pom.xml -->
<dependency>
  <groupId>com.google.api-ads</groupId>
  <artifactId>ad-manager</artifactId>
  <version>0.1.0</version>
</dependency>

Gradle

implementation 'com.google.api-ads:ad-manager:0.1.0'

Configurar credenciais

A biblioteca de cliente Java usa OAuth2 e Application Default Credentials (ADC) para autenticação.

O ADC procura credenciais em ordem nestes locais:

  1. GOOGLE_APPLICATION_CREDENTIALS.
  2. Credenciais de usuário configuradas com a CLI do Google Cloud (CLI gcloud).
  3. Quando executado no Google Cloud, a conta de serviço anexada ao recurso do Google Cloud.

Para criar e configurar as credenciais do ADC, consulte Autenticação:

Fazer sua primeira solicitação

Cada serviço tem um objeto ServiceClient com objetos síncronos e assíncronos métodos para cada método REST. O exemplo a seguir lê um objeto Network. de forma síncrona.

import com.google.ads.admanager.v1.GetNetworkRequest;
import com.google.ads.admanager.v1.Network;
import com.google.ads.admanager.v1.NetworkName;
import com.google.ads.admanager.v1.NetworkServiceClient;

public class SyncGetNetwork {

  public static void main(String[] args) throws Exception {
    syncGetNetwork();
  }

  public static void syncGetNetwork() throws Exception {
    try (NetworkServiceClient networkServiceClient = NetworkServiceClient.create()) {
      GetNetworkRequest request =
          GetNetworkRequest.newBuilder()
              .setName(NetworkName.of("[NETWORK_CODE]").toString())
              .build();
      Network response = networkServiceClient.getNetwork(request);
    }
  }
}

Para ver exemplos de outros métodos e recursos, consulte o repositório do GitHub googleapis/google-cloud-java

Registre solicitações e respostas HTTP

A classe com.google.api.client.http.HttpTransport faz todas as solicitações HTTP. Esta classe usa java.util.logging (JUL) para registrar detalhes de solicitação e resposta HTTP, incluindo URL, cabeçalhos e conteúdo.

Para ativar a geração de registros, defina o logger para esta classe como um nível de CONFIG ou superior. As etapas variam de acordo com a geração de registros implementação que você usa.

JUL

Para ativar a geração de registros, defina com.google.api.client.http.level como CONFIG ou mais acima no arquivo logging.properties.

handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG

Como alternativa, você pode ativar a geração de registros no seu código Java.


import com.google.api.client.http.HttpTransport;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;

public static void enableLogging() {
  Logger logger = Logger.getLogger(HttpTransport.class.getName());
  logger.setLevel(Level.CONFIG);
  ConsoleHandler handler = new ConsoleHandler();
  handler.setLevel(Level.CONFIG);
  logger.addHandler(handler);
}

Log4j

Se você usa o Log4j para a geração de registros, use a Adaptador de geração de registros do Log4j JDK (link em inglês) para registrar mensagens JUL. Isso pode ser configurado por uma SystemProperty ou pelo usando a Log4jBridgeHandler e um arquivo JUL logging.properties.

Propriedade do sistema

-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager

Gerenciador de ponte do Log4j

handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true

Essas configurações gravam registros da API Ad Manager em qualquer logger com um nível de CONFIG ou superior. O arquivo log4j2.xml de exemplo a seguir configura uma logger que grava em System.out.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="com.google.api.client.http.HttpTransport" level="debug">
      <AppenderRef ref="Console"/>
    </Logger>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

Solucionar erros

Todos os erros da API Ad Manager são subclasses de ApiException na biblioteca de cliente Java.

Todos os erros, exceto 404 Not Found e 401 Unauthorized, contêm ErrorDetails com mais informações.

Analisar erros

O campo de motivo do erro identifica exclusivamente os tipos de erro. Usar este campo para determinar como lidar com o erro.

ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
  // Unique error code in UPPER_SNAKE_CASE.
  String errorCode = errorDetails.getReason();
}

Os erros da API Ad Manager também incluem um request_id exclusivo que você pode fornecer ao suporte para receber ajuda com e solução de problemas. O exemplo a seguir extrai a request_id:

ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
  // Unique request identifier.
  String requestId = errorDetails.getRequestInfo().getRequestId();
}

Criar nomes de recursos

A biblioteca cliente fornece classes auxiliares para criar nomes de recursos a partir de do Google Ads.

import com.google.ads.admanager.v1.OrderName;

// ...

//  Constructs a String in the format:
//  "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");

Definir as configurações de proxy

A biblioteca de cliente Java respeita http.proxyHost e https.proxyHost. Configurações da propriedade do sistema. Para mais detalhes sobre essas configurações, consulte Rede Java e proxies.