Java

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

برای شروع، یک پروژه جدید در IDE مورد نظر خود ایجاد کنید یا وابستگی را به پروژه موجود اضافه کنید. Google مصنوعات کتابخانه مشتری را به عنوان 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>

گریدل

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

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

کتابخانه سرویس گیرنده جاوا از OAuth2 و Application Default Credentials (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 مراجعه کنید.

درخواست ها و پاسخ های HTTP را ثبت کنید

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

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

ژوئیه

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

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

همچنین، می توانید ورود به کد جاوا را فعال کنید.


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 برای ثبت پیام های 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

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

همه خطاها به جز 404 Not Found و 401 Unauthorized حاوی ErrorDetails با اطلاعات اضافی هستند.

تجزیه خطاها

فیلد دلیل خطا به طور منحصر به فرد انواع خطا را شناسایی می کند. از این فیلد برای تعیین نحوه رسیدگی به خطا استفاده کنید.

ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
  // Unique error code in UPPER_SNAKE_CASE.
  String errorCode = errorDetails.getReason();
}

خطاهای 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");

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

کتابخانه سرویس گیرنده جاوا به تنظیمات http.proxyHost و https.proxyHost System Property احترام می گذارد. برای جزئیات بیشتر در مورد این تنظیمات، شبکه جاوا و پراکسی ها را ببینید.