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:
GOOGLE_APPLICATION_CREDENTIALS
.- Credenciais de usuário configuradas com a CLI do Google Cloud (CLI gcloud).
- 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.