Java

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 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.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 melakukan autentikasi.

ADC menelusuri kredensial secara berurutan di lokasi berikut:

  1. Variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS.
  2. Kredensial pengguna yang disiapkan melalui Google Cloud CLI (gcloud CLI).
  3. Saat berjalan di Google Cloud, akun layanan yang terlampir 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 konten.

Untuk mengaktifkan logging, tetapkan logger untuk class ini ke tingkat log CONFIG atau yang lebih tinggi. Langkah-langkah untuk hal ini berbeda-beda, bergantung pada penerapan pencatatan aktivitas yang Anda gunakan.

JUL

Untuk mengaktifkan logging, tetapkan com.google.api.client.http.level ke CONFIG atau yang lebih tinggi dalam 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 di kode Java Anda.


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. Hal ini dapat dikonfigurasi melalui SystemProperty atau dengan menggunakan Log4jBridgeHandler dan file JUL logging.properties.

Properti Sistem

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

Log4j Bridge Handler

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

Setelan ini menulis log Ad Manager API ke Logger apa pun dengan level CONFIG atau yang 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 subkelas 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 kepada dukungan untuk mendapatkan bantuan dalam memecahkan 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 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 Java dan Proxy.