Google menyediakan library klien Java untuk berinteraksi dengan Ad Manager API. Sebaiknya gunakan library klien dengan Apache Maven atau Gradle.
Untuk memulai, buat project baru di IDE pilihan Anda atau tambahkan dependensi ke project yang sudah ada. Google memublikasikan artefak library klien ke
repositori pusat Maven sebagai
com.google.api-ads/ad-manager.
Maven
<!-- pom.xml -->
<dependency>
<groupId>com.google.api-ads</groupId>
<artifactId>ad-manager</artifactId>
<version>0.61.0</version>
</dependency>
Gradle
implementation 'com.google.api-ads:ad-manager:0.61.0'
Mengonfigurasi kredensial
Library klien Java menggunakan OAuth2 dan Kredensial Default Aplikasi (ADC) untuk melakukan autentikasi.
ADC menelusuri kredensial secara berurutan di lokasi berikut:
- Variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS. - Kredensial pengguna yang disiapkan melalui Google Cloud CLI (gcloud CLI).
- Saat berjalan di Google Cloud, akun layanan yang dilampirkan ke resource Google Cloud.
Untuk membuat dan mengonfigurasi kredensial ADC Anda, lihat Autentikasi.
Membuat permintaan pertama Anda
Setiap layanan memiliki objek ServiceClient dengan metode sinkron dan asinkron untuk setiap metode REST. Contoh berikut membaca Network
secara sinkron.
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);
}
}
}
Untuk contoh metode dan resource lainnya, lihat repositori GitHub
googleapis/google-cloud-java.
Mencatat permintaan dan respons HTTP ke dalam log
Class com.google.api.client.http.HttpTransport membuat semua permintaan HTTP.
Class ini menggunakan
java.util.logging
(JUL) untuk mencatat detail permintaan dan respons HTTP, termasuk URL, header, dan
konten.
Untuk mengaktifkan logging, tetapkan logger untuk class ini ke level log CONFIG atau yang lebih tinggi. Langkah-langkahnya berbeda-beda, bergantung pada implementasi logging yang Anda gunakan.
JUL
Untuk mengaktifkan logging, tetapkan com.google.api.client.http.level ke CONFIG atau
yang lebih tinggi di file logging.properties Anda.
handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG
Atau, Anda dapat mengaktifkan logging dalam kode 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
Jika menggunakan Log4j untuk logging, Anda dapat menggunakan
Log4j JDK Logging Adapter
untuk mencatat pesan JUL ke dalam log. Hal ini dapat dikonfigurasi melalui SystemProperty atau dengan
menggunakan Log4jBridgeHandler dan file logging.properties JUL.
Properti Sistem
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
Pengendali Jembatan Log4j
handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true
Setelan ini menulis log Ad Manager API ke Logger mana pun dengan level
CONFIG atau lebih tinggi. Contoh file log4j2.xml berikut mengonfigurasi
Logger yang menulis ke 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>
Menangani error
Semua error Ad Manager API adalah subclass dari ApiException di library klien Java.
Metode ApiException.getReason() menampilkan string yang secara unik mengidentifikasi jenis error. Gunakan ini untuk menentukan cara menangani error.
Semua error kecuali 404 Not Found dan 401 Unauthorized berisi ErrorDetails
dengan informasi tambahan. Untuk error 400 Bad Request, ErrorDetails
berisi objek BadRequest
dengan daftar
FieldViolations.
try {
// ...
} catch (ApiException apiException) {
// HTTP status code enum
com.google.api.gax.rpc.StatusCode statusCode = apiException.getStatusCode();
// Unique identifier for the type of error
String errorCode = apiException.getReason();
// Human readable error message
String errorMessage = apiException.getMessage();
// Additional information is available in ErrorDetails.
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
// Additional information for 400 Bad Request errors
if (errorDetails.getBadRequest() != null) {
// List of field violations
List<BadRequest.FieldViolation> fieldViolations =
errorDetails.getBadRequest().getFieldViolationsList();
}
}
}
Error Ad Manager API juga menyertakan request_id unik yang dapat Anda berikan ke dukungan untuk mendapatkan bantuan terkait pemecahan masalah. Contoh berikut mengekstrak
request_id.
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
// Unique request identifier.
String requestId = errorDetails.getRequestInfo().getRequestId();
}
Membuat nama resource
Library klien menyediakan class bantuan untuk membuat nama resource dari ID.
import com.google.ads.admanager.v1.OrderName;
// ...
// Constructs a String in the format:
// "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");
Mengonfigurasi setelan proxy
Library klien Java mematuhi setelan Properti Sistem http.proxyHost dan https.proxyHost. Untuk mengetahui detail selengkapnya tentang setelan ini, lihat
Jaringan dan Proxy Java.