Google proporciona una biblioteca cliente de Java para interactuar con la API de Ad Manager. Te recomendamos que uses la biblioteca cliente con Apache Maven o Gradle.
Para comenzar, crea un proyecto nuevo en el IDE que elijas o agrega la dependencia a un proyecto existente. Google publica artefactos de la biblioteca cliente en
el repositorio central de Maven 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'
Configura las credenciales
La biblioteca cliente de Java usa OAuth2 y las credenciales predeterminadas de la aplicación (ADC) para autenticar.
ADC busca las credenciales en el siguiente orden en las siguientes ubicaciones:
- Con la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS. - Credenciales de usuario configuradas con Google Cloud CLI (CLI de gcloud).
- Cuando se ejecuta en Google Cloud, la cuenta de servicio adjunta 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 métodos síncronos y asíncronos para cada método REST. En el siguiente ejemplo, se lee de forma Network
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 usa
java.util.logging
(JUL) para registrar los detalles de las solicitudes y respuestas HTTP, incluidos la URL, los encabezados y el
contenido.
Para habilitar el registro, establece el registrador de esta clase en un nivel de registro de CONFIG o superior. Los pasos para esto difieren según la implementación de registro que uses.
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
También puedes habilitar el registro en tu código de 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 el registro, puedes usar el
adaptador de registro de Log4j JDK
para registrar mensajes JUL. Esto se puede configurar a través de una SystemProperty o con Log4jBridgeHandler y un archivo logging.properties de JUL.
Propiedad del sistema
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
Controlador de puente de Log4j
handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true
Estos parámetros de configuración escriben registros de la API de Ad Manager en cualquier registrador con un nivel de CONFIG o superior. En el siguiente ejemplo de archivo log4j2.xml, 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>
Soluciona 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 de motivo de error identifica de forma única los tipos de error. Usa este campo para determinar cómo controlar 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 a la asistencia para solucionar 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();
}
Construye nombres de recursos
La biblioteca cliente proporciona clases auxiliares para compilar nombres de recursos a partir de 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 la configuración de la propiedad del sistema http.proxyHost y https.proxyHost. Para obtener más detalles sobre estos parámetros de configuración, consulta
Redes de Java y proxies.