Google fornisce una libreria client Java per interagire con l'API Ad Manager. Ti consigliamo di utilizzare la libreria client con Apache Maven o Gradle.
Per iniziare, crea un nuovo progetto nell'IDE di tua scelta o aggiungi
a un progetto esistente. Google pubblica gli elementi delle librerie client
il repository centrale 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 credenziali
La libreria client Java utilizza OAuth2 e le credenziali predefinite dell'applicazione (ADC) per l'autenticazione.
ADC cerca le credenziali in ordine nelle seguenti posizioni:
GOOGLE_APPLICATION_CREDENTIALS
variabile di ambiente.- Credenziali utente configurate tramite Google Cloud CLI (gcloud CLI).
- Durante l'esecuzione su Google Cloud, l'account di servizio collegato alla risorsa Google Cloud.
Per creare e configurare le credenziali ADC, consulta Autenticazione.
Effettua la tua prima richiesta
Ogni servizio ha un oggetto ServiceClient
con istanze sincrone e asincrone
per ogni metodo REST. L'esempio seguente legge una Network
in modo sincrono.
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);
}
}
}
Per esempi di altri metodi e risorse, consulta il repository GitHub
googleapis/google-cloud-java
Registra richieste e risposte HTTP
La classe com.google.api.client.http.HttpTransport
effettua tutte le richieste HTTP.
Questo corso utilizza
java.util.logging
(LUG) per la registrazione dei dettagli di richiesta e risposta HTTP, tra cui URL, intestazioni e
contenuti.
Per abilitare il logging, imposta il logger per questa classe su un livello log di
CONFIG
o superiore. I passaggi per questa operazione variano a seconda del logging
implementazione che utilizzi.
LUG
Per attivare il logging, imposta com.google.api.client.http.level
su CONFIG
oppure
più in alto nel file logging.properties
.
handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG
In alternativa, puoi abilitare il logging nel tuo codice 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 utilizzi Log4j per il logging, puoi utilizzare il comando
Adattatore di logging JDK Log4j
per registrare i messaggi JUL. Può essere configurato tramite un SystemProperty
o
utilizzando il file Log4jBridgeHandler
e un file logging.properties
LUGLIO.
Proprietà sistema
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
Gestore bridge Log4j
handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true
Queste impostazioni scrivono i log dell'API Ad Manager in qualsiasi logger con un livello
CONFIG
o superiore. Il file log4j2.xml
di esempio seguente configura un
Logger che scrive in 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>
Gestire gli errori
Tutti gli errori dell'API Ad Manager sono sottoclassi di ApiException nella libreria client Java.
Tutti gli errori tranne 404 Not Found
e 401 Unauthorized
contengono ErrorDetails
con ulteriori informazioni.
Analizza errori
Il campo del motivo dell'errore identifica in modo univoco i tipi di errore. Utilizza le funzionalità di questo campo per determinare come gestire l'errore.
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
// Unique error code in UPPER_SNAKE_CASE.
String errorCode = errorDetails.getReason();
}
Gli errori dell'API Ad Manager includono anche un request_id
univoco che puoi
fornire all'assistenza aiuto per
risoluzione dei problemi. L'esempio seguente estrae il parametro
request_id
.
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
// Unique request identifier.
String requestId = errorDetails.getRequestInfo().getRequestId();
}
Costruire nomi delle risorse
La libreria client fornisce classi helper per la creazione di nomi di risorse dalla ID.
import com.google.ads.admanager.v1.OrderName;
// ...
// Constructs a String in the format:
// "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");
Configurare le impostazioni proxy
La libreria client Java rispetta sia http.proxyHost
sia https.proxyHost
Impostazioni proprietà di sistema. Per maggiori dettagli su queste impostazioni, vedi
Networking e proxy Java.