Java

Google은 Ad Manager API와 상호작용하기 위한 Java 클라이언트 라이브러리를 제공합니다. Apache Maven 또는 Gradle과 함께 클라이언트 라이브러리를 사용하는 것이 좋습니다.

시작하려면 원하는 IDE에서 새 프로젝트를 만들거나 기존 프로젝트에 종속되지 않습니다. Google은 클라이언트 라이브러리 아티팩트를 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'

사용자 인증 정보 구성

Java 클라이언트 라이브러리는 OAuth2 및 애플리케이션 기본 사용자 인증 정보를 사용합니다. (ADC)를 통해 인증합니다.

ADC는 다음 위치에서 순서대로 사용자 인증 정보를 검색합니다.

  1. GOOGLE_APPLICATION_CREDENTIALS 환경 변수입니다.
  2. Google Cloud CLI (gcloud CLI)를 통해 설정된 사용자 인증 정보입니다.
  3. Google Cloud에서 실행할 때 Google Cloud 리소스에 연결된 서비스 계정입니다.

ADC 사용자 인증 정보를 만들고 구성하는 방법은 다음을 참조하세요. 인증.

첫 번째 요청하기

각 서비스에는 동기식 및 비동기식을 모두 사용하는 ServiceClient 객체가 있습니다. 각 REST 메서드마다 메서드를 정의합니다 다음 예는 Network를 읽습니다. 있습니다.

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);
    }
  }
}

다른 메서드 및 리소스의 예는 GitHub 저장소를 참조하세요. googleapis/google-cloud-java

HTTP 요청 및 응답 로깅

com.google.api.client.http.HttpTransport 클래스는 모든 HTTP 요청을 실행합니다. 이 클래스는 java.util.logging 드림 (7월)에 출시되어 URL, 헤더, 및 있습니다.

로깅을 사용 설정하려면 이 클래스의 로거를 CONFIG 이상 이 단계는 구현할 수 있습니다.

7월

로깅을 사용 설정하려면 com.google.api.client.http.levelCONFIG로 설정하거나 logging.properties 파일에서 더 높게 설정합니다.

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

또는 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

로깅에 Log4j를 사용하는 경우 Log4j JDK 로깅 어댑터 JUL 메시지를 로깅합니다. SystemProperty 또는 다음 명령어로 구성할 수 있습니다. Log4jBridgeHandler 및 JUL logging.properties 파일을 사용합니다.

시스템 속성

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

Log4j 브리지 핸들러

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

이 설정은 Ad Manager API 로그를 CONFIG 이상 다음 예시 log4j2.xml 파일은 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>

오류 처리

모든 Ad Manager API 오류는 ApiException API에 액세스할 수 있습니다

404 Not Found401 Unauthorized를 제외한 모든 오류에 ErrorDetails이(가) 포함됩니다. 확인할 수 있습니다

파싱 오류

오류 이유 필드는 오류 유형을 고유하게 식별합니다. 사용 이 필드를 사용하여 오류 처리 방법을 결정합니다.

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

Ad Manager API 오류에는 고유한 request_id도 포함되며 지원팀에 제공하여 문제를 해결할 수 있습니다. 다음 예는 request_id

ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
  // Unique request identifier.
  String requestId = errorDetails.getRequestInfo().getRequestId();
}

리소스 이름 구성

클라이언트 라이브러리는 있습니다.

import com.google.ads.admanager.v1.OrderName;

// ...

//  Constructs a String in the format:
//  "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");

프록시 설정 구성

Java 클라이언트 라이브러리는 http.proxyHosthttps.proxyHost를 모두 준수합니다. 시스템 속성 설정 이 설정에 대한 자세한 내용은 다음을 참고하세요. 자바 네트워킹 및 프록시