Java

Google, Ad Manager API के साथ इंटरैक्ट करने के लिए, Java क्लाइंट लाइब्रेरी उपलब्ध कराता है. हमारा सुझाव है कि क्लाइंट लाइब्रेरी का इस्तेमाल 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 और ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल (एडीसी) का इस्तेमाल करती है.

एडीसी, क्रेडेंशियल खोजने के लिए इन जगहों पर इस क्रम में खोज करता है:

  1. GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल.
  2. Google Cloud CLI (gcloud CLI) के ज़रिए सेट अप किए गए उपयोगकर्ता क्रेडेंशियल.
  3. Google Cloud पर चलने के दौरान, Google Cloud संसाधन से जुड़ा सेवा खाता.

एडीसी क्रेडेंशियल बनाने और उन्हें कॉन्फ़िगर करने के लिए, पुष्टि करना लेख पढ़ें.

पहला अनुरोध करना

हर सेवा में एक 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) का इस्तेमाल करती है. इसमें यूआरएल, हेडर, और कॉन्टेंट शामिल होता है.

लॉगिंग की सुविधा चालू करने के लिए, इस क्लास के लिए लॉगर को CONFIG या इससे ज़्यादा के लॉग लेवल पर सेट करें. यह इस पर निर्भर करता है कि लॉगिंग के लिए कौनसा तरीका इस्तेमाल किया जा रहा है.

जुलाई

लॉगिंग की सुविधा चालू करने के लिए, अपनी logging.properties फ़ाइल में com.google.api.client.http.level को CONFIG या इससे ज़्यादा पर सेट करें.

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 का इस्तेमाल किया जाता है, तो JUL मैसेज लॉग करने के लिए, Log4j JDK Logging Adapter का इस्तेमाल किया जा सकता है. इसे SystemProperty के ज़रिए या JUL logging.properties फ़ाइल और Log4jBridgeHandler का इस्तेमाल करके कॉन्फ़िगर किया जा सकता है.

सिस्टम प्रॉपर्टी

-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>

गड़बड़ियों को ठीक करना

Java क्लाइंट लाइब्रेरी में, 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");

प्रॉक्सी सेटिंग कॉन्फ़िगर करना

Java क्लाइंट लाइब्रेरी, http.proxyHost और https.proxyHost, दोनों सिस्टम प्रॉपर्टी सेटिंग का पालन करती है. इन सेटिंग के बारे में ज़्यादा जानने के लिए, Java नेटवर्किंग और प्रॉक्सी लेख पढ़ें.