Java

Google bietet eine Java-Clientbibliothek für die Interaktion mit der Ad Manager API. Wir empfehlen, die Clientbibliothek mit Apache Maven oder Gradle zu verwenden.

Erstellen Sie dazu ein neues Projekt in der IDE Ihrer Wahl oder fügen Sie die Abhängigkeit einem vorhandenen Projekt hinzu. Google veröffentlicht Clientbibliotheksartefakte im zentralen Maven-Repository als 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'

Anmeldedaten konfigurieren

Die Java-Clientbibliothek verwendet OAuth 2.0 und Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) zur Authentifizierung.

ADC sucht an den folgenden Orten nach Anmeldedaten:

  1. Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS.
  2. Über die Google Cloud CLI (gcloud CLI) eingerichtete Nutzeranmeldedaten.
  3. Bei Ausführung in Google Cloud das Dienstkonto, das an die Google Cloud-Ressource angehängt ist.

Informationen zum Erstellen und Konfigurieren von ADC-Anmeldedaten finden Sie unter Authentifizierung.

Erste Anfrage stellen

Jeder Dienst hat ein ServiceClient-Objekt mit synchronen und asynchronen Methoden für jede REST-Methode. Im folgenden Beispiel wird ein Network synchron gelesen.

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);
    }
  }
}

Beispiele für andere Methoden und Ressourcen finden Sie im GitHub-Repository googleapis/google-cloud-java.

HTTP-Anfragen und -Antworten protokollieren

Die Klasse com.google.api.client.http.HttpTransport stellt alle HTTP-Anfragen. Diese Klasse verwendet java.util.logging (JUL) zum Protokollieren von Details zu HTTP-Anfragen und -Antworten, einschließlich URL, Headern und Inhalt.

Wenn Sie die Protokollierung aktivieren möchten, legen Sie die Protokollebene für diese Klasse auf CONFIG oder höher fest. Die Schritte hierfür unterscheiden sich je nach verwendeter Protokollierungsimplementierung.

JUL

Wenn Sie die Protokollierung aktivieren möchten, legen Sie in der Datei logging.properties für com.google.api.client.http.level die Protokollebene CONFIG oder höher fest.

handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG

Alternativ können Sie die Protokollierung in Ihrem Java-Code aktivieren.


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

Wenn Sie Log4j für die Protokollierung verwenden, können Sie mit dem Log4j JDK Logging Adapter JUL-Meldungen protokollieren. Dies kann über eine SystemProperty oder mit dem Log4jBridgeHandler und einer JUL-Datei logging.properties konfiguriert werden.

Systemattribut

-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager

Log4j Bridge Handler

handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true

Mit diesen Einstellungen werden Ad Manager API-Logs in jeden Logger mit der Ebene CONFIG oder höher geschrieben. In der folgenden Beispieldatei log4j2.xml wird ein Logger konfiguriert, der in System.out schreibt.

<?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>

Fehler verarbeiten

Alle Ad Manager API-Fehler sind Unterklassen von ApiException in der Java-Clientbibliothek.

Alle Fehler außer 404 Not Found und 401 Unauthorized enthalten ErrorDetails mit zusätzlichen Informationen.

Analysefehler

Das Feld „Fehlerursache“ identifiziert Fehlertypen eindeutig. Anhand dieses Felds können Sie bestimmen, wie der Fehler behandelt werden soll.

ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
  // Unique error code in UPPER_SNAKE_CASE.
  String errorCode = errorDetails.getReason();
}

Ad Manager API-Fehler enthalten auch eine eindeutige request_id, die Sie dem Support zur Fehlerbehebung zur Verfügung stellen können. Im folgenden Beispiel wird die request_id extrahiert.

ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
  // Unique request identifier.
  String requestId = errorDetails.getRequestInfo().getRequestId();
}

Ressourcennamen erstellen

Die Clientbibliothek bietet Hilfsklassen zum Erstellen von Ressourcennamen aus IDs.

import com.google.ads.admanager.v1.OrderName;

// ...

//  Constructs a String in the format:
//  "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");

Proxy-Einstellungen konfigurieren

Die Java-Clientbibliothek berücksichtigt sowohl die Einstellungen für das Systemattribut http.proxyHost als auch https.proxyHost. Weitere Informationen zu diesen Einstellungen finden Sie unter Java-Netzwerk und Proxys.