Ruby

Ad Manager API-এর সাথে ইন্টার‍্যাক্ট করার জন্য Google একটি Ruby ক্লায়েন্ট লাইব্রেরি প্রদান করে। আমরা RubyGems-এর সাথে ক্লায়েন্ট লাইব্রেরি ব্যবহার করার সাজেশন দিই।

শুরু করতে, আপনার পছন্দের IDE-তে একটি নতুন প্রোজেক্ট তৈরি করুন অথবা আগে থেকে থাকা প্রোজেক্টে ডিপেন্ডেন্সি যোগ করুন। Google, RubyGems-এ ক্লায়েন্ট লাইব্রেরি google-ads-ad_manager হিসেবে প্রকাশ করে।

Gemfile

gem 'google-ads-ad_manager', '~> 5.4.0'

কমান্ড লাইন

gem install google-ads-ad_manager

ক্রেডেনশিয়াল কনফিগার করা

Ruby ক্লায়েন্ট লাইব্রেরি যাচাইকরণের জন্য OAuth2 এবং অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল (ADC) ব্যবহার করে।

ADC নিম্নলিখিত লোকেশনগুলিতে ক্রম অনুযায়ী ক্রেডেনশিয়াল সার্চ করে:

  1. GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবল।
  2. Google Cloud CLI (gcloud CLI)-এর মাধ্যমে ব্যবহারকারীর ক্রেডেনশিয়াল সেট-আপ করা।
  3. Google Cloud-এ রান করার সময়, Google Cloud রিসোর্সের সাথে অ্যাটাচ করা পরিষেবা অ্যাকাউন্ট।

আপনার ADC ক্রেডেনশিয়াল তৈরি ও কনফিগার করার জন্য, যাচাইকরণ দেখুন।

আপনার প্রথম অনুরোধ করা

প্রতিটি REST পরিষেবার সাথে সংশ্লিষ্ট Ruby ক্লাস থাকে, যার মধ্যে সংশ্লিষ্ট 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

অন্যান্য পদ্ধতি ও রিসোর্সের উদাহরণ দেখতে, GitHub রিপোজিটরি googleapis/google-cloud-ruby দেখুন।

HTTP অনুরোধ ও উত্তর লগ করা

Ruby ক্লায়েন্ট লাইব্রেরি, HTTP অনুরোধ ও উত্তর লগ করার জন্য স্ট্যান্ডার্ড logger লাইব্রেরি ব্যবহার করে। ডিফল্ট হিসেবে লগিং বন্ধ করা থাকে।

লগিং চালু করতে, এনভায়রনমেন্ট ভেরিয়েবল GOOGLE_SDK_RUBY_LOGGING_GEMS কে google-ads-ad_manager ভ্যালু হিসেবে সেট করুন। আপনি একাধিক Google API ব্যবহার করলে, ক্লায়েন্ট লাইব্রেরি জেম নামের কমা-ডিলিমিটেড তালিকায় ভ্যালু সেট করতে পারবেন। ডিফল্ট লগিং আচরণ স্ট্যান্ডার্ড সমস্যার স্ট্রিমে লগ লেখে।

বিকল্প হিসেবে, ক্লায়েন্ট অবজেক্ট তৈরি করার সময় logger কনফিগারেশন পরিবর্তন করে আপনি Ruby কোডে লগিং চালু করতে পারেন।

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

সমস্যা ম্যানেজ করা

Ruby ক্লায়েন্ট লাইব্রেরিতে ::Google::Cloud::Error হল সব Ad Manager API সমস্যার সাবক্লাস।

result = client.get_network request
rescue ::Google::Cloud::Error => e
  puts "An error of type #{e.class} occurred with HTTP status #{e.status_code}"

এছাড়াও, Ad Manager API সংক্রান্ত সমস্যার মধ্যে একটি অনন্য 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)

প্রক্সি সেটিংস কনফিগার করা

Ruby ক্লায়েন্ট লাইব্রেরি HTTP_PROXY এবং HTTPS_PROXY এনভায়রনমেন্ট ভেরিয়েবল, দু'টিকেই সম্মান করে।