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

সার্ভিস অ্যাকাউন্ট ওয়ার্কফ্লো- এর মতোই, একক ব্যবহারকারী প্রমাণীকরণ প্রবাহটি অ্যাপটিকে সমস্ত প্রয়োজনীয় অ্যাকাউন্টে অ্যাক্সেস দেওয়ার জন্য গুগল অ্যাডস UI দ্বারা প্রদত্ত অনুমোদন এবং ব্যবহারকারী ব্যবস্থাপনা বৈশিষ্ট্যগুলি ব্যবহার করে। এই প্রমাণীকরণ ওয়ার্কফ্লো-টির দুটি ধাপ রয়েছে:

  • আপনি একজন ব্যবহারকারীকে সেই সমস্ত গুগল অ্যাডস অ্যাকাউন্টে অ্যাক্সেস দেন যা অ্যাপটি দ্বারা পরিচালিত হবে।
  • ব্যবহারকারী আপনার অ্যাপকে তার পক্ষ থেকে তার গুগল অ্যাডস অ্যাকাউন্টগুলো পরিচালনা করার অনুমোদন দেন, যার ফলে অ্যাপটি সমস্ত গুগল অ্যাডস অ্যাকাউন্টে অ্যাক্সেস পায়।

যেহেতু এখানে কেবল একজন ব্যবহারকারী জড়িত, তাই আপনি নিজের OAuth 2.0 ব্যবহারকারী প্রমাণীকরণ ফ্লো তৈরি করার পরিবর্তে gcloud CLI অথবা GenerateUserCredential কোড উদাহরণের মতো টুলগুলোর উপর নির্ভর করতে পারেন।

এই ওয়ার্কফ্লোটির একটি প্রাসঙ্গিক ব্যবহার হলো যখন আপনার অ্যাকাউন্টগুলো অল্প কিছু ব্যবহারকারীর লগইনের মাধ্যমে অ্যাক্সেস করা যায় (যেমন ৩-৪ জন ব্যবহারকারী), সেক্ষেত্রে gcloud CLI-এর মতো একটি কমান্ড লাইন টুল ব্যবহার করে ৩-৪ জন ব্যবহারকারীর জন্য অনুমোদন পাওয়ার প্রচেষ্টার তুলনায় একটি পূর্ণাঙ্গ OAuth ব্যবহারকারী প্রমাণীকরণ ওয়ার্কফ্লো তৈরি করার জন্য প্রয়োজনীয় উন্নয়ন প্রচেষ্টা যুক্তিযুক্ত হয় না।

অসুবিধা

সার্ভিস অ্যাকাউন্ট ওয়ার্কফ্লোর তুলনায় এই ফ্লোটির কয়েকটি অসুবিধা রয়েছে:

  1. ব্যবহারকারী প্রমাণীকরণ কর্মপ্রবাহের জন্য আপনাকে গুগল ক্লাউড কনসোলে একটি OAuth 2.0 ক্লায়েন্ট আইডি এবং সিক্রেট তৈরি করতে হবে, যার জন্য একটি পরিষেবা অ্যাকাউন্ট এবং কী তৈরি করার চেয়ে বেশি কনফিগারেশন ধাপের প্রয়োজন হয়।
  2. আপনার অ্যাপটিকে একটি অতিরিক্ত গুগল ক্লাউড অ্যাপ যাচাইকরণ প্রক্রিয়ার মধ্য দিয়ে যেতে হতে পারে।
  3. অনুমোদিত ব্যবহারকারী যদি টিম বা কোম্পানি ছেড়ে দেন, তাহলে আপনি যদি তাকে আপনার অ্যাকাউন্টগুলো থেকে সরিয়ে দেন বা তার অ্যাকাউন্টটি নিষ্ক্রিয় করে দেন, আপনার অ্যাপটি কাজ করা বন্ধ করে দিতে পারে। সার্ভিস অ্যাকাউন্টগুলো কোনো নির্দিষ্ট ব্যবহারকারীর সাথে সংযুক্ত থাকে না, ফলে এই ঝুঁকিটি এড়ানো যায়।
  4. দুর্বল নিরাপত্তা, ম্যালওয়্যার বা ফিশিংয়ের কারণে গুগল অ্যাকাউন্ট হ্যাক হওয়া থেকে রক্ষা পেতে, গুগল অ্যাডস অ্যাকাউন্ট অনুমোদনকারী ব্যবহারকারীর টু-ফ্যাক্টর অথেনটিকেশন চালু করার মতো অতিরিক্ত সতর্কতা অবলম্বন করা উচিত। সার্ভিস অ্যাকাউন্টগুলো এই সমস্যার ক্ষেত্রে কম ঝুঁকিপূর্ণ, কারণ আক্রমণের এই পদ্ধতিগুলোর কয়েকটি সরাসরি সেগুলোর ক্ষেত্রে প্রযোজ্য নয়।

পরিচয়পত্র তৈরি করুন

  1. আপনার অ্যাপ্লিকেশনের জন্য একটি OAuth সম্মতি স্ক্রিন কনফিগার করতে নির্দেশাবলী অনুসরণ করুন এবং https://www.googleapis.com/auth/adwords একটি OAuth 2.0 স্কোপ হিসেবে যুক্ত করুন। বিস্তারিত জানার জন্য ‘আপনার OAuth সম্মতি স্ক্রিন সেট আপ করা’ দেখুন।

  2. নির্দেশাবলী অনুসরণ করে একটি ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট তৈরি করুন। OAuth 2.0 ক্লায়েন্ট তৈরি করার পর, প্রথমে এর 'Download OAuth client' আইকনে এবং তারপরের স্ক্রিনে থাকা 'DOWNLOAD JSON' বোতামে ক্লিক করে ক্লায়েন্টের JSON ফাইলটি ডাউনলোড করুন। ফাইলটি credentials.json নামে সংরক্ষণ করুন।

  3. এমন একটি ইউজার অ্যাকাউন্ট শনাক্ত করুন যার আপনার অ্যাপ ব্যবহার করে পরিচালনা করতে চাওয়া সমস্ত গুগল অ্যাডস অ্যাকাউন্টে অ্যাক্সেস আছে। যদি কোনো অ্যাকাউন্টের অ্যাক্সেস না থাকে, তাহলে প্রয়োজনীয় অ্যাক্সেস দেওয়ার জন্য নির্দেশাবলী অনুসরণ করুন।

  4. gcloud CLI ডাউনলোড এবং ইনস্টল করুন । ইনস্টল হয়ে গেলে, কমান্ড লাইন প্রম্পট থেকে gcloud version কমান্ডটি চালিয়ে টুলটি সঠিকভাবে কাজ করছে কিনা তা যাচাই করুন। আউটপুটটি নিম্নলিখিতের মতো দেখতে হতে পারে।

    :~$ gcloud version
    Google Cloud SDK 492.0.0
    alpha 2024.09.06
    beta 2024.09.06
    bq 2.1.8
    bundled-python3-unix 3.11.9
    core 2024.09.06
    enterprise-certificate-proxy 0.3.2
    gcloud-crc32c 1.0.0
    gsutil 5.30
  5. gcloud CLI টুলটি চালিয়ে একটি OAuth 2.0 রিফ্রেশ টোকেন তৈরি করুন:

    gcloud auth application-default 
    login --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform
    --client-id-file=<path_to_credentials.json>

    credentials.json ফাইলটি পূর্ববর্তী ধাপের।

  6. gcloud কমান্ডটি একটি নতুন ব্রাউজার উইন্ডোতে গুগল অ্যাকাউন্ট লগইন উইন্ডো খোলে এবং আপনাকে OAuth 2.0 অথেনটিকেশন ধাপগুলো সম্পন্ন করতে নিয়ে যায়। নিশ্চিত করুন যে আপনি পূর্ববর্তী ধাপগুলো থেকে নির্বাচিত ব্যবহারকারী হিসাবে সাইন ইন করছেন। যদি আপনার অ্যাপটি যাচাই করা না থাকে , তাহলে আপনি একটি সতর্কীকরণ স্ক্রিন দেখতে পারেন। এমন ক্ষেত্রে, ' Show Advanced ' লিঙ্কে ক্লিক করে ' Go to PROJECT_NAME (unverified)' অপশনটি বেছে নেওয়া নিরাপদ।

  7. স্কোপগুলো যাচাই করার পর, অনুমতি দেওয়ার জন্য ' Continue' বোতামে ক্লিক করুন। ব্রাউজারটি https://cloud.google.com/sdk/auth_success -এ চলে যায়, যা নির্দেশ করে যে প্রমাণীকরণ সফল হয়েছে। পৃষ্ঠাটিতে নিম্নলিখিত বার্তাটি প্রদর্শিত হয়:

    Authorization code granted. Close this tab.

    gcloud কমান্ডটি নিম্নলিখিত বার্তাটি প্রিন্ট করে:

    Credentials saved to file: [/****/.config/gcloud/application_default_credentials.json]

    এখন application_default_credentials.json ফাইলটি খুলুন। এর বিষয়বস্তু নিচের মতো হওয়া উচিত:

    {
    "account": "",
    "client_id": "******.apps.googleusercontent.com",
    "client_secret": "******",
    "refresh_token": "******",
    "type": "authorized_user",
    "universe_domain": "googleapis.com"
    }
    

ক্লায়েন্ট লাইব্রেরি কনফিগারেশন

আপনার ক্লায়েন্ট লাইব্রেরি কীভাবে কনফিগার করবেন তার নির্দেশাবলীর জন্য আপনার প্রোগ্রামিং ভাষার সাথে সম্পর্কিত ট্যাবটি নির্বাচন করুন।

জাভা

আপনার ads.properties ফাইলে নিম্নলিখিত কীগুলি কনফিগার করুন।

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

অতিরিক্ত বিকল্পগুলির জন্য কনফিগারেশন গাইড দেখুন।

.NET

আপনি যে ব্যবহারকারীর অ্যাকাউন্টে এপিআই কল করছেন, তার কাছ থেকে প্রাপ্ত ক্রেডেনশিয়াল ব্যবহার করে রানটাইমে আপনার GoogleAdsClient ইনস্ট্যান্সটি ইনিশিয়ালাইজ করতে পারেন।

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID",
    OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET",
    OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN",
    ...
};
GoogleAdsClient client = new GoogleAdsClient(config);

অতিরিক্ত বিকল্পগুলির জন্য কনফিগারেশন গাইড দেখুন।

পাইথন

আপনার google-ads.yaml ফাইলে নিম্নলিখিত কীগুলি কনফিগার করুন।

client_id: INSERT_OAUTH2_CLIENT_ID_HERE
client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
refresh_token: INSERT_REFRESH_TOKEN_HERE
login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE

অতিরিক্ত বিকল্পগুলির জন্য কনফিগারেশন গাইড দেখুন।

পিএইচপি

আপনার google_ads_php.ini ফাইলে নিম্নলিখিত কীগুলি কনফিগার করুন।

[GOOGLE_ADS]
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"

[OAUTH2]
clientId = "INSERT_OAUTH2_CLIENT_ID_HERE"
clientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE"
refreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE"

অতিরিক্ত বিকল্পগুলির জন্য কনফিগারেশন গাইড দেখুন।

রুবি

আপনার google_ads_config.rb ফাইলে নিম্নলিখিত কীগুলি কনফিগার করুন।

  Google::Ads::GoogleAds::Config.new do |c|
     c.client_id = 'INSERT_CLIENT_ID_HERE'
     c.client_secret = 'INSERT_CLIENT_SECRET_HERE'
     c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
     c.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
     c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
  end

অতিরিক্ত বিকল্পগুলির জন্য কনফিগারেশন গাইড দেখুন।

পার্ল

আপনার googleads.properties ফাইলে নিম্নলিখিত কীগুলি কনফিগার করুন।

 clientId=INSERT_OAUTH2_CLIENT_ID_HERE
 clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE
 refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE
 loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
 

অতিরিক্ত বিকল্পগুলির জন্য কনফিগারেশন গাইড দেখুন।

কার্ল

প্রথমে একটি HTTP ক্লায়েন্ট ব্যবহার করে একটি OAuth 2.0 অ্যাক্সেস টোকেন সংগ্রহ করুন। এই নির্দেশিকায় curl কমান্ড ব্যবহার করা হয়েছে।

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://www.googleapis.com/oauth2/v3/token

আপনি এখন আপনার এপিআই কলগুলিতে অ্যাক্সেস টোকেন ব্যবহার করতে পারবেন। নিম্নলিখিত উদাহরণটি দেখায় কিভাবে আপনার অ্যাকাউন্টের ক্যাম্পেইনগুলি পুনরুদ্ধার করতে GoogleAdsService.SearchStream পদ্ধতি ব্যবহার করে একটি ক্যাম্পেইন রিপোর্ট চালানো যায়। এই নির্দেশিকাটি রিপোর্টিং- এর বিস্তারিত বিষয়গুলি আলোচনা করে না।

curl -i -X POST https://googleads.googleapis.com/v24/customers/CUSTOMER_ID/googleAds:searchStream \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer ACCESS_TOKEN" \
   -H "developer-token: DEVELOPER_TOKEN" \
   -H "login-customer-id: LOGIN_CUSTOMER_ID" \
   --data-binary "@query.json"

query.json ফাইলের বিষয়বস্তু নিম্নরূপ:

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}