Google proporciona una biblioteca cliente de Java para interactuar con la API de Ad Manager. Te recomendamos usar la biblioteca cliente con Apache Maven o Gradle.
Para comenzar, crea un proyecto nuevo en el IDE que prefieras o agrega
la dependencia a un proyecto existente. Google publica artefactos de la biblioteca cliente para
el repositorio central de Maven,
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'
Configura las credenciales
La biblioteca cliente de Java usa OAuth2 y las credenciales predeterminadas de la aplicación. (ADC) para autenticarse.
ADC busca las credenciales en orden en las siguientes ubicaciones:
- Variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
. - Credenciales de usuario configuradas a través de Google Cloud CLI (gcloud CLI).
- Cuando se ejecuta en Google Cloud, la cuenta de servicio conectada al recurso de Google Cloud.
Para crear y configurar tus credenciales de ADC, consulta Autenticación.
Realiza tu primera solicitud
Cada servicio tiene un objeto ServiceClient
con síncrono y asíncrono
para cada método REST. En el siguiente ejemplo, se lee un 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 ejemplos de otros métodos y recursos, consulta el repositorio de GitHub
googleapis/google-cloud-java
Registra solicitudes y respuestas HTTP
La clase com.google.api.client.http.HttpTransport
realiza todas las solicitudes HTTP.
Esta clase utiliza
java.util.logging
(JUL) para registrar solicitudes HTTP y detalles de respuesta, como URL, encabezados y
contenido.
Para habilitar el registro, configura el registrador de esta clase en un nivel de registro de
CONFIG
o una versión posterior. Los pasos para esto varían según los registros
implementación que usas.
JUL
Para habilitar el registro, establece com.google.api.client.http.level
en CONFIG
o
superior en tu archivo logging.properties
.
handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG
Como alternativa, puedes habilitar el registro en tu 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
Si usas Log4j para los registros, puedes usar
Adaptador de Logging JDK de Log4j
para registrar mensajes JUL. Esto se puede configurar con un SystemProperty
o con
con Log4jBridgeHandler
y un archivo logging.properties
de JUL.
Propiedad del sistema
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
Controlador de puentes Log4j
handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true
Esta configuración escribe registros de la API de Ad Manager en cualquier registrador con un nivel de
CONFIG
o una versión posterior. En el siguiente archivo log4j2.xml
de ejemplo, se configura un
Registrador que escribe en 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>
Cómo solucionar errores
Todos los errores de la API de Ad Manager son subclases de ApiException en la biblioteca cliente de Java.
Todos los errores, excepto 404 Not Found
y 401 Unauthorized
, contienen ErrorDetails
con información adicional.
Errores de análisis
El campo del motivo del error identifica de forma única los tipos de error. Usa este campo para determinar cómo manejar el error.
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
// Unique error code in UPPER_SNAKE_CASE.
String errorCode = errorDetails.getReason();
}
Los errores de la API de Ad Manager también incluyen un request_id
único que puedes
proporcionar al equipo de asistencia para obtener
y la solución de problemas. En el siguiente ejemplo, se extrae el
request_id
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
// Unique request identifier.
String requestId = errorDetails.getRequestInfo().getRequestId();
}
Construir nombres de recursos
La biblioteca cliente proporciona clases auxiliares para crear nombres de recursos desde de sus IDs.
import com.google.ads.admanager.v1.OrderName;
// ...
// Constructs a String in the format:
// "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");
Establece la configuración del proxy
La biblioteca cliente de Java respeta http.proxyHost
y https.proxyHost
.
Configuración de propiedades del sistema. Para obtener más información sobre estos parámetros de configuración, consulta
Herramientas de redes y proxies de Java.