Java

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:

  1. Zmienna środowiskowa GOOGLE_APPLICATION_CREDENTIALS.
  2. Dane logowania użytkownika skonfigurowane w Google Cloud CLI (gcloud CLI).
  3. 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.