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:
- 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 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 Found
và 401 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.proxyHost
và https.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.