অ্যাড ম্যানেজার API এর সাথে ইন্টারঅ্যাক্ট করার জন্য Google একটি জাভা ক্লায়েন্ট লাইব্রেরি প্রদান করে। আমরা Apache Maven বা Gradle এর সাথে ক্লায়েন্ট লাইব্রেরি ব্যবহার করার পরামর্শ দিই।
শুরু করতে, আপনার পছন্দের IDE-তে একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান প্রকল্পে নির্ভরতা যোগ করুন। Google ক্লায়েন্ট লাইব্রেরি আর্টিফ্যাক্টগুলি Maven কেন্দ্রীয় সংগ্রহস্থলে com.google.api-ads/ad-manager
হিসাবে প্রকাশ করে।
মাভেন
<!-- 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 এবং অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র (ADC) ব্যবহার করে।
ADC নিম্নলিখিত অবস্থানে ক্রেডেনশিয়াল অনুসন্ধান করে:
-
GOOGLE_APPLICATION_CREDENTIALS
পরিবেশ পরিবর্তনশীল। - Google Cloud CLI (gcloud CLI) এর মাধ্যমে ব্যবহারকারীর শংসাপত্র সেট আপ করা হয়েছে।
- Google ক্লাউডে চলাকালীন, Google ক্লাউড সংস্থানের সাথে সংযুক্ত পরিষেবা অ্যাকাউন্ট।
আপনার ADC শংসাপত্র তৈরি এবং কনফিগার করার জন্য, প্রমাণীকরণ দেখুন।
আপনার প্রথম অনুরোধ করুন
প্রতিটি পরিষেবাতে প্রতিটি REST পদ্ধতির জন্য সিঙ্ক্রোনাস এবং অ্যাসিঙ্ক্রোনাস উভয় পদ্ধতি সহ একটি ServiceClient
অবজেক্ট রয়েছে। নিম্নলিখিত উদাহরণটি একটি 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 অনুরোধ করে। এই ক্লাসটি URL, শিরোনাম এবং বিষয়বস্তু সহ HTTP অনুরোধ এবং প্রতিক্রিয়ার বিবরণ লগ করার জন্য 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
বিকল্পভাবে, আপনি আপনার জাভা কোডে লগিং সক্ষম করতে পারেন।
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 লগিং অ্যাডাপ্টার ব্যবহার করতে পারেন। এটি একটি SystemProperty
এর মাধ্যমে বা Log4jBridgeHandler
এবং একটি JUL logging.properties
ফাইল ব্যবহার করে কনফিগার করা যেতে পারে।
সিস্টেম সম্পত্তি
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
Log4j ব্রিজ হ্যান্ডলার
handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true
এই সেটিংসগুলি CONFIG
বা উচ্চতর স্তরের যেকোন লগারে Ad Manager API লগ লিখে৷ নিম্নলিখিত উদাহরণ 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>
ত্রুটিগুলি পরিচালনা করুন
সমস্ত অ্যাড ম্যানেজার 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();
}
অ্যাড ম্যানেজার এপিআই ত্রুটিগুলির মধ্যে একটি অনন্য 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 নেটওয়ার্কিং এবং প্রক্সি দেখুন।