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 terhadap project yang ada. Google memublikasikan artefak library klien
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.1.0</version>
</dependency>
Gradle
implementation 'com.google.api-ads:ad-manager:0.1.0'
Mengonfigurasi kredensial
Library klien Java menggunakan OAuth2 dan Kredensial Default Aplikasi (ADC) untuk mengautentikasi.
ADC mencari 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 dikaitkan ke resource Google Cloud.
Untuk membuat dan mengonfigurasi kredensial ADC, 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
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
saat ini.
Untuk mengaktifkan pencatatan log, setel logger untuk kelas ini ke level log
CONFIG
atau lebih tinggi. Langkah-langkah untuk ini berbeda
tergantung pada {i>logging<i}
implementasi yang Anda gunakan.
JUL
Untuk mengaktifkan logging, tetapkan com.google.api.client.http.level
ke CONFIG
atau
lebih tinggi di file logging.properties
.
handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG
Atau, Anda dapat mengaktifkan logging di 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 Anda menggunakan Log4j untuk {i>logging<i}, Anda dapat menggunakan
Adaptor Logging JDK Log4j
untuk mencatat pesan JUL. 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 Pencatat log dengan level
CONFIG
atau lebih tinggi. Contoh file log4j2.xml
berikut mengonfigurasi
Pencatat log 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 merupakan subclass dari ApiException di library klien Java.
Semua error kecuali 404 Not Found
dan 401 Unauthorized
berisi ErrorDetails
dengan informasi tambahan.
Error penguraian
Kolom alasan error mengidentifikasi jenis error secara unik. Gunakan kolom ini untuk menentukan cara menangani error.
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
// Unique error code in UPPER_SNAKE_CASE.
String errorCode = errorDetails.getReason();
}
Error Ad Manager API juga menyertakan request_id
unik yang dapat Anda
berikan ke dukungan untuk 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 helper untuk membuat nama resource dari pelanggan.
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 mengikuti http.proxyHost
dan https.proxyHost
Setelan Properti Sistem. Untuk detail selengkapnya tentang setelan ini, lihat
Jejaring Java dan Proxy.