Java

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:

  1. GOOGLE_APPLICATION_CREDENTIALS variabile di ambiente.
  2. Credenziali utente configurate tramite Google Cloud CLI (gcloud CLI).
  3. 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.