অন্যান্য Google API-এর মতো, Google Ads API-ও যাচাইকরণ ও অনুমোদনের জন্য OAuth 2.0 প্রোটোকল ব্যবহার করে। OAuth 2.0 আপনার Google Ads API ক্লায়েন্ট অ্যাপকে ব্যবহারকারীর লগ-ইন তথ্য ম্যানেজ বা স্টোর না করেই ব্যবহারকারীর Google Ads অ্যাকাউন্ট অ্যাক্সেস করতে সক্ষম করে।
Google Ads অ্যাক্সেস মডেল সম্পর্কে জানুন
Google Ads API-এর সাথে কার্যকরভাবে কাজ করতে, Google Ads অ্যাক্সেস মডেল কীভাবে কাজ করে তা বুঝুন। Google Ads অ্যাক্সেস মডেল নির্দেশিকা দেখুন।
OAuth ওয়ার্কফ্লো
Google Ads API-এর সাথে কাজ করার সময় তিনটি সাধারণ ওয়ার্কফ্লো ব্যবহার করা হয়।
সার্ভিস অ্যাকাউন্ট ফ্লো
আপনার ওয়ার্কফ্লোতে কোনও হিউম্যান
ইন্টার্যাকশন প্রয়োজন না হলে, এই ওয়ার্কফ্লো সাজেস্ট করা হয়। এই ওয়ার্কফ্লোতে একটি কনফিগারেশন ধাপ আছে, যেখানে ব্যবহারকারী তার Google Ads অ্যাকাউন্টে একটি
সার্ভিস অ্যাকাউন্ট যোগ করেন। অ্যাপটি তখন ব্যবহারকারীর Google Ads অ্যাকাউন্ট ম্যানেজ করার জন্য
সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করতে পারে। এটি কনফিগার করতে, Google Cloud Console-এ JSON কী ফাইল তৈরি ও ডাউনলোড করুন, তারপর
google_ads_config.rb আপনার হোম ডিরেক্টরিতে কপি করুন
এবং আপনার সার্ভিস অ্যাকাউন্ট কীফাইলের লোকেশন নির্দিষ্ট করতে এটি পরিবর্তন করুন (এবং ঐচ্ছিক
Google Workspace
ডোমেন-ব্যাপী ডেলিগেশন ব্যবহার করার সময় ছদ্মবেশী ব্যবহারকারীর ইমেল আইডি):
# You can also authenticate using a service account. If "keyfile" is
# specified below, then service account authentication will be assumed and
# the above authentication fields ignored. Read more about service account
# authentication here:
# https://developers.google.com/google-ads/api/docs/oauth/service-accounts
c.keyfile = 'path/to/keyfile.json'
# Optional unless using Google Workspace domain-wide delegation:
c.impersonate = 'INSERT_EMAIL_ADDRESS_TO_IMPERSONATE_HERE'
আপনি যদি কোনও ফাইলে এই তথ্য সেভ করতে না চান এবং পরিবর্তে
এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করতে চান, তাহলে আপনি GOOGLE_ADS_JSON_KEY_FILE_PATH (এবং
ঐচ্ছিক GOOGLE_ADS_IMPERSONATED_EMAIL) সেট করতে পারেন:
export GOOGLE_ADS_JSON_KEY_FILE_PATH="/path/to/your/service-account-key.json"
# Optional unless using Google Workspace domain-wide delegation:
export GOOGLE_ADS_IMPERSONATED_EMAIL="your_email@email.com"
এছাড়াও, আপনি রানটাইমে প্রোগ্রাম্যাটিক উপায়ে সার্ভিস অ্যাকাউন্ট কীফাইলের পাথ (এবং ঐচ্ছিক ছদ্মবেশী ইমেল) পাস করতে পারবেন:
require 'google/ads/google_ads'
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.keyfile = '/path/to/your/service-account-key.json'
# Optional unless using Google Workspace domain-wide delegation:
config.impersonate = 'INSERT_EMAIL_ADDRESS_TO_IMPERSONATE_HERE'
end
বিকল্প হিসেবে, আপনি googleauth gem ব্যবহার করে পরিষেবা অ্যাকাউন্ট
ক্রেডেনশিয়াল তৈরি করতে এবং credentials.updater_proc-এ config.authentication পাস করতে পারেন:
require 'googleauth'
require 'google/ads/google_ads'
# Path to your service account key file.
key_file = '/path/to/your/service-account-key.json'
# Define the scopes needed for the Google Ads API.
scopes = ['https://www.googleapis.com/auth/adwords']
# Create service account credentials.
credentials = File.open(key_file) do |io|
Google::Auth::ServiceAccountCredentials.make_creds(
json_key_io: io,
scope: scopes
)
end
# Initialize the Google Ads API client with these credentials.
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
# Inject the service account credential updater proc.
config.authentication = credentials.updater_proc
end
আরও জানতে সার্ভিস অ্যাকাউন্ট ওয়ার্কফ্লো গাইড দেখুন।
সিঙ্গেল-ইউজার যাচাইকরণ ফ্লো
আপনি পরিষেবা অ্যাকাউন্ট ব্যবহার করতে না পারলে এই ওয়ার্কফ্লো ব্যবহার করা যেতে পারে। এই ওয়ার্কফ্লোতে দুটি কনফিগারেশন ধাপ রয়েছে:
- Google Ads API ব্যবহার করে ম্যানেজ করা হবে এমন সব অ্যাকাউন্টে একজন ব্যবহারকারীকে অ্যাক্সেস দিন। সাধারণত, ব্যবহারকারীকে Google Ads API ম্যানেজার অ্যাকাউন্টের অ্যাক্সেস দেওয়া হয় এবং সেই ম্যানেজার অ্যাকাউন্টের অধীনে থাকা সব Google Ads অ্যাকাউন্ট লিঙ্ক করা হয়।
- ব্যবহারকারী
Google Cloud কমান্ড-লাইন টুল বা
GenerateUserCredentialsকোড স্যাম্পেলের মতো কমান্ড-লাইন টুল রান করে তার হয়ে সব Google Ads অ্যাকাউন্ট ম্যানেজ করার জন্য আপনার অ্যাপকে অনুমোদন দেন।
আপনার হোম ডিরেক্টরিতে
google_ads_config.rb ফাইল কপি করে
এবং আপনার ক্লায়েন্ট আইডি, ক্লায়েন্ট সিক্রেট ও রিফ্রেশ টোকেন যোগ করার জন্য এটি পরিবর্তন করে Ruby-র জন্য OAuth 2.0 ক্রেডেনশিয়াল কনফিগার করা যেতে পারে:
# Authentication tells the API that you are allowed to make changes to the
# specific account you're trying to access.
# The default method of authentication is to use a refresh token, client id,
# and client secret to generate an access token.
c.client_id = 'INSERT_CLIENT_ID_HERE'
c.client_secret = 'INSERT_CLIENT_SECRET_HERE'
c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
কোনও আর্গুমেন্ট ছাড়াই ইনস্ট্যানশিয়েট করা হলে, ক্লায়েন্ট হোম ডিরেক্টরি থেকে অটোমেটিক কনফিগারেশন ফাইল পড়ে নেয়:
client = Google::Ads::GoogleAds::GoogleAdsClient.new
অথবা, আপনি যদি অন্য কোথাও ফাইল স্টোর করতে চান, তাহলে আপনি ক্লায়েন্টকে ইনস্ট্যানশিয়েট করতে পারেন যেখানে আপনি এই ফাইলটি রেখেছেন তার পাথ পাস করে:
client = Google::Ads::GoogleAds::GoogleAdsClient.new(
'path/to/google_ads_config.rb'
)
আপনি যদি কোনও ফাইলে এই তথ্য সেভ করতে না চান এবং পরিবর্তে এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করতে চান, তাহলে আপনি এগুলির প্রত্যেকটি সেট করতে পারবেন:
export GOOGLE_ADS_CLIENT_ID="INSERT_CLIENT_ID_HERE"
export GOOGLE_ADS_CLIENT_SECRET="INSERT_CLIENT_SECRET_HERE"
export GOOGLE_ADS_REFRESH_TOKEN="INSERT_REFRESH_TOKEN_HERE"
এছাড়াও, আপনি রানটাইমে প্রোগ্রাম্যাটিক উপায়ে তথ্য পাস করতে পারবেন:
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_CLIENT_ID_HERE'
config.client_secret = 'INSERT_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
end
আরও জানতে সিঙ্গেল-ইউজার যাচাইকরণ ওয়ার্কফ্লো গাইড দেখুন।
মাল্টি-ইউজার যাচাইকরণ ফ্লো
আপনার অ্যাপ যদি ব্যবহারকারীদের সাইন-ইন করতে এবং তাদের হয়ে Google Ads অ্যাকাউন্ট ম্যানেজ করার জন্য আপনার অ্যাপকে
অনুমতি দিতে দেয়, তাহলে এটি হল সাজেস্ট করা ওয়ার্কফ্লো। আপনার অ্যাপ
OAuth 2.0 ব্যবহারকারীর ক্রেডেনশিয়াল তৈরি ও ম্যানেজ করে। এই ওয়ার্কফ্লোকে সিঙ্গেল-ইউজার ফ্লোয়ের মতো একই পদ্ধতিতে কনফিগার করা যায়, সাথে login_customer_id
নির্দিষ্ট করা থাকে।
কনফিগারেশন ফাইল ব্যবহার করার সাজেশন দেওয়া হয়। আপনার হোম ডিরেক্টরিতে
google_ads_config.rb ফাইলটি কপি করুন
এবং আপনার ক্লায়েন্ট আইডি, ক্লায়েন্ট সিক্রেট, রিফ্রেশ টোকেন ও
কাস্টমার আইডি অন্তর্ভুক্ত করতে এটি পরিবর্তন করুন:
# Authentication tells the API that you are allowed to make changes to the
# specific account you're trying to access.
# The default method of authentication is to use a refresh token, client id,
# and client secret to generate an access token.
c.client_id = 'INSERT_CLIENT_ID_HERE'
c.client_secret = 'INSERT_CLIENT_SECRET_HERE'
c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
# Required for manager accounts only: Specify the login customer ID used to
# authenticate API calls. This will be the customer ID of the authenticated
# manager account. If you need to use different values for this field, then
# make sure to fetch a new copy of the service after each time you change the
# value.
c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
কোনও আর্গুমেন্ট ছাড়াই ইনস্ট্যানশিয়েট করা হলে, ক্লায়েন্ট হোম ডিরেক্টরি থেকে অটোমেটিক কনফিগারেশন ফাইল পড়ে নেয়:
client = Google::Ads::GoogleAds::GoogleAdsClient.new
অথবা, আপনি যদি অন্য কোথাও ফাইল স্টোর করতে চান, তাহলে আপনি ক্লায়েন্টকে ইনস্ট্যানশিয়েট করতে পারেন যেখানে আপনি এই ফাইলটি রেখেছেন তার পাথ পাস করে:
client = Google::Ads::GoogleAds::GoogleAdsClient.new(
'path/to/google_ads_config.rb'
)
আপনি যদি কোনও ফাইলে এই তথ্য সেভ করতে না চান এবং পরিবর্তে এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করতে চান, তাহলে আপনি এগুলির প্রত্যেকটি সেট করতে পারবেন:
export GOOGLE_ADS_CLIENT_ID="INSERT_CLIENT_ID_HERE"
export GOOGLE_ADS_CLIENT_SECRET="INSERT_CLIENT_SECRET_HERE"
export GOOGLE_ADS_REFRESH_TOKEN="INSERT_REFRESH_TOKEN_HERE"
export GOOGLE_ADS_LOGIN_CUSTOMER_ID="INSERT_LOGIN_CUSTOMER_ID_HERE"
এছাড়াও, আপনি রানটাইমে প্রোগ্রাম্যাটিক উপায়ে তথ্য পাস করতে পারবেন:
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_CLIENT_ID_HERE'
config.client_secret = 'INSERT_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end
আরও জানতে মাল্টি-ইউজার যাচাইকরণ ওয়ার্কফ্লো গাইড দেখুন।
রেফারেন্সের জন্য Ruby ক্লায়েন্ট লাইব্রেরিতে কোডের উদাহরণ দেওয়া আছে। The
GenerateUserCredentials কমান্ড-লাইন কোড
উদাহরণ থেকে বোঝা যায় যে কীভাবে রানটাইমে ব্যবহারকারীর হয়ে তার
Google Ads অ্যাকাউন্ট ম্যানেজ করার জন্য ব্যবহারকারীর যাচাইকরণ পাওয়া যায়। ব্যবহারকারীর যাচাইকরণ প্রয়োজন এমন ডেস্কটপ অ্যাপ তৈরি করতে
আপনি এই কোড উদাহরণটি রেফারেন্স হিসেবে ব্যবহার করতে পারেন।
একাধিক অ্যাকাউন্ট ম্যানেজ করা
কোনও ব্যবহারকারী একাধিক Google Ads অ্যাকাউন্ট ম্যানেজ করতে পারেন। এটি সাধারণ ব্যাপার। তিনি এটি অ্যাকাউন্টে সরাসরি অ্যাক্সেস নিয়ে অথবা Google Ads ম্যানেজার অ্যাকাউন্টের মাধ্যমে করতে পারেন। Ruby ক্লায়েন্ট লাইব্রেরি নিম্নলিখিত কোডের উদাহরণ প্রদান করে যা এই ধরনের কেস কীভাবে ম্যানেজ করতে হয় তা ব্যাখ্যা করে:
GetAccountHierarchyকোডের উদাহরণ থেকে জানা যায় যে কীভাবে Google Ads ম্যানেজার অ্যাকাউন্টের অধীনে থাকা সব অ্যাকাউন্টের তালিকা পাওয়া যায়।ListAccessibleCustomersকোডের উদাহরণে দেখানো হয়েছে যে কীভাবে কোনও ব্যবহারকারীর সরাসরি অ্যাক্সেস আছে এমন সব অ্যাকাউন্টের তালিকা পাওয়া যায়। এইসব অ্যাকাউন্টকে তারপরlogin_customer_idসেটিংয়ের জন্য সঠিক ভ্যালু হিসেবে ব্যবহার করা যেতে পারে।
অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল
এছাড়াও, Ruby ক্লায়েন্ট লাইব্রেরি (v36.1.0 ও এর পরবর্তী যেকোনও ভার্সন) অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল (ADC) ব্যবহার করে যাচাইকরণ করার সুবিধা দেয়। এটি আপনাকে নিজের অ্যাপ্লিকেশন কনফিগারেশনের মধ্যে OAuth 2.0 তথ্য কনফিগার করার প্রয়োজন ছাড়াই আপনার অ্যাপ্লিকেশনের জন্য ডিফল্ট ক্রেডেনশিয়াল সেট করতে দেয়।
এটি বিশেষত লোকাল ডেভেলপমেন্ট বা বিভিন্ন Google API-এর বিরুদ্ধে ডেভেলপমেন্টের জন্য উপযোগী, কারণ আপনি একই ক্রেডেনশিয়াল আবার ব্যবহার করতে পারবেন, তবে সেগুলি প্রয়োজনীয় OAuth 2.0 স্কোপ অ্যাক্সেস করতে পারতে হবে।
Google Ads API-এর জন্য, আপনার অ্যাপ্লিকেশনের ডিফল্ট ক্রেডেনশিয়াল যেন
https://www.googleapis.com/auth/adwords OAuth 2.0 স্কোপ অ্যাক্সেস করতে পারে তা নিশ্চিত করুন।
অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করতে, Google Cloud কমান্ড-লাইন টুল ব্যবহার করুন এবং ADC-র জন্য যাচাই করিয়ে নিন:
gcloud auth application-default login
এই কমান্ডটি আপনার Google অ্যাকাউন্টের জন্য যাচাইকরণ ফ্লো সম্পূর্ণ করতে একটি ওয়েব ব্রাউজার খোলে। অনুমোদিত হয়ে গেলে, এটি একটি স্ট্যান্ডার্ড লোকেশনে ক্রেডেনশিয়াল সেভ করে। ADC ব্যবহার করতে হলে আপনাকে অ্যাপ্লিকেশন আপডেট করতে হবে।
google_ads_config.rb ফাইলটি আপনার হোম
ডিরেক্টরিতে কপি করুন এবং use_application_default_credentials-এর মান true হিসেবে সেট করুন:
# You can also authenticate using Application Default Credentials (ADC).
# To understand how ADC discovers credentials in a given environment, see:
# https://developers.google.com/identity/protocols/application-default-credentials
c.use_application_default_credentials = true
আপনি যদি কোনও ফাইলে এই তথ্য সেভ করতে না চান এবং পরিবর্তে
এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করতে চান, তাহলে আপনি
GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS সেট করতে পারবেন:
export GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS="true"
এছাড়াও, আপনি রানটাইমে প্রোগ্রাম্যাটিক উপায়ে তথ্য পাস করতে পারবেন। আপনার Ruby কোডে ক্লায়েন্ট
ইনিশিয়ালাইজ করার সময়, config.use_application_default_credentials = true সেট করুন এবং স্পষ্ট
OAuth 2.0 ক্রেডেনশিয়াল দেবেন না। Google Cloud কমান্ড-লাইন টুলের মাধ্যমে সেট-আপ করা
ক্রেডেনশিয়াল লাইব্রেরি অটোমেটিক শনাক্ত করে ও ব্যবহার করে:
# Initialize the client using Application Default Credentials.
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.use_application_default_credentials = true
# Optional: Specify a login customer ID if you are accessing accounts
# through a manager account.
# config.login_customer_id = 'YOUR_LOGIN_CUSTOMER_ID'
# Do NOT include client_id, client_secret, or refresh_token here.
end
Ruby ক্লায়েন্ট লাইব্রেরি কনফিগার করার জন্য উপলভ্য বিকল্প সম্পর্কে আরও বিবরণ পেতে, কনফিগারেশন পৃষ্ঠা দেখুন।