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.1.0</version>
</dependency>

Gradle

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

ضبط بيانات الاعتماد

تستخدم مكتبة برامج Java OAuth2 وبيانات الاعتماد التلقائية للتطبيق (ADC) للمصادقة.

يبحث ADC عن بيانات الاعتماد بالترتيب في المواقع التالية:

  1. GOOGLE_APPLICATION_CREDENTIALS.
  2. إعداد بيانات اعتماد المستخدم من خلال واجهة سطر الأوامر في Google Cloud ‏ (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 على 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 للتسجيل، يمكنك استخدام محوّل تسجيل JDK في Log4j لتسجيل رسائل JUL. يمكن ضبط ذلك من خلال SystemProperty أو باستخدام Log4jBridgeHandler وملف logging.properties من JUL.

سمة النظام

-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 إلى أي أداة تسجيل بمستوى 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.

تحتوي جميع الأخطاء باستثناء 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");

تهيئة إعدادات الخادم الوكيل

تلتزم مكتبة عميل Java بإعدادات سمات النظام http.proxyHost وhttps.proxyHost. لمزيد من التفاصيل حول هذه الإعدادات، يُرجى الاطّلاع على شبكات Java وخوادم الوكيل.