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 اعتبارنامه ها را به ترتیب در مکان های زیر جستجو می کند:
- متغیر محیطی
GOOGLE_APPLICATION_CREDENTIALS
. - اطلاعات کاربری کاربر از طریق Google Cloud CLI (gcloud CLI) تنظیم شده است.
- هنگام اجرا در 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 احترام می گذارد. برای جزئیات بیشتر در مورد این تنظیمات، شبکه جاوا و پراکسی ها را ببینید.