কনফিগারেশন

একটি Config ক্লাস ব্যবহার করে কনফিগারেশন করা হয়। আপনি বিভিন্ন উপায়ে এই ক্লাসটি অ্যাক্সেস করতে পারেন, যেমন একটি কনফিগারেশন ফাইল লিখে, তৈরির সময় মান নির্দিষ্ট করে দিয়ে, অথবা এনভায়রনমেন্ট ভেরিয়েবল থেকে মান লোড করে।

কনফিগারেশন ফাইল

ক্লায়েন্ট ইনস্ট্যানশিয়েট করার সময় ব্যবহারের জন্য আপনি একটি google_ads_config.rb ফাইল নির্দিষ্ট করে দিতে পারেন।

GoogleAdsClient অবজেক্ট ইনস্ট্যানশিয়েট করার সময় আপনি যদি কোনো আর্গুমেন্ট ব্যবহার না করেন, তাহলে লাইব্রেরিটি GOOGLE_ADS_CONFIGURATION_FILE_PATH এনভায়রনমেন্ট ভেরিয়েবলে নির্দিষ্ট করা অবস্থানে ফাইলটি খুঁজবে। যদি সেই ভেরিয়েবলটি সেট করা না থাকে, তাহলে লাইব্রেরিটি আপনার HOME ডিরেক্টরিতে ফাইলটি খুঁজবে।

বিকল্পভাবে, আপনি GoogleAdsClient অবজেক্টটি ইনস্ট্যানশিয়েট করার সময় নিম্নোক্তভাবে একটি পাথ নির্দিষ্ট করে দিতে পারেন, সেক্ষেত্রে ক্লায়েন্ট সেই পাথে ফাইলটি খুঁজবে।

  client = Google::Ads::GoogleAds::GoogleAdsClient.new("path/to/file.rb")

এই ফাইলটি তৈরি করার সবচেয়ে সহজ উপায় হলো গিটহাব রিপোজিটরি থেকে google_ads_config.rb ফাইলটি কপি করে আপনার রিফ্রেশ টোকেন, ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট অন্তর্ভুক্ত করার জন্য এটি পরিবর্তন করা।

গতিশীল কনফিগারেশন

আপনি লাইব্রেরিটি ইনস্ট্যানশিয়েট করার সময়, অথবা এমনকি পরেও ডায়নামিকভাবে কনফিগারেশন সেট আপ করতে পারেন:

client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
    config.client_id = 'INSERT_CLIENT_ID_HERE' # ... more configuration
end

ইনস্ট্যানসিয়েশনের পরেও আপনি কনফিগারেশন পরিবর্তন করতে পারেন:

client.configure do |config|
  config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'

# ... more configuration
end

কনফিগারেশন ক্ষেত্রগুলি

Config অবজেক্টটি নিম্নলিখিত ফিল্ডগুলো সমর্থন করে।

সাধারণ ক্ষেত্রসমূহ:

  • refresh_token : আপনার OAuth রিফ্রেশ টোকেন।
  • client_id : আপনার OAuth ক্লায়েন্ট আইডি।
  • client_secret : আপনার OAuth ক্লায়েন্ট সিক্রেট।
  • login_customer_id : login-customer-id ডকুমেন্টেশন দেখুন।

লগিং ফিল্ডসমূহ। সম্পূর্ণ বিবরণের জন্য লগিং নির্দেশিকা দেখুন।

  • log_level : আপনি যে সর্বনিম্ন লগ লেভেলের মেসেজগুলো লগ করতে চান। উদাহরণস্বরূপ, 'DEBUG' উল্লেখ করলে আপনি সমস্ত লগ মেসেজ দেখতে পাবেন, এবং 'INFO' উল্লেখ করলে DEBUG মেসেজগুলো বাদ দেওয়া হবে কিন্তু অন্য সব মেসেজ দেখানো হবে।
  • log_target : আপনি কোথায় লগ করতে চান, যেমন STDERR
  • logger : আপনার নিজস্ব কাস্টম লগার নির্দিষ্ট করুন। এটি নির্দিষ্ট করলে log_level এবং log_target উভয়ই ওভাররাইড হয়ে যাবে।

পরিবেশগত পরিবর্তনশীল

আপনি এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে ক্লায়েন্ট লাইব্রেরি কনফিগার করতে পারেন। এগুলি ডিফল্টরূপে লোড হয় না এবং লোড করার জন্য ক্লায়েন্ট ইনস্ট্যানশিয়েট করার পরে একটি অতিরিক্ত কলের প্রয়োজন হয়। সমস্ত ভাষা দ্বারা সমর্থিত এনভায়রনমেন্ট ভেরিয়েবলের সম্পূর্ণ তালিকা দেখুন।

আপনার Config এ এনভায়রনমেন্ট ভেরিয়েবলগুলো লোড করতে, load_environment_config কল করুন:

client = Google::Ads::GoogleAds::GoogleAdsClient.new
client.load_environment_config

প্রতিবার এটি কল করা হলে, এনভায়রনমেন্ট ভেরিয়েবলগুলোর বর্তমান অবস্থা Config এ আগে থেকে থাকা যেকোনো কিছুকে ওভাররাইট করে দেবে। এই পদ্ধতির মাধ্যমে, উদাহরণস্বরূপ, আপনি একটি ডিফল্ট কনফিগ রাখতে পারেন কিন্তু এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে নির্দিষ্ট মান ওভাররাইড করতে পারেন, অথবা আপনি সম্পূর্ণভাবে এনভায়রনমেন্ট ভেরিয়েবল দিয়েই কনফিগার করতে পারেন।

সকল লাইব্রেরি দ্বারা সমর্থিত এনভায়রনমেন্ট ভেরিয়েবলগুলো ছাড়াও, রুবি লাইব্রেরিতে আরও দুটি অতিরিক্ত ভেরিয়েবল রয়েছে:

  • GOOGLE_ADS_RUBY_LOG_LEVEL : log_level , যেমনটি আগে ব্যাখ্যা করা হয়েছে।
  • GOOGLE_ADS_RUBY_HTTP_PROXY : একটি HTTP প্রক্সি নির্দিষ্ট করুন।