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:
- Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS. - Über die Google Cloud CLI (gcloud CLI) eingerichtete Nutzeranmeldedaten.
- 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.