Java

Google cung cấp thư viện ứng dụng Java để tương tác với API Ad Manager. Bạn nên dùng thư viện ứng dụng với Apache Maven hoặc Gradle.

Để bắt đầu, hãy tạo một dự án mới trong IDE mà bạn chọn hoặc thêm vào một dự án hiện có. Google xuất bản cấu phần phần mềm của thư viện ứng dụng để kho lưu trữ trung tâm Maven dưới dạng 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'

Định cấu hình thông tin xác thực

Thư viện ứng dụng Java sử dụng OAuth2 và Thông tin xác thực mặc định của ứng dụng (ADC) để xác thực.

ADC tìm kiếm thông tin xác thực theo thứ tự ở các vị trí sau:

  1. Biến môi trường GOOGLE_APPLICATION_CREDENTIALS.
  2. Thông tin đăng nhập của người dùng được thiết lập thông qua Google Cloud CLI (gcloud CLI).
  3. Khi chạy trên Google Cloud, tài khoản dịch vụ được liên kết với tài nguyên Google Cloud.

Để tạo và định cấu hình thông tin đăng nhập ADC, hãy xem Xác thực.

Đưa ra yêu cầu đầu tiên

Mỗi dịch vụ có một đối tượng ServiceClient có cả đồng bộ và không đồng bộ cho từng phương thức REST. Ví dụ sau đây đọc một Network một cách đồng bộ.

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

Để biết ví dụ về các phương thức và tài nguyên khác, hãy xem kho lưu trữ GitHub googleapis/google-cloud-java.

Ghi nhật ký các yêu cầu và phản hồi HTTP

Lớp com.google.api.client.http.HttpTransport đưa ra tất cả yêu cầu HTTP. Lớp này sử dụng java.util.logging (JUL) để ghi nhật ký thông tin chi tiết về yêu cầu HTTP và phản hồi, trong đó có URL, tiêu đề và nội dung.

Để bật tính năng ghi nhật ký, hãy đặt trình ghi nhật ký cho lớp này ở cấp độ nhật ký là CONFIG trở lên. Các bước thực hiện việc này sẽ khác nhau tuỳ thuộc vào việc ghi nhật ký mà bạn sử dụng.

THÁNG 7

Để bật tính năng ghi nhật ký, hãy đặt com.google.api.client.http.level thành CONFIG hoặc cao hơn trong tệp logging.properties.

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

Ngoài ra, bạn có thể bật tính năng ghi nhật ký trong mã 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

Nếu sử dụng Log4j để ghi nhật ký, bạn có thể sử dụng Bộ chuyển đổi ghi nhật ký JDK4j JDK để ghi nhật ký thông điệp THÁNG 7. Bạn có thể định cấu hình tính năng này thông qua SystemProperty hoặc bằng cách bằng cách sử dụng tệp Log4jBridgeHandler và tệp logging.properties THÁNG 7.

Tài sản hệ thống

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

Trình xử lý cầu nối Log4j

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

Các chế độ cài đặt này ghi nhật ký API Ad Manager vào bất kỳ Trình ghi nhật ký nào có cấp độ CONFIG trở lên. Tệp log4j2.xml trong ví dụ sau đây sẽ định cấu hình một Trình ghi nhật ký ghi vào 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>

Xử lý lỗi

Tất cả lỗi API Ad Manager đều là lớp con của ApiException trong thư viện ứng dụng Java.

Tất cả các lỗi ngoại trừ 404 Not Found401 Unauthorized đều chứa ErrorDetails với thông tin bổ sung.

Lỗi phân tích cú pháp

Trường lý do lỗi xác định riêng từng loại lỗi. Sử dụng trường này để xác định cách xử lý lỗi.

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

Lỗi API Ad Manager cũng bao gồm một request_id duy nhất mà bạn có thể cung cấp cho support để yêu cầu trợ giúp về khắc phục sự cố. Ví dụ sau trích xuất request_id.

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

Đặt tên tài nguyên

Thư viện ứng dụng cung cấp các lớp trợ giúp để tạo tên tài nguyên từ Mã nhận dạng.

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

// ...

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

Định cấu hình cài đặt proxy

Thư viện ứng dụng Java tuân thủ cả http.proxyHosthttps.proxyHost Các chế độ cài đặt Thuộc tính hệ thống. Để biết thêm chi tiết về các chế độ cài đặt này, hãy xem Kết nối mạng Java và proxy.