কনফিগারেশন

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

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

আপনি ক্লায়েন্ট শুরু করার সময় ব্যবহার করার জন্য একটি YAML ফাইল নির্দিষ্ট করতে পারেন যাতে অনুরোধ করার জন্য প্রয়োজনীয় প্রমাণীকরণ তথ্য রয়েছে। 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

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 ফাইলে সংজ্ঞায়িত নামের একই নাম হওয়া উচিত, তবে সমস্ত বড় হাতের এবং GOOGLE_ADS_ নামস্থানের সাথে প্রিফিক্স করা উচিত। উদাহরণস্বরূপ client_id GOOGLE_ADS_CLIENT_ID হিসাবে সংরক্ষণ করা উচিত।

এনভায়রনমেন্ট ভেরিয়েবলগুলি সাধারণত একটি bash কনফিগারেশন ফাইলে সংজ্ঞায়িত করা হয় যেমন $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)

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

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

সাধারণ ক্ষেত্র (আপনি একটি YAML বা dict কনফিগারেশন ব্যবহার করছেন কিনা এই নামগুলি একই):

পরিবেশের পরিবর্তনশীল হিসাবে সাধারণ ক্ষেত্র:

  • GOOGLE_ADS_CONFIGURATION_FILE_PATH
  • GOOGLE_ADS_REFRESH_TOKEN
  • GOOGLE_ADS_CLIENT_ID
  • GOOGLE_ADS_CLIENT_SECRET
  • GOOGLE_ADS_DEVELOPER_TOKEN
  • GOOGLE_ADS_LOGIN_CUSTOMER_ID
  • GOOGLE_ADS_LINKED_CUSTOMER_ID
  • GOOGLE_ADS_JSON_KEY_FILE_PATH (পূর্বে GOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE )
  • GOOGLE_ADS_IMPERSONATED_EMAIL (পূর্বে GOOGLE_ADS_DELEGATE_ACCOUNT )
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_USE_PROTO_PLUS

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

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