Java

Google stellt eine Java-Client-Bibliothek für die Interaktion mit der Ad Manager API zur Verfügung. Wir empfehlen die Verwendung der Clientbibliothek mit Apache Maven oder Gradle.

Erstellen Sie zuerst ein neues Projekt in der IDE Ihrer Wahl oder fügen Sie die von einem vorhandenen Projekt abhängig. Google veröffentlicht Artefakte der Clientbibliothek auf das zentrale 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 OAuth2 und Standardanmeldedaten für Anwendungen. (ADC) authentifizieren.

ADC sucht an folgenden Orten nach Anmeldedaten:

  1. GOOGLE_APPLICATION_CREDENTIALS.
  2. Nutzeranmeldedaten, die über die Google Cloud CLI (gcloud CLI) eingerichtet wurden.
  3. Bei der Ausführung in Google Cloud das Dienstkonto, das mit der Google Cloud-Ressource verknüpft ist.

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

Erste Anfrage stellen

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

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. In diesem Kurs werden java.util.logging (JUL) zur Protokollierung von HTTP-Anfrage- und -Antwortdetails, einschließlich URL, Header und Inhalte.

Um die Protokollierung zu aktivieren, stellen Sie den Protokollierungsmodus für diese Klasse auf die Protokollierungsebene ein CONFIG oder höher. Die dafür erforderlichen Schritte hängen davon ab, Implementierung, die Sie verwenden.

JUL

Um das Logging zu aktivieren, setzen Sie com.google.api.client.http.level auf CONFIG oder logging.properties-Datei weiter oben.

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

Alternativ können Sie das Logging 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 den Log4j JDK Logging-Adapter um JUL-Nachrichten zu protokollieren. Dies kann über einen SystemProperty oder durch mit der Log4jBridgeHandler-Datei und der JUL-Datei logging.properties.

Systemattribut

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

Log4j-Brücken-Handler

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

Mit diesen Einstellungen werden Ad Manager-API-Protokolle in einen beliebigen Listener mit der Ebene CONFIG oder höher. Im folgenden Beispiel für die log4j2.xml-Datei wird ein Protokollierung, die 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 für die Fehlerursache identifiziert Fehlertypen eindeutig. Verwenden Sie Feld, um festzulegen, wie mit dem Fehler umgegangen werden soll.

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

Fehler der Ad Manager API umfassen auch eine eindeutige request_id, die Sie Support bei Fragen zu Fehlerbehebung. Im folgenden Beispiel wird die request_id

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 http.proxyHost als auch https.proxyHost. Property-Einstellungen des Systems. Weitere Informationen zu diesen Einstellungen finden Sie unter Java-Netzwerke und -Proxys