Google cung cấp một thư viện ứng dụng Java để tương tác với API Ad Manager. Bạn nên sử 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 phần phụ thuộc vào một dự án hiện có. Google xuất bản các cấu phần phần mềm thư viện ứng dụng lên 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 đăng nhập
Thư viện ứng dụng Java sử dụng OAuth2 và Thông tin đăng nhập mặc định của ứng dụng (ADC) để xác thực.
ADC tìm kiếm thông tin đăng nhập theo thứ tự ở các vị trí sau:
- Biến môi trường
GOOGLE_APPLICATION_CREDENTIALS. - 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).
- Khi chạy trên Google Cloud, tài khoản dịch vụ được đính kèm vào tài nguyên Google Cloud.
Để tạo và định cấu hình thông tin đăng nhập ADC, hãy xem phần Xác thực.
Tạo yêu cầu đầu tiên
Mỗi dịch vụ đều có một đối tượng ServiceClient với cả phương thức đồng bộ và không đồng bộ cho từng phương thức REST. Ví dụ sau đây đọc 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 thực hiện tất cả cá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 và phản hồi HTTP, bao gồm 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 thành cấp nhật ký CONFIG trở lên. Các bước cho việc này sẽ khác nhau tuỳ thuộc vào phương thức triển khai tính năng 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 dùng Log4j để ghi nhật ký, bạn có thể dùng Log4j JDK Logging Adapter (Trình điều hợp ghi nhật ký JDK Log4j) để ghi nhật ký các thông báo JUL. Bạn có thể định cấu hình thông qua SystemProperty hoặc bằng cách sử dụng Log4jBridgeHandler và tệp logging.properties JUL.
Tài sản hệ thống
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
Trình xử lý cầu 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 mọi Trình ghi nhật ký 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 Ad Manager API đều là các 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 Found và 401 Unauthorized, đều chứa ErrorDetails kèm theo thông tin bổ sung.
Lỗi phân tích cú pháp
Trường lý do gây ra lỗi xác định riêng biệt các 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 Ad Manager API cũng bao gồm một request_id duy nhất mà bạn có thể cung cấp cho nhóm hỗ trợ để được trợ giúp khắc phục sự cố. Ví dụ sau đây 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ạo 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ả chế độ cài đặt Thuộc tính hệ thống http.proxyHost và https.proxyHost. Để biết thêm thông tin về các chế độ cài đặt này, hãy xem bài viết Java networking and Proxies (Kết nối mạng và Proxy Java).