কনফিগারেশন

ক্লায়েন্ট কনফিগার করার একাধিক ভিন্ন উপায় রয়েছে।

প্রমাণীকরণ কনফিগারেশন

Google Ads API অ্যাক্সেস করার জন্য প্রয়োজনীয় OAuth ক্রেডেনশিয়াল পরিচালনা করার একাধিক উপায় রয়েছে। আপনি যে পদ্ধতিটি বেছে নেবেন, তা আপনার ব্যবহৃত কনফিগারেশন ফিল্ডগুলোকে প্রভাবিত করবে। আরও তথ্যের জন্য আমাদের অথেনটিকেশন গাইড দেখুন।

YAML ফাইল ব্যবহার করে কনফিগারেশন

ক্লায়েন্ট ইনিশিয়ালাইজ করার সময় ব্যবহারের জন্য আপনি একটি YAML ফাইল নির্দিষ্ট করে দিতে পারেন, যেটিতে গুগল অ্যাডস এপিআই-তে রিকোয়েস্ট পাঠানোর জন্য প্রয়োজনীয় তথ্য থাকে। load_from_storage মেথড ব্যবহার করে যখন কোনো ক্লায়েন্ট ইনিশিয়ালাইজ করা হয়, তখন এই ফাইলটি অ্যাক্সেস করা হয়। এই ফাইলটি তৈরি করার সবচেয়ে সহজ উপায় হলো গিটহাব রিপোজিটরি থেকে google-ads.yaml উদাহরণটি কপি করে সেটিকে পরিবর্তন করে আপনার ক্রেডেনশিয়ালগুলো, যেমন—আপনার ডেভেলপার টোকেন, রিফ্রেশ টোকেন, ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট অন্তর্ভুক্ত করা।

আপনি যদি কোনো পাথ প্রদান না করেন, তাহলে লাইব্রেরিটি আপনার $HOME ডিরেক্টরিতে ফাইলটি খুঁজবে:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()

google-ads.yaml ফাইলটি কোথায় অবস্থিত তা নির্দিষ্ট করতে, মেথডটি কল করার সময় আপনি পাথটিকে একটি স্ট্রিং হিসেবে পাস করতে পারেন:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")

আপনি একটি নির্দিষ্ট এনভায়রনমেন্ট ভেরিয়েবল নির্ধারণ করেও পাথটি নির্দিষ্ট করতে পারেন:

import os

os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()

যদি উভয় মানই প্রদান করা হয় — অর্থাৎ মেথডটিতে একটি পাথ পাস করা হয় এবং এনভায়রনমেন্ট ভেরিয়েবলটিও উপস্থিত থাকে — তাহলে লাইব্রেরিটি মেথডটিতে পাস করা পাথটিকে অগ্রাধিকার দেবে।

এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে কনফিগারেশন

আপনি আপনার সমস্ত ক্লায়েন্ট কনফিগারেশন এনভায়রনমেন্ট ভেরিয়েবল হিসেবে সংরক্ষণ করতে পারেন, যা ক্লায়েন্টের ` load_from_env মেথড ব্যবহার করার সময় পড়া হবে। এনভায়রনমেন্ট ভেরিয়েবলগুলোর নাম google-ads.yaml ফাইলে সংজ্ঞায়িত ভেরিয়েবলগুলোর নামের মতোই হওয়া উচিত, তবে সেগুলো সম্পূর্ণ বড় হাতের অক্ষরে (uppercase) এবং GOOGLE_ADS_ নেমস্পেসের উপসর্গ দিয়ে শুরু হতে হবে। উদাহরণস্বরূপ, client_id GOOGLE_ADS_CLIENT_ID হিসেবে সংরক্ষণ করতে হবে।

এনভায়রনমেন্ট ভেরিয়েবল সাধারণত $HOME ডিরেক্টরিতে অবস্থিত .bashrc বা .bash_profile ফাইলের মতো একটি ব্যাশ কনফিগারেশন ফাইলে সংজ্ঞায়িত করা হয়। এগুলি কমান্ড লাইন ব্যবহার করেও সংজ্ঞায়িত করা যেতে পারে। মনে রাখবেন যে এই নির্দেশাবলী ধরে নিচ্ছে আপনি bash ব্যবহার করছেন; যদি আপনি অন্য কোনো শেল ব্যবহার করেন, তবে আপনার ব্যবহৃত শেলে কীভাবে এনভায়রনমেন্ট ভেরিয়েবল সেট করতে হয় তা জানতে আপনাকে ডকুমেন্টেশন দেখতে হতে পারে।

টার্মিনাল ব্যবহার করে .bashrc ফাইলের মাধ্যমে এনভায়রনমেন্ট ভেরিয়েবল নির্ধারণ করার কিছু প্রাথমিক ধাপ নিচে দেওয়া হলো:

# Append the line "export GOOGLE_ADS_CLIENT_ID=1234567890" to
# the bottom of your .bashrc file.
$ echo "export GOOGLE_ADS_CLIENT_ID=1234567890" >> ~/.bashrc
# Update your bash environment to use the most recently updated
# version of your .bashrc file.
$ src ~/.bashrc

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

$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890

` load_from_env মেথডটি পাইথনের বিল্ট-ইন os মডিউলের ` environ অ্যাট্রিবিউট থেকে কনফিগারেশন ডেটা লোড করে। উদাহরণস্বরূপ: os.environ["GOOGLE_ADS_CLIENT_ID"]

এনভায়রনমেন্ট ভেরিয়েবলের কনফিগারেশন ব্যবহার করে কীভাবে একটি ক্লায়েন্ট ইনস্ট্যান্স ইনিশিয়ালাইজ করতে হয়, তার একটি উদাহরণ নিচে দেওয়া হলো:

from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()

এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে logging কনফিগার করতে হলে, কনফিগারেশন ভ্যালুটি অবশ্যই একটি JSON অবজেক্ট হতে হবে, যা নমুনা google-ads.yaml কনফিগারেশন ফাইলের YAML কী-গুলোর কাঠামোর সাথে মেলে।

একটি .bashrc ফাইল ব্যবহার করে কীভাবে এটি সেট করা যেতে পারে তার একটি উদাহরণ এখানে দেওয়া হলো:

export GOOGLE_ADS_LOGGING='{
  "version": 1,
  "disable_existing_loggers": false,
  "formatters": {
    "default_fmt": {
      "format": "[%(asctime)s - %(levelname)s] %(message).5000s",
      "datefmt": "%Y-%m-%d %H:%M:%S"
    }
  },
  "handlers": {
    "default_handler": {
      "class": "logging.StreamHandler",
      "formatter": "default_fmt"
    }
  },
  "loggers": {
    "": {
      "handlers": ["default_handler"],
      "level": "INFO"
    }
  }
}'

YAML স্ট্রিং ব্যবহার করে কনফিগারেশন

যদি আপনি কোনো YAML ফাইল মেমরিতে লোড করে থাকেন, তবে ইনিশিয়ালাইজেশনের সময় সেটি সরাসরি ক্লায়েন্টকে সরবরাহ করতে পারেন। এটি করার জন্য শুধু load_from_string মেথডটি ব্যবহার করুন।

from google.ads.googleads.client import GoogleAdsClient

with open("/path/to/yaml", "rb") as handle:
    yaml = handle.read()

client = GoogleAdsClient.load_from_string(yaml)

dict ব্যবহার করে কনফিগারেশন

আপনি সরাসরি load_from_dict মেথডে একটি dict পাস করতে পারেন। উদাহরণস্বরূপ:

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "developer_token": "abcdef123456",
    "refresh_token": "1//0abcdefghijklABCDEF",
    "client_id": "123456-abcdef.apps.googleusercontent.com",
    "client_secret": "aBcDeFgHiJkL"}

client = GoogleAdsClient.load_from_dict(credentials)

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

ক্লায়েন্ট লাইব্রেরি কনফিগারেশন নিম্নলিখিত ফিল্ডগুলো সমর্থন করে।

প্রমাণীকরণ

আপনি কোন প্রমাণীকরণ পদ্ধতি ব্যবহার করছেন তার উপর নির্ভর করে, এই ফিল্ডগুলির গ্রুপগুলির মধ্যে শুধুমাত্র একটি ব্যবহার করুন:

  • অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল সহ একক ব্যবহারকারী ( ডকুমেন্টেশন )
    • use_application_default_credentials : লাইব্রেরিটি প্রমাণীকরণের জন্য অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল (ADC) ব্যবহার করবে কিনা।
  • OAuth টোকেন সহ একক ব্যবহারকারী ( ডকুমেন্টেশন )
    • client_id : আপনার OAuth ক্লায়েন্ট আইডি।
    • client_secret : আপনার OAuth ক্লায়েন্ট সিক্রেট।
    • refresh_token : আপনার OAuth রিফ্রেশ টোকেন।
  • পরিষেবা-অ্যাকাউন্ট ( নথি )
    • json_key_file_path : একটি স্থানীয় প্রাইভেট কী ফাইলের পাথ। এটি একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করে প্রমাণীকরণের জন্য ব্যবহৃত হয়।

লাইব্রেরির আচরণ

এই ফিল্ডগুলো লাইব্রেরির আচরণ নির্ধারণ করে:

অনুরোধ-স্তরের কনফিগারেশন

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

এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করে লাইব্রেরিটি কনফিগার করতে, নিম্নলিখিতটি ব্যবহার করুন:

  • GOOGLE_ADS_CLIENT_ID
  • GOOGLE_ADS_CLIENT_SECRET
  • GOOGLE_ADS_CONFIGURATION_FILE_PATH
  • GOOGLE_ADS_DEVELOPER_TOKEN
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_JSON_KEY_FILE_PATH
  • GOOGLE_ADS_LINKED_CUSTOMER_ID
  • GOOGLE_ADS_LOGIN_CUSTOMER_ID
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_REFRESH_TOKEN
  • GOOGLE_ADS_USE_PROTO_PLUS
  • GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS

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

লগিং ফিল্ডগুলো, যা logging কনফিগারেশন ফিল্ডের অধীনস্থ, সরাসরি logging.config বিল্ট-ইন মডিউল থেকে নেওয়া হয়, কারণ লাইব্রেরিটি logging নেমস্পেসের অধীনে থাকা সমস্ত ফিল্ড সরাসরি logging.config.dictConfig মেথডে পাঠিয়ে দেয়। সম্পূর্ণ বিবরণের জন্য লগিং গাইড দেখুন।

  • version : একটি পূর্ণসংখ্যা মান যা স্কিমা সংস্করণকে নির্দেশ করে।
  • disable_existing_loggers : অ্যাপ্লিকেশনের অন্য কোথাও কনফিগার করা লগারগুলি নিষ্ক্রিয় করা হবে কিনা।
  • formatters : বিভিন্ন ধরণের ফরম্যাটারের সংজ্ঞা প্রদানকারী অভিধান।
  • handlers : বিভিন্ন হ্যান্ডলার নির্ধারণকারী ডিকশনারি, যা নিয়ন্ত্রণ করে লগ কোথায় লেখা হবে এবং কোন ফরম্যাটার ব্যবহার করা হবে।
  • loggers : বিভিন্ন ধরণের লগার সংজ্ঞায়িতকারী ডিকশনারি, যেগুলোতে একটি হ্যান্ডলার এবং একটি লগ লেভেল অন্তর্ভুক্ত থাকে।