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:
GOOGLE_APPLICATION_CREDENTIALS
.- Nutzeranmeldedaten, die über die Google Cloud CLI (gcloud CLI) eingerichtet wurden.
- 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