Java

Google یک کتابخانه کارخواه Java برای تعامل با Ad Manager API ارائه می‌دهد. توصیه می‌کنیم از کتابخانه کارخواه با Apache Maven یا Gradle استفاده کنید.

برای شروع، پروژه جدیدی در IDE انتخابی‌تان ایجاد کنید یا وابستگی را به پروژه موجودی اضافه کنید. Google مصنوعات کتابخانه کارخواه را در مخزن مرکزی Maven به‌عنوان com.google.api-ads/ad-manager منتشر می‌کند.

Maven

<!-- pom.xml -->
<dependency>
  <groupId>com.google.api-ads</groupId>
  <artifactId>ad-manager</artifactId>
  <version>0.59.0</version>
</dependency>

Gradle

implementation 'com.google.api-ads:ad-manager:0.59.0'

پیکربندی اعتبارنامه‌ها

کتابخانه کارخواه جاوا از OAuth2 و اعتبارنامه‌های پیش‌فرض برنامه (ADC) برای اصالت‌سنجی استفاده می‌کند.

ADC به‌ترتیب در مکان‌های زیر به‌دنبال اطلاعات کاربری می‌گردد:

  1. متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS.
  2. اعتبارنامه کاربر ازطریق Google Cloud CLI (gcloud CLI) راه‌اندازی شده است.
  3. هنگام اجرا در Google Cloud، حساب خدمات به منبع Google Cloud پیوست می‌شود.

برای ایجاد و پیکربندی اطلاعات اعتباری ADC، به اصالت‌سنجی مراجعه کنید.

اولین درخواستتان را ارسال کنید

هر سرویس دارای یک شیء ServiceClient با هر دو روش همگام و ناهمگام برای هر روش REST است. مثال زیر یک Network را به‌صورت هم‌زمان می‌خواند.

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);
    }
  }
}

برای نمونه‌های روش‌ها و منابع دیگر، به مخزن GitHub googleapis/google-cloud-java مراجعه کنید.

ثبت درخواست‌ها و پاسخ‌های اچ‌تی‌تی‌پی

کلاس com.google.api.client.http.HttpTransport همه درخواست‌های اچ‌تی‌تی‌پی را ایجاد می‌کند. این کلاس از java.util.logging (JUL) برای ثبت جزئیات درخواست و پاسخ HTTP، ازجمله نشانی وب، سرصفحه‌ها، و محتوا استفاده می‌کند.

برای فعال کردن ثبت گزارش، ثبت‌کننده گزارش را برای این کلاس روی سطح گزارش CONFIG یا بالاتر تنظیم کنید. مراحل این کار بسته به اینکه از کدام پیاده‌سازی ثبت گزارش استفاده می‌کنید متفاوت است.

ژوئیه

برای فعال کردن ثبت گزارش، com.google.api.client.http.level را روی CONFIG یا بالاتر در فایل logging.properties تنظیم کنید.

handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG

یا می‌توانید ثبت گزارش را در کد 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

اگر از Log4j برای ثبت گزارش استفاده می‌کنید، می‌توانید از Log4j JDK Logging Adapter برای ثبت گزارش پیام‌های JUL استفاده کنید. این مورد را می‌توان ازطریق SystemProperty یا بااستفاده از Log4jBridgeHandler و فایل JUL logging.properties پیکربندی کرد.

خصوصیت سیستم

-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

این تنظیمات گزارش‌های Ad Manager API را در هر «ثبت‌کننده‌ای» با سطح CONFIG یا بالاتر می‌نویسد. فایل log4j2.xml نمونه زیر، ثبت‌کننده‌ای را پیکربندی می‌کند که در 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>

مدیریت کردن خطاها

همه خطاهای Ad Manager API زیرکلاس‌های ApiException در کتابخانه کارخواه Java هستند.

روش ApiException.getReason() رشته‌ای را برمی‌گرداند که به‌طور منحصربه‌فرد انواع خطا را شناسایی می‌کند. از این برای تعیین نحوه رسیدگی به خطا استفاده کنید.

همه خطاها به‌جز 404 Not Found و 401 Unauthorized حاوی ErrorDetails با اطلاعات تکمیلی هستند. برای خطاهای 400 Bad Request، ErrorDetails حاوی شیء BadRequest با فهرستی از 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();
    }
  }
}

خطاهای Ad Manager API همچنین شامل یک request_id منحصربه‌فرد است که می‌توانید برای کمک در عیب‌یابی به پشتیبانی ارائه دهید. مثال زیر request_id را استخراج می‌کند.

ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
  // Unique request identifier.
  String requestId = errorDetails.getRequestInfo().getRequestId();
}

ساختن نام منابع

کتابخانه کارخواه کلاس‌های کمکی برای ساختن نام منابع از شناسه‌ها ارائه می‌دهد.

import com.google.ads.admanager.v1.OrderName;

// ...

//  Constructs a String in the format:
//  "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");

پیکربندی تنظیمات پروکسی

کتابخانه مشتری Java از هر دو تنظیمات «ویژگی سیستم» http.proxyHost و https.proxyHost پیروی می‌کند. برای جزئیات بیشتر درباره این تنظیمات، شبکه‌سازی Java و پراکسی‌ها را ببینید.