গুগল অ্যাড ম্যানেজার এপিআই-এর সাথে যোগাযোগের জন্য একটি রুবি ক্লায়েন্ট লাইব্রেরি প্রদান করে। আমরা রুবিজেমস-এর সাথে এই ক্লায়েন্ট লাইব্রেরিটি ব্যবহার করার পরামর্শ দিই।
শুরু করার জন্য, আপনার পছন্দের IDE-তে একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্টে ডিপেন্ডেন্সিটি যোগ করুন। গুগল তার ক্লায়েন্ট লাইব্রেরিটি RubyGems-এ google-ads-ad_manager নামে প্রকাশ করে।
জেমফাইল
gem 'google-ads-ad_manager', '~> 5.3.0'
কমান্ড লাইন
gem install google-ads-ad_manager
পরিচয়পত্র কনফিগার করুন
রুবি ক্লায়েন্ট লাইব্রেরিটি প্রমাণীকরণের জন্য OAuth2 এবং অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়ালস (ADC) ব্যবহার করে।
ADC নিম্নলিখিত স্থানগুলিতে ক্রমানুসারে ক্রেডেনশিয়াল অনুসন্ধান করে:
-
GOOGLE_APPLICATION_CREDENTIALSএনভায়রনমেন্ট ভেরিয়েবল। - Google Cloud CLI (gcloud CLI)-এর মাধ্যমে ব্যবহারকারীর পরিচয়পত্র সেট আপ করা হয়েছে।
- গুগল ক্লাউডে চালানোর সময়, পরিষেবা অ্যাকাউন্টটি গুগল ক্লাউড রিসোর্সের সাথে সংযুক্ত থাকে।
আপনার ADC ক্রেডেনশিয়াল তৈরি ও কনফিগার করার জন্য, অথেনটিকেশন দেখুন।
আপনার প্রথম অনুরোধটি করুন
প্রতিটি REST সার্ভিসের একটি সংশ্লিষ্ট রুবি ক্লাস থাকে, যেখানে প্রতিটি সংশ্লিষ্ট REST মেথডের জন্য মেথডসমূহ অন্তর্ভুক্ত থাকে। নিম্নলিখিত উদাহরণটি একটি Network রিড করে।
require "google/ads/ad_manager/v1"
def get_network
# Create a client object. The client can be reused for multiple calls.
client = Google::Ads::AdManager::V1::NetworkService::Rest::Client.new
# Create a request. To set request fields, pass in keyword arguments.
request = Google::Ads::AdManager::V1::GetNetworkRequest.new(name: => 'networks/NETWORK_CODE)'
# Call the get_network method.
result = client.get_network request
# The returned object is of type Google::Ads::AdManager::V1::Network.
p result
end
অন্যান্য পদ্ধতি ও রিসোর্সের উদাহরণের জন্য, googleapis/google-cloud-ruby গিটহাব রিপোজিটরিটি দেখুন।
HTTP অনুরোধ এবং প্রতিক্রিয়া লগ করুন
রুবি ক্লায়েন্ট লাইব্রেরিটি HTTP অনুরোধ এবং প্রতিক্রিয়া লগ করার জন্য স্ট্যান্ডার্ড logger লাইব্রেরি ব্যবহার করে। ডিফল্টরূপে লগিং নিষ্ক্রিয় থাকে।
লগিং চালু করতে, GOOGLE_SDK_RUBY_LOGGING_GEMS এনভায়রনমেন্ট ভেরিয়েবলটির মান google-ads-ad_manager এ সেট করুন। আপনি যদি একাধিক Google API ব্যবহার করেন, তবে এর মান ক্লায়েন্ট লাইব্রেরি জেম নামগুলোর একটি কমা-বিভাজিত তালিকা হিসেবে সেট করতে পারেন। ডিফল্ট লগিং আচরণ অনুযায়ী, লগগুলো স্ট্যান্ডার্ড এরর স্ট্রিমে লেখা হয়।
বিকল্পভাবে, ক্লায়েন্ট অবজেক্ট তৈরি করার সময় logger কনফিগারেশন পরিবর্তন করে আপনি আপনার রুবি কোডে লগিং সক্রিয় করতে পারেন।
require "google/ads/ad_manager/v1"
require "logger"
client = ::Google::Ads::AdManager::V1::NetworkService::Rest::Client.new do |config|
config.logger = Logger.new "my-app.log"
end
ত্রুটিগুলি পরিচালনা করুন
রুবি ক্লায়েন্ট লাইব্রেরিতে সমস্ত অ্যাড ম্যানেজার এপিআই ত্রুটিগুলি ::Google::Cloud::Error- এর সাবক্লাস।
result = client.get_network request
rescue ::Google::Cloud::Error => e
puts "An error of type #{e.class} occurred with HTTP status #{e.status_code}"
অ্যাড ম্যানেজার এপিআই ত্রুটিগুলিতে একটি অনন্য request_id অন্তর্ভুক্ত থাকে, যা আপনি সমস্যা সমাধানে সহায়তার জন্য সাপোর্টকে প্রদান করতে পারেন। নিম্নলিখিত উদাহরণটি ত্রুটির details থেকে request_id বের করে আনে।
rescue ::Google::Cloud::Error => e
request_info = e.details.find { |detail| detail.is_a?(Google::Rpc::RequestInfo)}
puts request_info.request_id
সম্পদের নাম তৈরি করুন
ক্লায়েন্ট লাইব্রেরিটি আইডি থেকে রিসোর্সের নাম তৈরি করার জন্য সহায়ক ক্লাস সরবরাহ করে।
require "google/ads/ad_manager/v1"
# Constructs a String in the format:
# "networks/{networkCode}/orders/{orderId}"
order_name = Google::Ads::AdManager::V1::OrderService::Paths::order_path(:network_code => 123, :order => 456)
প্রক্সি সেটিংস কনফিগার করুন
রুবি ক্লায়েন্ট লাইব্রেরিটি HTTP_PROXY এবং HTTPS_PROXY উভয় এনভায়রনমেন্ট ভেরিয়েবলকেই সম্মান করে।