প্রমাণীকরণ এবং অনুমোদন

অন্যান্য Google API-এর মতো, Google Ads API প্রমাণীকরণ এবং অনুমোদনের জন্য OAuth 2.0 প্রোটোকল ব্যবহার করে। OAuth 2.0 আপনার Google Ads API ক্লায়েন্ট অ্যাপ্লিকেশনকে ব্যবহারকারীর লগইন তথ্য পরিচালনা বা সংরক্ষণ না করেই একজন ব্যবহারকারীর Google Ads অ্যাকাউন্ট অ্যাক্সেস করতে সক্ষম করে।

গুগল বিজ্ঞাপন অ্যাক্সেস মডেলটি বুঝুন

Google Ads API এর সাথে কার্যকরভাবে কাজ করার জন্য, আপনার Google Ads অ্যাক্সেস মডেল কীভাবে কাজ করে তা বুঝতে হবে। আমরা Google Ads অ্যাক্সেস মডেল নির্দেশিকাটি পড়ার পরামর্শ দিচ্ছি।

OAuth ওয়ার্কফ্লো

Google Ads API-এর সাথে কাজ করার সময় তিনটি সাধারণ ওয়ার্কফ্লো ব্যবহার করা হয়।

পরিষেবা অ্যাকাউন্ট প্রবাহ

যদি আপনার কর্মপ্রবাহের জন্য কোনও মানুষের মিথস্ক্রিয়ার প্রয়োজন না হয়, তাহলে এটিই প্রস্তাবিত কর্মপ্রবাহ। এই কর্মপ্রবাহের জন্য একটি কনফিগারেশন ধাপ প্রয়োজন, যেখানে ব্যবহারকারী তাদের Google বিজ্ঞাপন অ্যাকাউন্টে একটি পরিষেবা অ্যাকাউন্ট যোগ করে। এরপর অ্যাপটি ব্যবহারকারীর Google বিজ্ঞাপন অ্যাকাউন্ট পরিচালনা করার জন্য পরিষেবা অ্যাকাউন্টের শংসাপত্র ব্যবহার করতে পারে। পাইথন লাইব্রেরিটি নিম্নরূপ কনফিগার করা হয়েছে:

  • যদি আপনি google-ads.yaml ফাইল বা YAML স্ট্রিং ব্যবহার করেন, তাহলে আপনার স্থানীয় পরিবেশে প্রাইভেট কী JSON ফাইলের পাথ সেট করতে আপনার কনফিগারেশনে নিম্নলিখিতটি যোগ করুন:

    json_key_file_path: JSON_KEY_FILE_PATH
    

    তারপর load_from_storage অথবা load_from_string পদ্ধতিগুলি কল করুন:

    from google.ads.googleads.client import GoogleAdsClient
    client = GoogleAdsClient.load_from_storage()
    
  • যদি আপনি লাইব্রেরি কনফিগার করার জন্য একটি dict ব্যবহার করেন, তাহলে নিম্নলিখিত কী-মান জোড়াটি অন্তর্ভুক্ত করুন এবং load_from_dict পদ্ধতিটি কল করুন, কনফিগারেশন dict পাস করে:

    from google.ads.googleads.client import GoogleAdsClient
    
    configuration = {
      # ...
      "json_key_file_path": JSON_KEY_FILE_PATH
      # ...
    }
    
    client = GoogleAdsClient.load_from_dict(configuration)
    
  • যদি আপনি পরিবেশ ভেরিয়েবল ব্যবহার করেন, তাহলে আপনার bash কনফিগারেশন বা পরিবেশে নিম্নলিখিতগুলি যোগ করুন:

    export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
    

    তারপর load_from_env পদ্ধতিটি কল করুন:

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

যদি json_key_file_path কনফিগারেশন বিকল্পটি এই কনফিগারেশন পদ্ধতিগুলির যেকোনো একটিতে উপস্থিত থাকে এবং use_application_default_credentials বিকল্পটি False বা সেট না করা থাকে, তাহলে লাইব্রেরি স্বয়ংক্রিয়ভাবে পরিষেবা অ্যাকাউন্ট প্রবাহ ব্যবহার করে অনুমোদন করবে।

আরও জানতে পরিষেবা অ্যাকাউন্ট ওয়ার্কফ্লো নির্দেশিকাটি দেখুন।

একক-ব্যবহারকারী প্রমাণীকরণ প্রবাহ

যদি আপনি পরিষেবা অ্যাকাউন্ট ব্যবহার করতে না পারেন তবে এই ওয়ার্কফ্লো ব্যবহার করা যেতে পারে। এই ওয়ার্কফ্লোটির জন্য দুটি কনফিগারেশন ধাপ প্রয়োজন:

  1. Google Ads API ব্যবহার করে পরিচালিত সমস্ত অ্যাকাউন্টে একজন ব্যবহারকারীকে অ্যাক্সেস দিন। একটি সাধারণ পদ্ধতি হল ব্যবহারকারীকে একটি Google Ads API ম্যানেজার অ্যাকাউন্ট দেওয়া এবং সেই ম্যানেজার অ্যাকাউন্টের অধীনে সমস্ত Google Ads অ্যাকাউন্ট লিঙ্ক করা।

  2. ব্যবহারকারী gcloud CLI অথবা generate_user_credentials কোড উদাহরণের মতো একটি টুল চালান যাতে আপনার অ্যাপ তাদের পক্ষ থেকে তাদের সমস্ত Google Ads অ্যাকাউন্ট পরিচালনা করতে পারে।

ব্যবহারকারীর OAuth 2.0 শংসাপত্র ব্যবহার করে লাইব্রেরিটি নিম্নরূপে শুরু করা যেতে পারে:

যদি gcloud CLI টুল ব্যবহার করেন (প্রস্তাবিত)

  1. আপনার স্থানীয় পরিবেশে অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল (ADC) সেট আপ করতে ক্রেডেনশিয়াল ডকুমেন্টেশন তৈরি করুন অনুসরণ করুন।

  2. আপনার google-ads.yaml অথবা YAML স্ট্রিং-এ নিম্নলিখিত কনফিগারেশন যোগ করুন:

    use_application_default_credentials: true
    

    তারপর load_from_storage অথবা load_from_string পদ্ধতিটি কল করুন:

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

    যদি আপনি লাইব্রেরি কনফিগার করার জন্য একটি dict ব্যবহার করেন, তাহলে নিম্নলিখিত কী-মান জোড়া অন্তর্ভুক্ত করুন এবং load_from_dict পদ্ধতিটি কল করুন:

    from google.ads.googleads.client import GoogleAdsClient
    
    configuration = {
      # ...
      "use_account_default_credentials": True
      # ...
    }
    
    client = GoogleAdsClient.load_from_dict(configuration)
    

    যদি আপনি পরিবেশ ভেরিয়েবল ব্যবহার করেন, তাহলে আপনার bash কনফিগারেশন বা পরিবেশে নিম্নলিখিতগুলি যোগ করুন:

    export GOOGLE_ADS_USE_ACCOUNT_DEFAULT_CREDENTIALS=true
    

    তারপর load_from_env পদ্ধতিটি কল করুন:

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

যদি সরাসরি OAuth টোকেন পরিচালনা করা হয়

  1. একটি কনসোল প্রকল্প সেট আপ করার জন্য ধাপগুলি অনুসরণ করুন এবং আপনার প্রকল্পের ক্লায়েন্ট আইডি এবং ক্লায়েন্ট গোপনীয়তা সহ JSON ফাইলটি ডাউনলোড করুন।

  2. আপনার মেশিনে পাইথন ক্লায়েন্ট লাইব্রেরি ক্লোন করুন এবং এর ডিরেক্টরিতে পরিবর্তন করুন:

    $ git clone https://github.com/googleads/google-ads-python.git
    $ cd google-ads-python
    
  3. ধাপ ১-এ ডাউনলোড করা JSON ফাইলের একটি পরম পথ প্রদান করে উদাহরণটি কার্যকর করুন:

    $ python examples/authentication/generate_user_credentials.py -c PATH_TO_CREDENTIALS_JSON
    

    একবার সম্পূর্ণ হয়ে গেলে, আপনার কনসোলে একটি রিফ্রেশ টোকেন প্রিন্ট হবে। এটি কপি করুন এবং পরবর্তী ধাপের জন্য সংরক্ষণ করুন।

  4. আপনার পছন্দের কনফিগারেশনে নিম্নলিখিত সেটিংস যোগ করে লাইব্রেরিটি কনফিগার করুন:

    আপনার google-ads.yaml অথবা YAML স্ট্রিং-এ নিম্নলিখিত কনফিগারেশন যোগ করুন:

    client_id: INSERT_OAUTH2_CLIENT_ID_HERE
    client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
    refresh_token: INSERT_REFRESH_TOKEN_HERE
    

    তারপর load_from_storage অথবা load_from_string পদ্ধতিটি কল করুন:

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

    যদি আপনি লাইব্রেরি কনফিগার করার জন্য একটি dict ব্যবহার করেন, তাহলে নিম্নলিখিত কী-মান জোড়াগুলি অন্তর্ভুক্ত করুন এবং load_from_dict পদ্ধতিটি কল করুন:

    from google.ads.googleads.client import GoogleAdsClient
    
    configuration = {
      # ...
      "client_id": INSERT_OAUTH2_CLIENT_ID_HERE
      "client_secret": INSERT_OAUTH2_CLIENT_SECRET_HERE
      "refresh_token": INSERT_REFRESH_TOKEN_HERE
      # ...
    }
    
    client = GoogleAdsClient.load_from_dict(configuration)
    

    যদি আপনি পরিবেশ ভেরিয়েবল ব্যবহার করেন, তাহলে আপনার bash কনফিগারেশন বা পরিবেশে নিম্নলিখিতগুলি যোগ করুন:

    export GOOGLE_ADS_CLIENT_ID=INSERT_OAUTH2_CLIENT_ID_HERE
    export GOOGLE_ADS_CLIENT_SECRET=INSERT_OAUTH2_CLIENT_SECRET_HERE
    export GOOGLE_ADS_REFRESH_TOKEN=INSERT_REFRESH_TOKEN_HERE
    

    তারপর load_from_env পদ্ধতিটি কল করুন:

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

আরও জানতে একক-ব্যবহারকারী প্রমাণীকরণ কর্মপ্রবাহ নির্দেশিকাটি দেখুন।

একাধিক ব্যবহারকারীর প্রমাণীকরণ প্রবাহ

যদি আপনার অ্যাপ ব্যবহারকারীদের সাইন ইন করতে এবং তাদের পক্ষ থেকে তাদের Google Ads অ্যাকাউন্ট পরিচালনা করার জন্য আপনার অ্যাপকে অনুমোদন দেয়, তাহলে এটিই প্রস্তাবিত ওয়ার্কফ্লো। আপনার অ্যাপ OAuth 2.0 ব্যবহারকারীর শংসাপত্র তৈরি এবং পরিচালনা করে। লাইব্রেরিটি ব্যবহারকারীর শংসাপত্র ব্যবহার করে নিম্নরূপ শুরু করা যেতে পারে, যা ধরে নেয় যে আপনার অ্যাপ্লিকেশন রানটাইমে শংসাপত্রগুলি পায়, হয় একটি অনুমোদন প্রবাহ কার্যকর করে অথবা একটি ডেটাস্টোর থেকে লোড করে:

রানটাইমে শংসাপত্র পাওয়ার সময় ব্যবহার করার জন্য একটি dict হল সবচেয়ে সহজ কনফিগারেশন প্রক্রিয়া:

from google.ads.googleads.client import GoogleAdsClient

configuration = {
  # ...
  "client_id": client_id
  "client_secret": client_secret
  "refresh_token": refresh_token
  # ...
}

client = GoogleAdsClient.load_from_dict(configuration)

আরও জানতে মাল্টি-ইউজার অথেনটিকেশন ওয়ার্কফ্লো গাইডটি দেখুন।

ম্যানুয়াল প্রমাণীকরণ

আপনি যেকোনো পদ্ধতির মাধ্যমে auth শংসাপত্র তৈরি করতে পারেন এবং সরাসরি ক্লায়েন্ট ক্লাসটি ইনস্ট্যান্টিয়েট করে ম্যানুয়ালি GoogleAdsClient এ সেগুলি সরবরাহ করতে পারেন। ধরে নিচ্ছি যে আপনার তৈরি করা শংসাপত্র বস্তুটি google.auth.credentials.Credentials এর একটি উদাহরণ, আপনি এটি নিম্নরূপে পাস করতে পারেন:

from google.ads.googleads.client import GoogleAdsClient
from google.auth import default

# This line retrieves ADCs from the environment. You can use any authentication
# approach as long as the `credentials` variable is an instance of
# `google.auth.credentials.Credentials`
credentials = default(scopes=["https://www.googleapis.com/auth/adwords"])

client = GoogleAdsClient(
  credentials=credentials,
  # ... insert remaining parameters
)

যদি আমার ব্যবহারকারী একাধিক অ্যাকাউন্ট পরিচালনা করে?

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

  1. get_account_hierarchy কোডের উদাহরণটি দেখায় কিভাবে একটি Google Ads ম্যানেজার অ্যাকাউন্টের অধীনে থাকা সমস্ত অ্যাকাউন্টের তালিকা পুনরুদ্ধার করতে হয়।
  2. list_accessible_customers কোড উদাহরণটি দেখায় যে কীভাবে একজন ব্যবহারকারীর সরাসরি অ্যাক্সেস আছে এমন সমস্ত অ্যাকাউন্টের তালিকা পুনরুদ্ধার করা যায়। এই অ্যাকাউন্টগুলি তারপর login_customer_id সেটিং এর জন্য বৈধ মান হিসাবে ব্যবহার করা যেতে পারে।