Google udostępnia bibliotekę klienta w języku Java, która umożliwia interakcję z interfejsem API Ad Managera. Zalecamy korzystanie z biblioteki klienta wraz z oprogramowaniem Apache Maven lub Gradle.
Na początek utwórz nowy projekt w wybranym IDE lub dodaj
do istniejącego projektu. Google publikuje artefakty biblioteki klienta w
do centralnego repozytorium 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'
Skonfiguruj dane logowania
Biblioteka klienta Java korzysta z protokołu OAuth2 i domyślnych danych logowania aplikacji. (ADC).
ADC wyszukuje dane uwierzytelniające w następujących lokalizacjach:
- Zmienna środowiskowa
GOOGLE_APPLICATION_CREDENTIALS
. - Dane logowania użytkownika skonfigurowane w Google Cloud CLI (gcloud CLI).
- W przypadku działania w Google Cloud konto usługi jest podłączone do zasobu Google Cloud.
Informacje o tworzeniu i konfigurowaniu danych logowania ADC znajdziesz tutaj Authentication (Uwierzytelnianie).
Prześlij pierwszą prośbę
Każda usługa ma obiekt ServiceClient
zarówno synchroniczny, jak i asynchroniczny
dla każdej metody REST. Ten przykład to Network
synchronicznie.
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);
}
}
}
Przykłady innych metod i zasobów znajdziesz w repozytorium GitHub
googleapis/google-cloud-java
Rejestruj żądania i odpowiedzi HTTP
Klasa com.google.api.client.http.HttpTransport
wykonuje wszystkie żądania HTTP.
Te zajęcia korzystają z funkcji
java.util.logging
(JUL) do rejestrowania szczegółów żądań i odpowiedzi HTTP, w tym adresów URL, nagłówków
treści.
Aby włączyć logowanie, ustaw rejestrator dla tych zajęć na poziom logowania
CONFIG
lub więcej. Kroki w tym celu różnią się w zależności od tego,
implementacji.
LIP
Aby włączyć logowanie, ustaw com.google.api.client.http.level
na CONFIG
lub
wyżej w pliku logging.properties
.
handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG
Możesz również włączyć logowanie w kodzie 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
Jeśli do logowania używasz Log4j, możesz użyć parametru
Adapter Log4j JDK Logging
w celu rejestrowania komunikatów JUL. Możesz to skonfigurować za pomocą: SystemProperty
lub
za pomocą plików Log4jBridgeHandler
i JUL logging.properties
.
Właściwość systemu
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
Moduł obsługi mostów Log4j
handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true
Te ustawienia zapisują dzienniki interfejsu API Ad Managera na dowolnym Rejestratorze o poziomie
CONFIG
lub więcej. Poniższy przykładowy plik log4j2.xml
konfiguruje
Rejestrator, który zapisuje na urządzeniu 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>
Obsługa błędów
Wszystkie błędy interfejsu API Ad Managera należą do podklas ApiException w bibliotece klienta Java.
Wszystkie błędy oprócz 404 Not Found
i 401 Unauthorized
zawierają ErrorDetails
zawierające dodatkowe informacje.
Błędy analizy
Pole przyczyny błędu jednoznacznie identyfikuje typy błędów. Używaj w tym polu w celu określenia sposobu postępowania z błędem.
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
// Unique error code in UPPER_SNAKE_CASE.
String errorCode = errorDetails.getReason();
}
Błędy interfejsu API Ad Managera obejmują też niepowtarzalny identyfikator request_id
, który możesz
przekaż do zespołu pomocy, aby uzyskać pomoc
w rozwiązywaniu problemów. Ten przykład wyodrębnia
request_id
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
// Unique request identifier.
String requestId = errorDetails.getRequestInfo().getRequestId();
}
Zbuduj nazwy zasobów
Biblioteka klienta zawiera klasy pomocnicze do tworzenia nazw zasobów z Identyfikatory.
import com.google.ads.admanager.v1.OrderName;
// ...
// Constructs a String in the format:
// "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");
Konfigurowanie ustawień serwera proxy
Biblioteka klienta Java obsługuje zarówno język http.proxyHost
, jak i https.proxyHost
Ustawienia właściwości systemowych. Więcej informacji o tych ustawieniach znajdziesz w artykule
Sieci Java i serwery proxy.