কনফিগারেশন

আপনি YAML ফাইল, এনভায়রনমেন্ট ভেরিয়েবল, YAML স্ট্রিং বা dict ব্যবহার করে Python ক্লায়েন্ট লাইব্রেরি কনফিগার করতে পারবেন।

যাচাইকরণ কনফিগারেশন

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

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

আপনি ক্লায়েন্ট শুরু করার সময় ব্যবহার করার জন্য YAML ফাইল নির্দিষ্ট করতে পারেন, যাতে Google Ads API-তে অনুরোধ করার জন্য প্রয়োজনীয় তথ্য থাকে। load_from_storage পদ্ধতি ব্যবহার করে কোনও ক্লায়েন্ট শুরু করা হলে, এই ফাইল অ্যাক্সেস করা হয়। এই ফাইল তৈরি করার সবচেয়ে সহজ উপায় হল GitHub রিপোজিটরি থেকে 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
from google.ads.googleads.client import GoogleAdsClient

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

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

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

আপনি এনভায়রনমেন্ট ভেরিয়েবেল হিসেবে আপনার ক্লায়েন্ট কনফিগারেশন স্টোর করতে পারবেন, যা ক্লায়েন্টের load_from_env মেথড ব্যবহার করার সময় পড়া হয়। এনভায়রনমেন্ট ভেরিয়েবলের নাম google-ads.yaml ফাইলে উল্লেখ করা নামের মতোই হতে হবে, তবে সব অক্ষর বড় হাতের হতে হবে এবং নামের আগে GOOGLE_ADS_ নেমস্পেস থাকতে হবে। যেমন, client_id-কে GOOGLE_ADS_CLIENT_ID হিসেবে স্টোর করতে হবে।

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

টার্মিনালে .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.
source ~/.bashrc

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

export GOOGLE_ADS_CLIENT_ID=1234567890
echo $GOOGLE_ADS_CLIENT_ID

load_from_env পদ্ধতি Python-এর বিল্ট-ইন 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"
    }
  }
}'

মনে রাখার মতো বিষয়: load_from_env পদ্ধতি কল করার সময় এনভায়রনমেন্ট ভেরিয়েবেল GOOGLE_ADS_CONFIGURATION_FILE_PATH সেট করা থাকলে, কনফিগারেশন ভ্যালু নির্দিষ্ট পাথে থাকা google-ads.yaml ফাইল থেকে উদ্ধার করা হয়, আগে উল্লেখ করা এনভায়রনমেন্ট ভেরিয়েবেল থেকে নয়।

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

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

from google.ads.googleads.client import GoogleAdsClient

with open("/path/to/yaml", "r", encoding="utf-8") as handle:
    yaml_content = handle.read()

client = GoogleAdsClient.load_from_string(yaml_content)

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

আপনি সরাসরি load_from_dict পদ্ধতিতে dict পাস করতে পারবেন। যেমন:

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "refresh_token": "YOUR_REFRESH_TOKEN",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET",
    "use_proto_plus": True,
}

client = GoogleAdsClient.load_from_dict(credentials)

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

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

যাচাইকরণ

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

  • অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল সহ একজন ব্যবহারকারী (ডকুমেন্টেশন)
    • use_application_default_credentials: লাইব্রেরিকে কি প্রমাণীকরণের জন্য অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল (ADC) ব্যবহার করা উচিত (google-ads v28.3.0 ও তার পরের ভার্সনে কাজ করে)।
  • OAuth টোকেন সহ একজন ব্যবহারকারী (ডকুমেন্টেশন)
    • client_id: আপনার OAuth ক্লায়েন্ট আইডি।
    • client_secret: আপনার OAuth ক্লায়েন্ট সিক্রেট।
    • refresh_token: আপনার OAuth রিফ্রেশ টোকেন।
  • পরিষেবা-অ্যাকাউন্ট (ডকুমেন্টেশন)
    • json_key_file_path: লোকাল ব্যক্তিগত কী ফাইলের পাথ। এটি পরিষেবা অ্যাকাউন্ট ব্যবহার করে প্রমাণীকরণের জন্য ব্যবহার করা হয়।
    • impersonated_email: Google Workspace ডোমেন-ওয়াইড ডেলিগেশন ব্যবহার করার সময় ছদ্মবেশ ধারণ করার জন্য অ্যাকাউন্টের ঐচ্ছিক ইমেল আইডি।

লাইব্রেরি সংক্রান্ত আচরণ

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

অনুরোধ-লেভেল কনফিগারেশন

এনভায়রনমেন্ট ভেরিয়েবল

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

  • GOOGLE_ADS_ADS_ASSISTANT
  • GOOGLE_ADS_CLIENT_ID
  • GOOGLE_ADS_CLIENT_SECRET
  • GOOGLE_ADS_CONFIGURATION_FILE_PATH
  • GOOGLE_ADS_ENDPOINT
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_IMPERSONATED_EMAIL
  • 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 (v28.3.0 এবং তার পরবর্তী ভার্সনে কাজ করে)

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

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

  • version: একটি পূর্ণসংখ্যা ভ্যালু যা স্কিমা ভার্সনকে দেখায়।
  • disable_existing_loggers: Whether loggers configured elsewhere in the application should be disabled.
  • formatters: বিভিন্ন ধরনের ফর্ম্যাটারকে সংজ্ঞায়িত করা অভিধান।
  • handlers: বিভিন্ন হ্যান্ডলারকে সংজ্ঞায়িত করা ডিকশনারি, যা নিয়ন্ত্রণ করে কোথায় লগ লেখা হয় এবং কোন ফর্ম্যাটার ব্যবহার করা উচিত।
  • loggers: বিভিন্ন ধরনের লগার সংজ্ঞায়িত করে এমন ডিকশনারি, যার মধ্যে একটি হ্যান্ডলার এবং একটি লগ লেভেল অন্তর্ভুক্ত।